Compare commits

...

194 Commits

Author SHA1 Message Date
knotteye
a8a05a992e Merge pull request 'Update package version for release' (#25) from develop into master
Reviewed-on: https://git.waldn.net/git/knotteye/satyr/pulls/25
2021-01-10 15:52:08 -06:00
knotteye
ef52cbe629 Update package version for release 2021-01-10 15:49:40 -06:00
knotteye
67694cffd8 Merge pull request 'develop -> master' (#24) from develop into master
Reviewed-on: https://git.waldn.net/git/knotteye/satyr/pulls/24
2021-01-10 15:24:24 -06:00
knotteye
3701b0c8fa Merge branch 'master' into develop 2021-01-10 15:22:40 -06:00
knotteye
362381e7db Update documentation with hwaccleration issues 2021-01-10 15:20:45 -06:00
knotteye
a3341d8b7d Disable CRF when using hwaccel 2021-01-10 15:09:42 -06:00
knotteye
8a33b80593 Map streams automatically instead of manually 2021-01-10 14:29:54 -06:00
knotteye
c5921e4e08 Merge pull request 'experimental hardware acceleration' (#21) from hwaccel into develop
Reviewed-on: https://git.waldn.net/git/knotteye/satyr/pulls/21
2021-01-10 13:46:02 -06:00
knotteye
943c71d1e0 Add what I think is working hwaccel support 2021-01-10 13:42:52 -06:00
knotteye
1afd855e73 Clarify some documentation 2021-01-10 13:42:23 -06:00
knotteye
9df4b545ec Update config.ts to include hwaccel options 2021-01-10 13:42:12 -06:00
knotteye
364994decc Start work on hardware acceleration.
Documentation first, code later.
2021-01-10 12:46:45 -06:00
knotteye
cccdc8838d Merge pull request 'Switch to using the actual database instead of bans.db' (#20) from bansdb into develop
Reviewed-on: https://git.waldn.net/git/knotteye/satyr/pulls/20
2021-01-10 12:34:19 -06:00
knotteye
69d81ec836 Switch to using MySQL instead of bans.db 2021-01-10 12:31:11 -06:00
knotteye
7156accbee Fix a bug where we weren't setting X-Auth-As on /api/register
Also fix new users appearing to not exist until they update their bio/profile
2021-01-10 11:26:52 -06:00
knotteye
814d826ec9 Modify the migration script to import existing data. 2021-01-10 11:01:28 -06:00
knotteye
a882285bac Fix database functions regarding ch_bans since it's a special case 2021-01-10 10:13:29 -06:00
knotteye
57410dc969 Update database functions to create and destroy rows in new table. 2021-01-09 15:25:06 -06:00
knotteye
5c22c1a738 Add migration script for channel bans table in the database. 2021-01-09 15:22:23 -06:00
knotteye
a1a101c0f1 Check if the video object still exists before restarting the timeout 2021-01-08 17:25:44 -06:00
knotteye
7f40690820 Update repository link 2021-01-08 17:14:16 -06:00
knotteye
4c1298cc5c Merge pull request 'develop -> master' (#19) from develop into master
Reviewed-on: https://git.waldn.net/git/knotteye/satyr/pulls/19
2021-01-08 16:30:46 -06:00
knotteye
1abb35f9ac Update version for release 2021-01-08 16:29:00 -06:00
knotteye
2ef1c80813 Merge pull request 'merge frontend-improvments' (#18) from frontend-improvments into develop
Reviewed-on: https://git.waldn.net/git/knotteye/satyr/pulls/18
2021-01-08 16:18:05 -06:00
knotteye
8cb78a7dd6 Add code for re-checking if a user has gone live since loading the page
Also exempt static files from link rewriting in the SPA
There may be more in here.. It's been a long break halfway through this commit.
2021-01-08 16:14:19 -06:00
knotteye
f703d5af7f Stop accidentally capturing static file links 2021-01-08 15:39:03 -06:00
knotteye
2a121d27ee Merge pull request 'config-bugfix -> develop' (#13) from config-bugfix into develop
Reviewed-on: https://pond.waldn.net/git/knotteye/satyr/pulls/13
2020-10-30 07:40:20 -05:00
knotteye
cc8c4915f9 Distinguish between errors when loading the config file. 2020-10-30 07:38:01 -05:00
knotteye
d0e3507cc0 Merge pull request 'better-migration -> develop' (#12) from better-migration into develop
Reviewed-on: https://pond.waldn.net/git/knotteye/satyr/pulls/12
2020-10-30 07:27:55 -05:00
knotteye
33accfb8b7 Select scripts to run based on comparing version strings and script names.
This means scripts need to insert a version value the same as their name to db_meta. This is nothing new, it just works better now.
2020-10-30 07:20:23 -05:00
knotteye
3e073e7f66 Skip compiling templates when running migrations alone 2020-10-30 06:25:47 -05:00
knotteye
47e036cde6 Merge pull request 'web-player -> develop' (#8) from web-player into develop
Reviewed-on: https://pond.waldn.net/git/knotteye/satyr/pulls/8
2020-10-25 10:27:51 -05:00
knotteye
a75a625cd3 Merge branch 'develop' into web-player 2020-10-25 10:27:29 -05:00
knotteye
7b5a498241 Fix manifest uri in user.njk 2020-10-25 10:26:07 -05:00
knotteye
2a5e8d6ec2 Add play button functionality for web player 2020-10-25 10:17:45 -05:00
knotteye
12e868456a Add play button for shaka player. Needs functionality. 2020-10-25 10:17:45 -05:00
knotteye
281d9c7922 Merge pull request 'master <- develop' (#7) from develop into master
Reviewed-on: https://pond.waldn.net/git/knotteye/satyr/pulls/7
2020-10-24 22:54:29 -05:00
knotteye
fe3ec1bd75 Fix CORS issues in reccomended nginx config 2020-10-24 22:52:59 -05:00
knotteye
07cba66096 Fix a typo in the generated config file 2020-10-24 22:47:03 -05:00
knotteye
2de486da46 Switch to shaka-player and initialize it on pageload.
Maybe todo: more testing and re-check if the stream has started after the page has already loaded
2020-10-18 09:23:28 -05:00
knotteye
2c073a7cdb Update URLs with new repository 2020-10-18 09:25:54 +00:00
knotteye
8a71680971 Merge pull request 'Fix a bug with migrate.ts calling a function incorrectly' (#4) from migrate-bugfix into develop 2020-10-18 04:16:15 -05:00
knotteye
0900496d70 Fix a bug with migrate.ts calling a function incorrectly 2020-10-18 09:13:09 +00:00
knotteye
34d6fa91df Fix some typos in documentation 2020-10-18 02:16:54 -05:00
knotteye
97b6f50b7c Merge pull request 'master -> develop' (#2) from develop into master
Reviewed-on: http://localhost:3000/git/knotteye/satyr/pulls/2
2020-10-17 23:49:01 -05:00
knotteye
94f240d4d6 Merge branch 'master' into develop 2020-10-17 23:48:18 -05:00
knotteye
d8b327752e Bump minor version 2020-10-17 23:41:37 -05:00
knotteye
7107cb4c8f Update documentation for new repository host 2020-10-17 23:37:34 -05:00
knotteye
90cce68581 Fix bug 2020-10-17 22:40:30 -05:00
knotteye
1fa6bf7e81 Update documentation 2020-10-17 22:23:05 -05:00
knotteye
ab9a9b4585 Expose whether cluster mode is enabled over /api/instance/config 2020-10-17 22:08:56 -05:00
knotteye
01744df3cd Fix a bug where XMPP bridge would repeatedly ignore channels 2020-10-17 22:07:30 -05:00
knotteye
ab082e5f95 Fix logging in cluster.ts
Fix a bug calling the cluster process in index.ts
Set a default value for rtmp.cluster in config.ts
Update documentation
2020-10-17 21:39:56 -05:00
knotteye
de17128cd2 Merge branch 'xmpp-mirror' into 'develop'
Xmpp mirror

See merge request knotteye/satyr!30
2020-10-18 01:19:20 +00:00
knotteye
cfa7c5ab13 Implement XMPP mirror 2020-10-17 20:17:24 -05:00
knotteye
81afb7493b Update config options for xmpp bridge 2020-10-17 18:30:38 -05:00
knotteye
9a6e5c8798 Add documentation for configuring XMPP bridge 2020-10-17 18:29:17 -05:00
knotteye
06dc05eb8b Add a dependency for xmpp mirroring and add configurability 2020-10-17 16:55:55 -05:00
knotteye
dfd0bc4881 Commit a local.css file to get rid of some error messages 2020-10-17 16:15:49 -05:00
knotteye
30a62e6378 Handle back button when the user navigates to one of our own history events 2020-10-17 16:02:50 -05:00
knotteye
cc3876ff4a Update URL when navigating to new pages and push state to history in client-side SPA 2020-10-17 15:39:19 -05:00
knotteye
56c4b94a80 Fix the start video function to avoid redudant calls 2020-10-17 05:26:31 -05:00
knotteye
a5c1adfffc Return live flag as well when getting user info 2020-10-17 05:13:32 -05:00
knotteye
4d36c2c429 Merge branch 'develop' into 'master'
Develop -> Master

See merge request knotteye/satyr!29
2020-10-17 07:32:23 +00:00
knotteye
18d521a35b Merge branch 'cluster' into 'develop'
Cluster

See merge request knotteye/satyr!28
2020-10-17 07:29:31 +00:00
knotteye
5126bccbc7 Add configurability to cluster option 2020-10-17 02:17:10 -05:00
knotteye
80cf01ef30 Add unique ports per worker so that ffmpeg can reliably record. 2020-10-17 01:53:33 -05:00
knotteye
1ae7128b9d Update server code 2020-10-17 01:07:29 -05:00
knotteye
7806b34cfa Remove unused code 2020-10-17 01:03:20 -05:00
knotteye
bdfac44e21 Add the beginnings of the ability to cluster RTMP servers. It looks like there won't be a way to reliably play RTMP streams like this without digging into node-media-server code.
For now that means clustering will have the drawback of being able to do DASH only.

Still need to add a config option and reliable recording.
2020-10-17 00:51:47 -05:00
knotteye
9e5b3f360c Merge branch 'client-templates' into 'develop'
Client templates -> develop

See merge request knotteye/satyr!27
2020-10-17 05:20:57 +00:00
knotteye
58e8be123c Intercept internal links and render the page without reloading 2020-10-17 00:11:24 -05:00
knotteye
54a891dac1 Update documentation 2020-10-16 22:25:24 -05:00
knotteye
95837beaf7 Make server side rendering fully configurable 2020-10-16 21:57:24 -05:00
knotteye
961b5fe648 Add config option to turn server side rendering off.
Ensure templates are precompiled before starting the server.
2020-10-16 21:31:23 -05:00
knotteye
4ec89d71f8 Bump major version. There were some breaking changes in there somewhere 2020-10-14 07:51:26 -05:00
knotteye
988e3473a7 Big commit. Implement handlers for everything that's currently rendered server side in the client-side frontend.
Add compiled templates file to .gitignore, will work out a system for making sure templates are compiled later.
Fix a couple bugs in the API and templates.

TODO for client-side rendering:
Make sure templates get compiled before running the server.
Add a config option to switch between server-side and client-side rendering
Fancy SPA stuff like intercepting links to render changes without a page-reload
2020-10-14 07:44:19 -05:00
knotteye
57d0b0f856 initial work on client-side templating 2020-10-14 00:03:45 -05:00
knotteye
99879fd91e Merge branch 'invite-codes' into 'develop'
Invite codes

See merge request knotteye/satyr!26
2020-10-13 21:31:24 +00:00
knotteye
1a410a597a Fix a bug checking the validity of invite codes 2020-10-13 16:29:13 -05:00
knotteye
acce235812 Increment minor version due to backwards compatible API changes 2020-10-13 16:17:15 -05:00
knotteye
eba53c3732 Rework invitation UI a bit, document API changes 2020-10-13 16:16:37 -05:00
knotteye
67de11e66b Add API handling of invite codes, add web page for inviting users. 2020-10-13 16:12:07 -05:00
knotteye
9605ff8c92 Add a way to generate invites from the command line. Add database migration script. 2020-10-13 15:48:39 -05:00
knotteye
8caad60a43 Add functions for generating and using invite codes 2020-10-13 15:29:47 -05:00
knotteye
987d837ee6 Update some dependency versions. 2020-10-13 15:07:30 -05:00
knotteye
444c3c8f7e Merge branch 'twitch-mirror' into 'develop'
Twitch mirror

See merge request knotteye/satyr!25
2020-10-13 01:57:25 +00:00
knotteye
7b84253fc1 Add some logging for twitch mirror 2020-10-12 20:53:22 -05:00
knotteye
93738d27bc Add sections in profile.njk for adjusting settings.
Everything tested and working apart from the actual streaming functionality.
2020-10-12 13:34:24 -05:00
knotteye
d4bb2ceebe Update documentation for API.
All that's left for twitch mirroring is a UI and then testing.
2020-10-12 12:12:27 -05:00
knotteye
98927bd7b8 Add API functionality for twitch mirror. 2020-10-12 12:11:04 -05:00
knotteye
44cc3213ca Tweak config changes, add functionality in server.ts
Still needs an API and a UI, then good to go.
2020-10-12 11:14:59 -05:00
knotteye
4ff4a6329d Add configuration options for twitch mirror 2020-10-12 10:54:55 -05:00
knotteye
5fe4728c11 Add migration script and update remove and adduser functions.
Needs a UI, API, and functionality.
2020-10-10 16:35:05 -05:00
knotteye
7b25a7bc97 Increment minor version 2020-10-10 16:14:53 -05:00
knotteye
5ff40c7b37 Merge branch 'database-migrate' into 'develop'
Implement database versioning and migration. It could not possibly be any...

See merge request knotteye/satyr!24
2020-10-10 21:08:28 +00:00
knotteye
ee3527f292 Implement database versioning and migration. It could not possibly be any simpler or easier to break, but it works. And it can be used to automatically migrate to a better system for migration later.
For now, the way it works is by creating a new migration script with the name of the version (increment by one, whole numbers) in the src/db folder
On start up, it will compare version numbers and run new scripts. The user can also manually check for migrations and skip the automatic checking.
Added a bit of additional logging to see what's happening in the startup process as well.
2020-10-10 15:55:32 -05:00
knotteye
a36a49b70e Merge branch 'patch-1' into 'develop'
Update REST.md

See merge request knotteye/satyr!23
2020-08-31 01:31:15 +00:00
knotteye
50e96f2b25 Merge branch 'add-live-field' into 'develop'
Add live field to /api/users/all

See merge request knotteye/satyr!22
2020-08-31 01:28:27 +00:00
knotteye
2d7bc8204f Update REST.md 2020-08-31 01:26:43 +00:00
Karen Konou
15824d25c0 Add live field to /api/users/all 2020-08-24 18:14:26 +02:00
knotteye
108d7ad0b7 Fix /api/instance/config 2020-08-23 14:41:48 +00:00
knotteye
b1d4de4af6 Merge branch 'develop' into 'master'
Develop -> Master

See merge request knotteye/satyr!21
2020-08-09 05:02:10 +00:00
knotteye
027b9e746a Increment minor version 2020-08-09 00:00:29 -05:00
knotteye
4baa07123f Merge branch 'chat_bugfix' into 'develop'
Fix a bug with trying to update IRC channels when IRC is disabled.

See merge request knotteye/satyr!20
2020-08-09 04:58:04 +00:00
knotteye
01e872c552 Fix a bug with trying to update IRC channels when IRC is disabled. 2020-08-08 23:50:57 -05:00
knotteye
4959391034 Increment minor version
Remove debug code
2020-08-08 23:37:10 -05:00
knotteye
ac73eb2af3 Merge branch 'ffmpeg-tune' into 'develop'
Tune ffmpeg commands

See merge request knotteye/satyr!19
2020-08-09 04:14:05 +00:00
knotteye
c9accda4eb Tune ffmpeg command to start playback and transcode faster
Add option for custom flags
2020-08-08 23:08:09 -05:00
knotteye
3c311ecf4e Update README.md 2020-08-03 10:05:09 +00:00
knotteye
9eec1241e2 Merge branch 'api-json-changes' into 'develop'
Api json changes

See merge request knotteye/satyr!18
2020-08-03 10:03:58 +00:00
knotteye
654b65640f Change API to set content-type headers.
Rework some responses to make all responses in JSON.
Increment version because of major API changes.
2020-08-03 05:01:20 -05:00
knotteye
0b7b040ade Merge branch 'api-bugix' into 'develop'
Fix incorrect reporting of domain in the api

See merge request knotteye/satyr!17
2020-08-01 01:53:23 +00:00
knotteye
c55ccb75aa Fix incorrect reporting of domain in the api 2020-08-01 01:46:56 +00:00
knotteye
d229947fc4 Merge branch 'develop' into 'master'
Bump version.

See merge request knotteye/satyr!16
2020-07-30 09:17:31 +00:00
knotteye
eac5eaa035 Bump version.
Add documentation for webchat.
2020-07-30 04:13:07 -05:00
knotteye
3a06bae0c4 Merge branch 'develop' into 'master'
Develop

Closes #8

See merge request knotteye/satyr!15
2020-07-30 07:57:54 +00:00
knotteye
cbcd1d8ba8 Document /api/users/live and /api/users/all and modify the documentation format 2020-07-30 02:55:33 -05:00
knotteye
09bf2a8ac1 Add paging and sorting to /api/users/live and /api/users/all calls 2020-07-30 02:49:02 -05:00
knotteye
f7c7f05786 Implement an API call for getting the current stream key. 2020-07-30 01:34:22 -05:00
knotteye
df51432a8f Fix /api/:user/config not returning all info for an authorized user. 2020-07-30 01:14:33 -05:00
knotteye
db8d9dfe72 Add API function for getting a user's configuration. 2020-07-30 00:45:08 -05:00
knotteye
c745572a7e Update list of restricted usernames to avoid collision in api 2020-07-30 00:03:05 -05:00
knotteye
5b4ef9b260 Merge branch 'develop' into 'master'
Fix typo and add functions to be implemented.

See merge request knotteye/satyr!14
2020-07-29 08:42:05 +00:00
knotteye
fb6538a757 Fix typo and add functions to be implemented. 2020-07-29 03:40:53 -05:00
knotteye
5b5d471b7f Merge branch 'develop' into 'master'
Add default value for a contact email

See merge request knotteye/satyr!13
2020-07-29 08:27:11 +00:00
knotteye
bd40c30114 Add default value for a contact email
Add an api function to list a users vods
Document the existing REST API
2020-07-29 03:24:19 -05:00
knotteye
95ae686145 Merge branch 'develop' into 'master'
Develop

See merge request knotteye/satyr!12
2020-07-20 09:35:26 +00:00
knotteye
1a9b7be318 Update readme 2020-07-20 04:25:01 -05:00
knotteye
0d2732a876 Update README.md 2020-07-04 15:09:06 +00:00
knotteye
eacc32f171 Add contributing instructions
That I will follow in the future..
2020-07-04 10:06:52 -05:00
knotteye
303924e77e Merge branch 'develop' into 'master'
Only join channels not already joined with twitchClient and ircClient

Closes #2

See merge request knotteye/satyr!11
2020-07-04 14:59:24 +00:00
knotteye
abd45c8346 Only join channels not already joined with twitchClient and ircClient
Leave channels we don't need anymore as well.
2020-07-04 09:53:12 -05:00
knotteye
94bcecfd0a Merge branch 'develop' into 'master'
Develop

Closes #4

See merge request knotteye/satyr!10
2020-07-04 08:16:29 +00:00
knotteye
ec57e23e9c Increment package version 2020-07-04 03:14:46 -05:00
knotteye
ae603ddad6 Normalize discord messages into human-readable plaintext. 2020-07-04 03:09:32 -05:00
knotteye
cd70d5d4ab Merge branch 'develop' into 'master'
Fix for not transcoding streams which aren't already mp4 encoded.

See merge request knotteye/satyr!9
2020-06-30 06:28:39 +00:00
knotteye
65894b6f2e Fix for not transcoding streams which aren't already mp4 encoded. 2020-06-30 06:26:42 +00:00
knotteye
94822cafb2 Merge branch 'develop' into 'master'
Develop -> Master

See merge request knotteye/satyr!8
2020-06-28 07:25:34 +00:00
knotteye
6073781457 Forgot to include twitch chat dependency 2020-06-27 23:45:47 -05:00
knotteye
0bde9e0b86 Update documentation 2020-06-27 23:39:57 -05:00
knotteye
b2759c5298 Update documentation. 2020-06-27 23:27:47 -05:00
knotteye
fc924816df Increment version. 2020-06-27 22:46:34 -05:00
knotteye
4bd10151f8 Switch from video.js to dash.js, it seems to be more consistent and hiccup less during streams.
This means transcoding to HLS is no longer an option.
Also add a bit of JS to reload the stream periodically if it hadn't started when the page was loaded.
That thing spits out errors fucking constantly, so hopefully it won't cause any problems.
2020-06-27 12:11:42 -05:00
knotteye
ee6c902905 Change profile page to use textareas 2020-06-27 11:08:34 -05:00
knotteye
b57e1d48e6 Fix bug where the profile page wouldn't set record flag. 2020-06-27 10:21:00 -05:00
knotteye
4628deec1c Add VOD management page and the ability to delete the user's own vods 2020-06-27 08:34:09 -05:00
knotteye
0b4a7d6321 Increment version 2020-06-27 07:41:38 -05:00
knotteye
19536d8b84 Add working twitch chat relay 2020-06-27 05:25:40 -05:00
knotteye
29d2090540 Add working IRC integration 2020-06-27 03:23:04 -05:00
knotteye
1ef736ca17 Working discord chat integration 2020-06-27 02:36:45 -05:00
knotteye
c1debc9173 Add basic framework for chat integration code 2020-06-26 12:13:00 -05:00
knotteye
2beffa46fb Add updateChat function in api 2020-06-26 06:07:33 -05:00
knotteye
190e61557e Add templates for chat integration UI 2020-06-26 05:32:05 -05:00
knotteye
717d63917c Fix typo in registration registration query 2020-06-26 04:52:48 -05:00
knotteye
4fb1126c9f (Theoretically) check for and refresh login tokens on page reload 2020-06-26 04:40:06 -05:00
knotteye
a9f1875234 Add config template for chat integration and db schema
No other meaningfull changes (I think)
It's been 7 months since last commit god I hope I didn't break anything.
2020-06-26 04:07:37 -05:00
knotteye
e5dfa446a2 Merge branch 'develop' into 'master'
Develop -> Master

See merge request knotteye/satyr!7
2019-12-21 23:34:59 +00:00
knotteye
97d4678a0a Update documentation to match recent changes with config and chat 2019-12-21 17:23:00 -06:00
knotteye
df8c803e25 Fix a bug with socket ids not being recorded or looped through properly 2019-12-21 16:58:40 -06:00
knotteye
a0e89e9b60 Add proper kicking and banning for users with multiple accounts. 2019-12-21 16:16:50 -06:00
knotteye
f7733b9507 Big Refactor
Stop using config and toml as dependencies
Stop passing around config variables through function calls
Add config.ts and pull the values you need directly in the files
Remove irc.js for incoming new IRC solution
Rename controller to index because that was stupid
Minor git bullshit with the config folder
Change to yaml as a config format
2019-12-21 08:59:35 -06:00
knotteye
681802dbaf Bugfix for room bans 2019-12-08 17:18:31 -06:00
knotteye
61deb1afa7 Minor improvements to socket.io chat, including banning and unbanning per room, and spam detection and server bans 2019-12-07 21:23:50 -06:00
knotteye
a0be256a64 Hopefully resolves issues with videojs occasionally not initializing the player 2019-12-07 10:51:26 -06:00
knotteye
8da1310e24 Add adaptive livestreaming config docs. 2019-12-05 18:37:26 -06:00
knotteye
4b1fc5c1fc Make adapative streaming full configurable 2019-12-05 18:27:29 -06:00
knotteye
24a7d3dfbf Merge branch 'develop' into 'master'
Develop -> Master

See merge request knotteye/satyr!6
2019-12-05 22:40:15 +00:00
knotteye
3f26790878 Remove extra FS import. 2019-12-05 16:19:07 -06:00
knotteye
76c63d3a94 Set sameSite on Authorization cookie
Enable toggleable HSTS
2019-12-05 16:08:50 -06:00
knotteye
8c17149f39 Fix throwing unhandled promise rejection if user doesn't exist in validatePasswordRedirect user to /profile on successful login 2019-12-05 15:03:27 -06:00
knotteye
be38b873eb Add full support for multiple connections with one account in Socket.IO
Add LIST command
2019-12-05 14:16:07 -06:00
knotteye
661d953919 Fix a bug with user pages displaying incorrectly in chrome 2019-12-04 18:48:02 -06:00
knotteye
11eee2ab89 Bump version to 0.5.1 2019-12-04 17:52:49 -06:00
knotteye
5a52308503 Stop using dash.js, videojs supports it natively.
Modal messages also work again
Turn off watch in nunjucks config (oops)
Change some redirects based on logged in status.
2019-12-04 17:52:11 -06:00
knotteye
74c90114c7 Bump Version
I still don't understand pre-release versioning.
2019-12-03 19:58:40 -06:00
knotteye
f6da919b5e Merge branch 'develop' into 'master'
Develop -> Master

See merge request knotteye/satyr!5
2019-12-04 01:54:12 +00:00
knotteye
25cf8a37a2 Big Commit!
Seriously, this one is pretty massive. Satyr now has proper sessions in the browser (like a real website), and a lot of changes were made.

API Endpoints were changed from requiring a username and password to requiring a valid JsonWebToken, obtained from /api/login
Satyr will generate a PEM format key for JWT signing and verification on startup if it can't find one at config/jwt.pem
This file was added to .gitignore
Two new depencies: cookie-parser and jose, for reading and signing JWTs.

Refactored http.ts into mutiple functions, with a couple helper functions related to cookies and JWT decoding and verification. Socket.IO chat will also automatically log in users with a valid JWT.

Refactor api.ts to reflect new requirements from endpoints.

Minor bugfix in server.ts so we don't throw an uncaught exception when rejecting a stream with an invalid key.

Transcode options readded to default.toml. They do nothing and they are not sane defaults. Both of those things are in the todo list.
2019-12-03 19:51:14 -06:00
knotteye
31426a0c41 Fix a bug where we treated local clients the same as foreign ones 2019-11-30 14:15:31 -06:00
knotteye
d4f92c33ff Update version to 0.4.4 2019-11-28 09:33:52 -06:00
knotteye
daa2ec7a71 Refactor stream key handling
Instead of redirecting with FFMPEG, change client streamPath to the privateEndpoint/StreamKey
Hopefully this is silent, because if it isn't it's leaking the stream key to every client.
2019-11-27 22:18:55 -06:00
knotteye
a521583e92 Change systemd service description 2019-11-27 22:07:20 -06:00
knotteye
0dbe84ba4e Merge branch 'develop' into 'master'
Develop

See merge request knotteye/satyr!4
2019-11-25 18:59:49 +00:00
knotteye
d9b3333f21 Clean up commented out code
Discard messages with only whitespace in socket.io
2019-11-25 12:55:55 -06:00
knotteye
cf71e663de Handle temporary data from database better instead of modifying njkconf in place. 2019-11-25 11:38:12 -06:00
knotteye
f7d9c78d09 Move transcode config to mkdir callback 2019-11-25 09:36:50 -06:00
knotteye
7db878be8c 0.4.3 2019-11-24 20:26:45 -06:00
knotteye
1f3504f698 Fix a bug where streams would crash upon FFMPEG exceeding maximum child_process buffer
Change scripts to automatically build before serving
Move typescript to dependencies
Check if the stream is ready to transcode to MPEG-DASH programmatically instead of waiting for 5 seconds
Use session.isLocal instead of matching session.ip against some strings
(session.isLocal does that internally but at least this way looks prettier)
2019-11-24 20:25:19 -06:00
knotteye
5f2cd91db2 Merge branch 'develop' into 'master'
Develop -> master

See merge request knotteye/satyr!3
2019-11-16 21:39:54 +00:00
knotteye
239cd252a2 Bump version to 0.4.2 2019-11-16 15:37:19 -06:00
knotteye
7db22a974d Fix hardcoding of ffmpeg binary 2019-11-16 15:35:30 -06:00
knotteye
efc087c7a3 Fix systemd service to restart properly 2019-11-16 15:23:42 -06:00
knotteye
1895992326 Bump version to 0.4.1 2019-11-16 14:45:09 -06:00
knotteye
93abcb0538 Move from exec to execFile to avoid any potential security issues. 2019-11-16 14:42:26 -06:00
160 changed files with 4335 additions and 272689 deletions

5
.gitignore vendored
View File

@ -1,6 +1,7 @@
node_modules
site/live
config/local.toml
config/generated.toml
config/**/*
!config/.gitkeep
install/db_setup.sql
build/**
site/templates.js

View File

@ -2,17 +2,31 @@
System dependencies: A stable version of node>=10, mysql3 (or a compatible implementation such as MariaDB), and ffmpeg >=4.2
### Build Instructions
### Setup Instructions
```bash
git clone https://gitlab.com/knotteye/satyr.git
git clone https://pond.waldn.net/git/knotteye/satyr.git
cd satyr
npm install
npm run setup
npm run build
```
Follow the instructions after setup runs.
### Run the server
```bash
npm start
npm run start
```
You can also skip checking the database version and compiling templates (if you don't use server-side rendering) on startup.
```bash
npm run start -- --skip-migrate --skip-compile
# don't forget to migrate manually when you update
npm run migrate
# and compile templates after any changes
npm run make-templates
```
## Contributing
1. Fork the repository
2. Create new feature branch
3. Write Code
4. Create an request to merge back into develop

0
config/.gitkeep Normal file
View File

View File

@ -1,53 +0,0 @@
#DO NOT EDIT THIS FILE
#ALL CHANGES SHOULD GO IN LOCAL.TOML
[bcrypt]
saltRounds = 12
[satyr]
name = ''
domain = ''
registration = false
restrictedNames = ['live']
rootredirect = '/users/live'
[ircd]
enable = false
port = 6667
sid = ''
server = ''
pass = ''
vhost = 'web.satyr.net'
[database]
host = 'localhost'
user = 'satyr'
password = ''
database = 'satyr_db'
connectionLimit = '50'
connectionTimeout = '1000'
insecureAuth = false
debug = false
[server]
logs = 0
api = false
api_user = false
api_pass = false
[server.rtmp]
port = 1935
chunk_size = 6000
gop_cache = true
ping = 30
ping_timeout = 60
[server.http]
allow_origin = '*'
directory = './site'
port = 8000
[media]
record = false
publicEndpoint = 'live'
privateEndpoint = 'stream'
ffmpeg = ''

126
docs/CHAT.md Normal file
View File

@ -0,0 +1,126 @@
# A Guide to the API for Satyr's webchat
This is not a guide to using the webchat, this a reference point for writing clients.
Satyr's webchat is based on [socket.io](https://socket.io/), you can find clients for [Java](https://github.com/socketio/socket.io-client-java), [C++](https://github.com/socketio/socket.io-client-cpp), [Swift](https://github.com/socketio/socket.io-client-swift), [Dart](https://github.com/rikulo/socket.io-client-dart), and probably more.
Socket.IO is loosely reminiscent of IRC in that you will receive events from the server and sent events to it. The following is a list of incoming and outgoing events you will need to handle or send. If you would like to see examples, templates/chat.html is the implementation used in the webclient by satyr.
# Incoming Events
These are events you will recieve from the server that need to be handled in some way.
## MSG
A MSG event is a chat message. It will have data attached in the following JSON format:
```
{
nick: "nickname of the sending user",
msg: "the text of the message",
room: "the room the message was sent to"
}
```
## ALERT
An ALERT event is a message from the server to a room. It is just a string containing the plaintext message. Alerts notify a user about things like nickname changes, users who are kicked or banned, and errors.
## JOINED
A JOINED event notifies the client that a new user has joined a room they are in. It's a JSON message in the following format:
```
{
nick: "the user that joined",
room: "the name of the room"
}
```
## LEFT
A LEFT event notifies the client that a user has left a room they are in. It's a JSON message in the following format:
```
{
nick: "the user that left",
room: "the name of the room"
}
```
## LIST
A LIST event will only be emitted by the server in response to receiving a LIST event from the client. It is a string containing the list of users in a room, separated by commas.
# Outgoing Events
These are events sent from the client to request that the server do something.
## NICK
This is a request to set the client's nickname. The data attached to a NICK event should be a JSON object in the following format. The password field is optional, and only required for registered users.
```
{
nick: "the requested nickname",
password: "the optional password"
}
```
During the initial connect of the client, the server will check for the "Authorization" cookie. If the cookie is a valid, signed JWT the client will be assigned the nickname of the user that cookie belongs to. If it doesn't exist or is invalid, the client will be assigned a nickname of the form Guest+some integer.
The server will send an alert notifying the client of either the nickname change, or some error.
## MSG
This is a chat message to send to a room. It should be a JSON object in the following format:
```
{
room: "the room to send the messag to",
msg: "the text of the message"
}
```
## JOINROOM
This is a request to join a room and be notified of its events. The attached data should be a string containing the name of the room.
The server will send the client an alert notifying them of having joined the room, or some error.
## LEAVEROOM
This is a request to leave a room and no longer be notified of its events. The attached data should be a string containing the name of the room.
## LIST
This is a request for a list of users in a room. It should be a JSON object of the following format:
`{room: "the name of the room"}`
## KICK
This is a request to kick a user from a room. It can only be done by the owner of the room. It should be a JSON object of the following format:
```
{
nick: "the user to kick",
room: "the room to kick them from"
}
```
## BAN
This is a request to ban a user from a room. It can only be done by the owner of the room. All bans are based on IP. It should be a JSON object of the following format:
```
{
nick: "the user to ban",
room: "the room to ban them from",
length: 30
}
```
The length field is time in minutes.
## LISTBAN
This is a request for a list of IP adresses banned from a room. It should be a JSON object of the following format:
`{room: "the name of the room"}`
The server will reply with an ALERT that contains a list of IP addresses separated by commas.
## UNBAN
A request to unban an IP address. It can only be done by the owner of the room. It should be a JSON object of the following format:
```
{
room: "the name of the room",
ip: "the ip address to unban"
}
```
# Final Notes
Sending more than 10 messages per second will cause the server to kick your client. If kicked this way 3 times, the client will be banned for 20 minutes.
Kicked or banned users will not be notified of this through an event.
The server *will* send your own MSG events back to you, you will need to parse them out if you want to display them immediately.
Clients who successfully authenticate as a registered user, through either a password or a signed JWT, can ignore nickname collision and have as many connections as they wish.

View File

@ -1,27 +1,105 @@
## Configuring Satyr
### Config file
All changes to satyr's config will go in the config/local.toml file
All changes to satyr's config will go in the config/config.yml file
Some values you might want to change are
```
[satyr]
registration = true
#allow new users to register
rootRedirect = '/users/live'
#the page users are directed to when they visit your site root
[media]
record = true
#allow users to record VODs
[bcrypt]
saltRounds = 12
#change the number of rounds of bcrypt to fit your hardware
#if you don't understand the implications, don't change this
[ircd]
enable = true
#enable IRC peering
#unused for now
satyr:
registration: true
# allow new users to register
port: 8000
# the port to serve http on
http:
hsts: true
# enable strict transport security
rtmp:
port: 1935
# change the port to serve rtmp on
cluster: false
# enable clustering for the RTMP server
# clustering is an attempt to take better advantage of multi threaded systems in spite of node.js being single-threaded
# satyr will spawn one RTMP Worker per CPU core, and round-robin incoming connections between workers
# If you turn this on, satyr will no longer be able to reliably serve RTMP streams to clients
# Your users will have to use DASH instead
media:
record: true
# allow users to record VODs
transcode:
adapative: true
# enable adaptive livestreaming when transcoding to mpeg-dash
# this will help users with poor connections, but is very cpu intensive
# even 3 variants will max out most budget VPSs with a single stream
variants: 3
# the number of stream variants to generate when transcoding
# satyr will generate one source quality variant, and the remaining
# variants will be of incrementally lower quality and bitrate
# having more than 4-5 variants will start giving diminishing returns on stream quality for cpu load
# if you can't afford to generate at least 3 variants, it's recommended to leave adaptive streaming off
inputflags: ""
# additional flags to apply to the input during transcoding
outputflags: ""
# additional flags to apply to the output during transcoding
hwaccel:
# See HWACCEL.md for information on configuring hardware acceleration.
crypto:
saltRounds: 12
# change the number of rounds of bcrypt to fit your hardware
# if you don't understand the implications, don't change this
chat:
# the following settings are for chat bridging bots
# users will still need to choose which channel to bridge
# for their chat at /profile/chat
irc:
enabled: true
server: chat.freenode.net
port: 6697
tls: true
# settings for the server the IRC bot will connect to
nickname: 'satyrchat'
sasl: true
password: 'definitelyrealpassword'
# if you want the bot to authenticate itself to reserve the username
discord:
enabled: true
token: abcdefghijklmnopqrstuvwxyz
# the access token for the bot
# note that the bot will mirror every channel matching the name the user has chosen
# even if it's connected to multiple servers
twitch:
enabled: true
username: satyrchataccount
token: asdfghjklASDFGHJKL
# access token for the twitch chat bot
# this is not the account password, you will need to generate a token here:
# https://twitchapps.com/tmi/
xmpp:
enabled: true
server: 'example.com'
port: 5222
jid: 'exampleBot@example.com'
password: 'abcde'
# connection settings for the bot
nickname: 'SatyrChat'
# the nickname the bot will join MUCs with
# note that for the best experience you should set the default number of history messages to 0 for the MUC
# The bot will attempt to request 0 history messages anyway, and will also attempt to ignore any history messages it receives
# but both of these things are unreliable
```
### Web Frontend
If you want to customize the front-end css, place a file with any changes you wish to make at site/local.css
You can change the logo by replacing site/logo.svg.
You can change the logo by replacing site/logo.svg.
You should also consider editing templates/about.html and templates/tos.html

53
docs/HWACCEL.md Normal file
View File

@ -0,0 +1,53 @@
## Configuration Hardware Acceleration
Satyr supports the NVENC and VA-API hardware acceleration APIs. If you've configured your system correctly (the hard part) it should be enough to set the type and use the default device setting if you only have one hardware acceleration device.
### System
Configuring the system for any hardware acceleration API involves three main steps: selecting the right drivers, installing the API libraries, and configuring ffmpeg.
#### NVENC
NVENC in ffmpeg can work with either open-source drivers (nouvea) or nvidia's proprietary drivers. The documentation for your distribution should have instructions for installing these.
The only system library you should need is the CUDA toolkit, general named cudatoolkit, nvidia-cuda-toolkit, or some variation in your system repositories.
You can also try installing manually from [here](https://developer.nvidia.com/cuda-downloads).
Most binary distributions provide a version of ffmpeg with NVENC already enabled. If not you can try compiling ffmpeg from source with the `--enable-nvenc` flag. If you use a source based distribution you should be familiar with enabling optional compile flags.
You can verify that ffmpeg has been set up correctly by checking the output of `ffmpeg -hide_banner -hwaccels | grep cuvid` and `ffmpeg -hide_banner -encoders | grep nvenc`. If you don't see anything, something is wrong.
#### VA-API
VA-API is an extremely generic API. Although the package names might be different in your distribution, the arch wiki page for hardware acceleration has good information on [driver selection](https://wiki.archlinux.org/index.php/Hardware_video_acceleration#Installation) and [verifying](https://wiki.archlinux.org/index.php/Hardware_video_acceleration#Verifying_VA-API) a VA-API install for a wide range of devices.
Regardless of driver selection, you will also need libva or the equivalent from your distrubtion, and libva-utils can be helpful as well.
Most binary distributions provide a version of ffmpeg with VA-API already enabled. If not you can try compiling ffmpeg from source with the `--enable-vaapi` flag. If you use a source based distribution you should be familiar with enabling optional compile flags.
You can verify that ffmpeg has been set up correctly by checking the output of `ffmpeg -hide_banner -hwaccels | grep vaapi` and `ffmpeg -hide_banner -encoders | grep vaapi`. If you don't see anything, something is wrong.
### Satyr
```
# Decoding
hwaccel:
# Enable hardware acceleration for decoding as well as encoding.
# Probably not worth it, hardware decoding won't be any faster compared to software on a vaguely modern CPU
# Hardware decoding also may not support the input format, in which case transcoding will fail
decode: true
# Only supported for VA-API
# Fall back to software decoding if hardware decoding fails
hwaccel:
decode: 'fallback'
# NVENC
hwaccel:
type: 'nvenc'
# device is optional for nvenc
device: 0
# nvenc wants a device number instead of a path, set to null to use the default
# VA-API
hwaccel:
type: 'vaapi'
# device is mandatory for va-api
device: '/dev/dri/renderD128'
```

View File

@ -2,13 +2,16 @@
A more detailed walkthrough.
### System Dependencies
Install ffmpeg and mysql through your distribution's package manager.
See [this page](https://nodejs.org/en/download/package-manager/) for instructions on install node. Compatible versions are >=10. Nightly builds may fail to compile some of the native addons.
Install ffmpeg(>= 4.2.1) and mysql through your distribution's package manager.
See [this page](https://nodejs.org/en/download/package-manager/) for instructions on installing node v10.
If the version in your distro's package manager is different, you can install [n](https://www.npmjs.com/package/n) through npm to manage node versions.
### Installing Satyr
Before starting, you should create a system user to run the satyr service.
Clone the repository and change to the directory
```bash
git clone https://gitlab.com/knotteye/satyr.git
git clone https://pond.waldn.net/git/knotteye/satyr.git
cd satyr
```
Install nodejs dependencies
@ -19,31 +22,29 @@ Run the setup script to generate a config file and database setup.
```bash
npm run setup
```
Look over the generated config file in config/generated.toml, and move it to config/local.toml when you're satisfied.
Look over the generated config file in config/generated.yml, and move it to config/config.yml when you're satisfied.
Run the setup script for the database.
```bash
sudo mysql
source install/db_setup.sql;
```
Compile the code and start the server.
Then start the server.
```bash
npm run build
npm start
npm run start
```
It is reccomended that you run Satyr behind a TLS terminating reverse proxy, like nginx.
An example systemd service is provided at install/satyr.service. It assumes you've installed satyr into /opt/satyr, and created a satyr user with the home directory /var/lib/satyr for the purpose of running the service.
It is reccomended that you run Satyr behind a TLS terminating reverse proxy like nginx. An example configuration can be found at install/satyr.nginx. An example systemd service is provided at install/satyr.service. It assumes you've installed satyr into /opt/satyr, and created a satyr user with the home directory /var/lib/satyr for the purpose of running the service.
## Updating Satyr
Updating should be as simple as pulling the latest code and dependencies, then building and restarting the server.
Updating should be as simple as pulling the latest code and dependencies, then restarting the server.
```bash
git pull
npm i
npm run build
npm update
```
Then restart the server.
## Migrating Satyr
To backup and restore, you will need to export the mysqlDB. Restore the new database from the backup, then copy the config/local.toml file and the site directory to the new install.
To backup and restore, you will need to export the mysqlDB. Restore the new database from the backup, then copy the config and site directories to the new location.

238
docs/REST.md Normal file
View File

@ -0,0 +1,238 @@
# Using Satyr's Rest API
## /api/instance/info
Generic enformation about the instance.
**Method**: GET
**Authentication**: no
**Parameters**: none
**Response**: Returns a JSON object containing the name, domain, version, email, and whether registration is open. Email will be null if not specified.
**Example**: `{name: "Example Instance", domain: "example.com", registration: false, version: 0.7, email: null}`
## /api/instance/config
Configuration of the instance relating to media
**Method**: GET
**Authentication**: no
**Parameters**: none
**Response**: JSON object containing the port and ping_timeout for RTMP, whether clustering is enabled, public and private play endpoints, and whether adaptive livestreaming and VOD recording are enabled.
**Example**:
```
{
rtmp: {
cluster: false,
port: 1935,
ping_timeout: 60
},
media: {
vods: false,
publicEndpoint: 'live',
privateEndpoint: 'stream',
adaptive: true
}
}
```
Public and private endpoints work like this, from the above example:
stream to: rtmp://example.com/stream
play from: rtmp://example.com/live/username or https://example.com/live/username/index.mpd
## /api/users/live/
Returns the usernames and stream titles of 10 users who are currently streaming
**Method**: POST
**Authentication**: no
**Parameters**: num (optional), sort (optional), page (optional)
number is the number of results (maximum is 50)
sort is the optional way to sort results. current options are "alphabet" and "alphabet-r" (reversed)
page is the page number (i.e. skip the first num * page results)
**Response**: Returns an array of JSON objects containing the username and title of each stream. Returns an empty array if no one is streaming. Returns `{"error":"error reason"}` in the event of an error. Will attempt to correct malformed requests to default values.
The array will be wrapped in a JSON object under the key 'users'.
**Example**: `{users: [{username:"foo", title:"bar"}] }`
## /api/users/all
Same as above, but returns all users regardless of whether they are streaming and if they're streaming or not. Also returns a value 'live' indicating whether a user is currently streaming.
**Example**: `{users: [{username:"foo", title:"bar", live:1}] }`
## /api/register
Register a new user.
**Method**: POST
**Authentication**: no
**Parameters**: Username, password, confirm, invite(optional)
Invite is an optional invite code to bypass disabled registration.
**Response**: If successful, returns a json object with the users stream key. Otherwise returns `{error: "error reason"}`
**Examples**:
`{stream_key: "asdfghjkltyuiop12345"}`
`{error: "registration disabled"}`
## /api/login
Obtain a signed json web token for authentication
**Method**: POST
**Authentication**: no
**Parameters**: Username and password OR a valid JWT cookie expiring in less than 24 hours
**Response**: If succesful, will return `{success: ""}` or `{success: "already verified"}` if the JWT provided is too early to be renewed. If unsuccesful, will return `{error: "invalid password"}` or `{error: "Username or Password Incorrect"}` depending on the authentication method. Note that if a JWT is available, the parameters will be ignored.
**Notes**: The returned JWT is set as the cookie httponly 'Authorization'. It will also return a non httponly cookie X-Auth-As with the username of the authenticated user.
## /api/user/update
Update the current user's information
**Method**: POST
**Authentication**: yes
**Parameters**: title, bio, rec, twitch, twitch_key
Rec is a boolean (whether to record VODs), twitch is a boolean (whether to mirror video streams to twitch) others are strings. Twitch_key is the stream key to use for twitch. Parameters that are not included in the request will not be updated.
**Response**: Returns `{error: "error reason"}` or `{success: ""}`
## /api/user/update/chat
Update the chatrooms on other platforms to integrate with the user's stream chat
**Method**: POST
**Authentication**: yes
**Parameters**: discord, xmpp, twitch irc
Strings corresponding to a channel name to mirror to. Parameters not included in the request will not be updated.
**Response**: Returns `{error: "error reason"}` or `{success: ""}`
## /api/user/vods/delete
Delete the specified vods of the current user
**Method:** POST
**Authentication**: yes
**Paramters**: A string array of the names of vods to be deleted. (Do not include the file extension)
**Response**: Returns `{error: "error reason"}` or `{success: ""}`
## /api/user/password
Change the current user's password
**Method**: POST
**Authentication**: yes
**Parameters**: The user's current password, the new password, AND a valid JWT cookie.
**Response**: Returns `{error: "error reason"}` or `{success: ""}`
## /api/user/streamkey
Change the current user's stream key. This will not affect the stream if the user is currently live.
**Method**: POST
**Authentication**: yes
**Parameters**: A valid JWT cookie. No other parameters.
**Response**: Returns `{error: "error reason"}` or `{success: "new_stream_key"}`
## /api/:user/vods
Get a list of the named users VODs
**Method**: GET
**Authentication**: no
**Parameters**: user
**Response**: Returns an array of VODs inside a JSON object with the format `{"vods": [{"name":"yote.mp4"},{"name":"yeet.mp4"}] }`
**Notes**: VODs are always available at http://domain/publicEndpoint/username/filename
## /api/:user/config
Get information about the specified user.
**Method**: GET
**Authentication**: optional
**Parameters**: user
**Response**: Returns a JSON object with available information about the user. If the user is authenticated and searching for their own information, will return all available information. Otherwise it will return only the stream title, bio, and whether the stream is live. In the case of searching for a user that does not exist, the returned object will contain only the username searched for.
**Example**: `{username: "foo", title: "bar", about: "This is an example bio", live: 0}`
## /api/user/streamkey/current
Returns the current stream key for the authenticated user.
**Method**: GET
**Authentication**: yes
**Parameters**: none
**Response**: returns a JSON object with the stream key
**Example**: `{stream_key: "abcdefghijklmno12345"}` or `{error:"error reason"}`

View File

@ -1,60 +1,42 @@
## Satyr Usage
### Administration
Satyr needs access to port 1935 for RTMP streams, and will serve HTTP on port 8000. The ports can be changed with follow config lines.
```
[server.http]
port = 8000
[server.rtmp]
port = 1935
```
Changing the rtmp port is not recommended.
Satyr needs access to port 1935 for RTMP streams, and will serve HTTP on port 8000. See CONFIGURATION.md for details on changing this.
For HTTPS, run a reverse proxy in front of satyr. An example nginx block is shown below.
```
server {
port 80;
port [::]80;
server_name example.tld;
return https://$server_name$request_uri 301;
}
server {
port 443 ssl;
port [::]443 ssl;
server_name example.tld;
For HTTPS, run a reverse proxy in front of satyr. An example nginx config can be found at install/satyr.nginx
An example systemd service can also be at install/satyr.service
ssl_trusted_certificate /etc/letsencrypt/live/example.tld/chain.pem;
ssl_certificate /etc/letsencrypt/live/example.tld/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.tld/privkey.pem;
#### CLI
Satyr's CLI tool can be run with `npm run cli` or `node_modules/.bin/ts-node src/cli.ts`
location / {
proxy_pass http://127.0.0.1:8000/;
}
}
```
It's not very complex. The following commands are available:
* `npm run cli -- --adduser sally --password "hunter12"` to create user sally with the password hunter12
* `npm run cli -- --rmuser sally` to remove user sally
* `npm run cli -- --invite` to generate an invite code used for creating account even when registration is closed
Users can be added from the command line even if registration is closed. Use the following syntax.
```bash
npm run-script user -- --adduser kawen --password imkawen
npm run-script user -- --rmuser lain
```
### Users
#### Accounts
If registration is open, users can register at example.tld/registration, and set some options such as whether to record VODs and a stream title on /profile
Stream keys can be changed at example.tld/changesk, and passwords at /changepwd
If registration is open, users can register at your.site.com/registration, and set some options such as whether to record VODs and a stream title on /profile.
#### Chat
Chat is based on Socket.IO, and can be accessed through the webclient at /chat.
Chatting and changing a nickname do not require authentication, but the usernames of streamers are reserved.
The following commands are available:
`/nick kawen (password)` Password is only required if kawen is a registered user.
`/join kawen` Join the chatroom for kawen's stream and leave the previous room.
`/kick lain` Available only in your own room if you are a streamer. Forcefully disconnect the user.
* `/nick sally (password)` Password is only required if sally is a registered user.
* `/join sally` Join the chatroom for sally's stream and leave the previous room.
* `/kick bob` Available only in your own room if you are a streamer. Forcefully disconnect the user.
* `/ban bob (time)` Ban a user from your room. Bans are based on IP address. The optional time is in minutes. The default is 30.
* `/banlist` List the IPs currently banned from your room.
* `/unban (ip)` self explanatory
You can set up mirroring to and from webchat rooms and IRC channels, twitch streams, and discord server channels.
More information is in CONFIGURATION.md
#### Streaming
Users should stream to rtmp://example.tld/stream/examplestreamkey
The stream will be available at rtmp://example.tld/live/kawen and http://example.tld/live/kawen/index.m3u8 or .mpd if you've enabled DASH. (Enabling both HLS and DASH is not recommended for most use cases.)
The stream will be available at rtmp://example.tld/live/kawen and http://example.tld/live/kawen/index.mpd
Most software, such as OBS, will have a separate field for the URL and stream key, in which case the user can enter rtmp://example.tld/stream/ and the stream key in the appropriate field.

View File

@ -0,0 +1,77 @@
satyr:
name: '<iname>'
domain: '<domain>'
email: '<email>'
registration: false
media:
record: false
ffmpeg: '<ffmpeg>'
rtmp:
# enable cluster mode this will pretty much entirely
# break the ability to play rtmp for clients
cluster: false
port: 1935
http:
# uncomment to set HSTS when SSL is ready
#hsts: true
server_side_render: false
database:
user: '<dbuser>'
password: '<dbpass>'
database: '<dbname>'
host: '<dbhost>'
transcode:
#may result in higher latency if your cpu can't keep up
adaptive: false
#more than 3 might cause problems when using hwacceleration
variants: 3
#unused right now, will always transcode to dash
format: dash
hwaccel:
# see docs/HWACCEL.md for instructions on configuring hardware acceleration
type: null
chat:
irc:
enabled: false
server:
port: 6667
tls: false
nickname: 'SatyrChat'
username: 'SatyrChat'
realname: 'Satyr Chat Integration Bot'
sasl: false
password:
discord:
enabled: false
token:
xmpp:
enabled: false
server:
port: 5222
jid:
password:
nickname:
twitch:
enabled: false
username:
#https://twitchapps.com/tmi/
password:
twitch_mirror:
# enable to allow users to mirror video streams to twitch
# for those with truly no bandwidth limits
enabled: false
# https://stream.twitch.tv/ingests/
# do not include {stream_key}
ingest: 'rtmp://live-ord02.twitch.tv/app/'

View File

@ -13,4 +13,11 @@ CREATE TABLE user_meta(
title VARCHAR(120),
about VARCHAR(5000),
live TINYINT
);
CREATE TABLE chat_integration(
username VARCHAR(25),
irc VARCHAR(1000),
xmpp VARCHAR(1000),
twitch VARCHAR(1000),
discord VARCHAR(1000)
);

29
install/satyr.nginx Normal file
View File

@ -0,0 +1,29 @@
server {
port 80;
port [::]80;
server_name example.tld;
return https://$server_name$request_uri 301;
}
server {
port 443 ssl;
port [::]443 ssl;
server_name example.tld;
ssl_trusted_certificate /etc/letsencrypt/live/example.tld/chain.pem;
ssl_certificate /etc/letsencrypt/live/example.tld/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.tld/privkey.pem;
location / {
proxy_pass http://127.0.0.1:8000/;
}
location ~* \.(mpd|m4s|mp4)$ {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
# nginx can serve static files faster than node
# this should improve performance
root /opt/satyr/site/;
}
}

View File

@ -1,16 +1,15 @@
[Unit]
Description=A livestreaming server.
Description=satyr livestreaming server
After=network.target
[Service]
ExecReload=/bin/kill $MAINPID
KillMode=process
KillMode=control-group
Restart=on-failure
User=satyr
Environment="HOME=/var/lib/satyr"
WorkingDirectory=/opt/satyr
ExecStart=/usr/bin/npm start
ExecStart=/usr/bin/npm run start
PrivateTmp=true
ProtectHome=true
@ -18,4 +17,4 @@ ProtectSystem=full
NoNewPrivileges=true
[Install]
WantedBy=multi-user.target
WantedBy=multi-user.target

View File

@ -38,8 +38,8 @@ dbclient="${dbclient:='*'}"
else
dbclient="localhost"
fi
sed -e "s#<iname>#$name#g" -e "s#<domain>#$domain#g" -e "s#<ffmpeg>#$ffmpeg#g" -e "s#<dbuser>#$dbuser#g" -e "s#<dbname>#$dbname#g" -e "s#<dbpass>#$dbpass#g" -e "s#<dbhost>#$dbhost#g" -e "s#<email>#$email#g" install/template.local.toml > config/generated.toml
sed -e "s#<iname>#$name#g" -e "s#<domain>#$domain#g" -e "s#<ffmpeg>#$ffmpeg#g" -e "s#<dbuser>#$dbuser#g" -e "s#<dbname>#$dbname#g" -e "s#<dbpass>#$dbpass#g" -e "s#<dbhost>#$dbhost#g" -e "s#<email>#$email#g" install/config.example.yml > config/generated.yml
sed -e "s#<dbuser>#$dbuser#g" -e "s#<dbname>#$dbname#g" -e "s#<dbpass>#$dbpass#g" -e "s#<dbhost>#$dbhost#g" -e "s#<dbclient>#$dbclient#g" install/db_template.sql > install/db_setup.sql
echo "A setup script for the database has been generated at install/db_setup.sql. Please run it by connecting to your database software and executing 'source install/db_setup.sql;''"
echo "A default configuration file has been generated at config/generated.toml"
echo "If everything looks fine, move it to config/local.toml and start your instance."
echo "A default configuration file has been generated at config/generated.yml"
echo "If everything looks fine, move it to config/config.yml and start your instance."

View File

@ -1,15 +0,0 @@
[satyr]
name = '<iname>'
domain = '<domain>'
email = '<email>'
registration = false
[media]
record = false
ffmpeg = '<ffmpeg>'
[database]
user = '<dbuser>'
password = '<dbpass>'
database = '<dbname>'
host = '<dbhost>'

2716
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,35 +1,48 @@
{
"name": "satyr",
"version": "0.4.0",
"version": "1.0.0",
"description": "A livestreaming server.",
"license": "AGPL-3.0",
"author": "knotteye",
"scripts": {
"start": "node build/controller.js",
"build": "tsc",
"user": "node build/cli.js",
"setup": "sh install/setup.sh"
"start": "ts-node src/index.ts",
"cli": "ts-node src/cli.ts",
"setup": "sh install/setup.sh",
"migrate": "ts-node src/migrate.ts",
"invite": "ts-node src/cli.ts --invite",
"v3-manual": "ts-node src/v3manual.ts",
"make-templates": "nunjucks-precompile -i [\"\\.html$\",\"\\.njk$\"] templates > site/templates.js"
},
"repository": {
"type": "git",
"url": "https://gitlab.com/knotteye/satyr.git"
"url": "https://git.waldn.net/git/knotteye/satyr.git"
},
"dependencies": {
"bcrypt": "^3.0.6",
"bcrypt": "^5.0.0",
"body-parser": "^1.19.0",
"config": "^3.2.2",
"cookie-parser": "^1.4.4",
"dank-twitch-irc": "^3.2.6",
"dirty": "^1.1.0",
"discord.js": "^11.6.4",
"express": "^4.17.1",
"flags": "^0.1.3",
"irc": "^0.5.2",
"is-port-available": "^0.1.5",
"jose": "^1.15.1",
"mysql": "^2.17.1",
"node-media-server": ">=2.1.3 <3.0.0",
"nunjucks": "^3.2.0",
"node-media-server": "^2.2.4",
"nunjucks": "^3.2.1",
"parse-yaml": "^0.1.0",
"recursive-readdir": "^2.2.2",
"simple-xmpp": "^1.3.1",
"socket-anti-spam": "^2.0.0",
"socket.io": "^2.3.0",
"toml": "^3.0.0"
"strftime": "^0.10.0",
"ts-node": "^8.5.4",
"typescript": "^3.6.3",
"shaka-player": "^3.0.5"
},
"devDependencies": {
"@types/node": "^12.7.5",
"typescript": "^3.6.3"
"@types/node": "^12.12.67"
}
}

View File

@ -1,49 +0,0 @@
# Dash.js Authors List
#####Please add entries to the bottom of the list in the following format
* @GitHub UserName (Required) [Name and/or Organization] (Optional)
#Authors
* @nweber [Digital Primates]
* @jefftapper [Jeff Tapper, Digital Primates]
* @KozhinM [Mikail Kozhin, Microsoft Open Technologies]
* @kirkshoop [Kirk Shoop, Microsoft Open Technologies]
* @wilaw [Will Law, Akamai Technologies]
* @AkamaiDASH [Dan Sparacio, Akamai Technologies]
* @dsilhavy [Daniel Silhavy, Fraunhofer Fokus]
* @greg80303 [Greg Rutz, CableLabs]
* @heff [Steve Hefferman, Brightcove]
* @Tomjohnson916 [Tom Johnson, Brightcove]
* @jeroenwiljering [Jeroen Wijering, JWPlayer]
* @bbcrddave [David Evans, BBC R&D]
* @bbert [Bertrand Berthelot, Orange]
* @vigneshvg [Vignesh Venkatasubramanian, Google]
* @nicosang [Nicolas Angot, Orange]
* @PriyadarshiniV
* @senthil-codr [Senthil]
* @dweremeichik [Dylan Weremeichik]
* @aleal-envivio
* @mconlin
* @umavinoth
* @lbonn
* @mdale [Michael Dale, Kaltura]
* @sgrebnov [Sergey Grebnov, Microsoft Open Technologies]
* @wesleytodd [Wes Todd, Vubeology]
* @colde [Loke Dupont, Xstream]
* @rgardler [Ross Gardler, Microsoft Open Technologies]
* @squapp
* @xiaomings
* @rcollins112 [Rich Collins, Wowza]
* @timothy003 [Timothy Liang]
* @JaapHaitsma
* @72lions [Thodoris Tsiridis, 72lions]
* @TobbeMobiTV [Torbjörn Einarsson, MobiTV]
* @TobbeEdgeware [Torbjörn Einarsson, Edgeware]
* @mstorsjo [Martin Storsjö]
* @Hyddan [Daniel Hedenius]
* @qjia7
* @waqarz
* @WMSPanel [WMSPanel Team]
* @matt-hammond-bbc [Matt Hammond, BBC R&D]
* @siropeich [Siro Blanco, Epic Labs]
* @epiclabsDASH [Jesus Oliva, Epic Labs]
* @adripanico [Adrian Caballero, Epic Labs]

View File

@ -1,14 +0,0 @@
# dash.js BSD License Agreement
The copyright in this software is being made available under the BSD License, included below. This software may be subject to other third party and contributor rights, including patent rights, and no such rights are granted under this license.
**Copyright (c) 2015, Dash Industry Forum.
**All rights reserved.**
* Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
* Neither the name of the Dash Industry Forum nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
**THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.**

File diff suppressed because one or more lines are too long

24
site/index.html Normal file
View File

@ -0,0 +1,24 @@
<!DOCTYPE html>
<head>
<link rel="stylesheet" type="text/css" href="/styles.css">
<link rel="stylesheet" type="text/css" href="/local.css">
<link rel="icon" type="image/svg" href="/logo.svg">
<script src="/nunjucks-slim.js"></script>
<script src="/templates.js"></script>
<script src="/shaka-player.compiled.js"></script>
<script>
nunjucks.configure({ autoescape: true });
//should check for and refresh login tokens on pageload..
if(document.cookie.match(/^(.*;)?\s*X-Auth-As\s*=\s*[^;]+(.*)?$/) !== null) {
var xhr = new XMLHttpRequest();
xhr.open("POST", "/api/login", true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send("");
}
</script>
</head>
<body onload="render(window.location.pathname)">
<script src="/index.js"></script>
</body>

234
site/index.js Normal file
View File

@ -0,0 +1,234 @@
async function render(path, s){
var context = await getContext();
if(!s)
history.pushState({}, context.sitename, location.protocol+'//'+location.host+path);
switch(path){
//nothing but context
case (path.match(/^\/about\/?$/) || {}).input:
document.body.innerHTML = nunjucks.render('about.njk', context);
modifyLinks();
break;
case (path.match(/^\/login\/?$/) || {}).input:
document.body.innerHTML = nunjucks.render('login.njk', context);
modifyLinks();
break;
case (path.match(/^\/register\/?$/) || {}).input:
if(!context.registration) window.location = '/';
document.body.innerHTML = nunjucks.render('registration.njk', context);
modifyLinks();
break;
case (path.match(/^\/changepwd\/?$/) || {}).input:
document.body.innerHTML = nunjucks.render('changepwd.njk', context);
modifyLinks();
break;
case (path.match(/^\/chat\/?$/) || {}).input:
document.body.innerHTML = nunjucks.render('chat.html', context);
modifyLinks();
break;
case (path.match(/^\/help\/?$/) || {}).input:
document.body.innerHTML = nunjucks.render('help.njk', context);
modifyLinks();
break;
//need to hit the API
case (path.match(/^\/users\/live\/?$/) || {}).input:
var list = JSON.parse(await makeRequest("POST", "/api/users/live", JSON.stringify({num: 50})));
document.body.innerHTML = nunjucks.render('live.njk', Object.assign({list: list.users}, context));
modifyLinks();
break;
case (path.match(/^\/users\/?$/) || {}).input:
var list = JSON.parse(await makeRequest("POST", "/api/users/all", JSON.stringify({num: 50})));
document.body.innerHTML = nunjucks.render('list.njk', Object.assign({list: list.users}, context));
modifyLinks();
break;
case (path.match(/^\/profile\/chat\/?$/) || {}).input:
if(!context.auth.name) window.location = '/login';
var config = JSON.parse(await makeRequest("GET", '/api/'+context.auth.name+'/config'));
config = {
integ: {
twitch: config.twitch,
xmpp: config.xmpp,
irc: config.irc,
discord: config.discord
}
};
document.body.innerHTML = nunjucks.render('chat_integ.njk', Object.assign(config, context));
modifyLinks();
break;
case (path.match(/^\/profile\/?$/) || {}).input:
if(!context.auth.name) window.location = '/login';
var config = JSON.parse(await makeRequest("GET", '/api/'+context.auth.name+'/config'));
config = {
meta: {
title: config.title,
about: config.about
},
rflag: {record_flag: config.record_flag},
twitch: config.twitch_mirror
};
document.body.innerHTML = nunjucks.render('profile.njk', Object.assign(config, context));
modifyLinks();
break;
//parsing slugs
case (path.match(/^\/invite\//) || {}).input: // /invite/:code
document.body.innerHTML = nunjucks.render('invite.njk', Object.assign({icode: path.substring(8)}, context));
modifyLinks();
break;
//slugs and API
case (path.match(/^\/users\/.+\/?$/) || {}).input: // /users/:user
if(path.substring(path.length - 1).indexOf('/') !== -1)
var usr = path.substring(7, path.length - 1);
else var usr = path.substring(7);
var config = JSON.parse(await makeRequest("GET", '/api/'+usr+'/config'));
if(!config.title){document.body.innerHTML = nunjucks.render('404.njk', context); break;}
document.body.innerHTML = nunjucks.render('user.njk', Object.assign({about: config.about, title: config.title, username: config.username}, context));
modifyLinks();
initPlayer(usr);
break;
case (path.match(/^\/vods\/.+\/manage\/?$/) || {}).input: // /vods/:user/manage
var usr = path.substring(6, (path.length - 7));
if(context.auth.name !== usr) window.location = '/vods/'+usr;
var vods = JSON.parse(await makeRequest("GET", '/api/'+usr+'/vods'));
document.body.innerHTML = nunjucks.render('managevods.njk', Object.assign({user: usr, list: vods.vods.filter(fn => fn.name.endsWith('.mp4'))}, context));
modifyLinks();
break;
case (path.match(/^\/vods\/.+\/?$/) || {}).input: // /vods/:user
if(path.substring(path.length - 1).indexOf('/') !== -1)
var usr = path.substring(6, path.length - 1);
else var usr = path.substring(6);
var vods = JSON.parse(await makeRequest("GET", '/api/'+usr+'/vods'));
document.body.innerHTML = nunjucks.render('vods.njk', Object.assign({user: usr, list: vods.vods.filter(fn => fn.name.endsWith('.mp4'))}, context));
modifyLinks();
break;
//root
case "/":
render('/users/live');
modifyLinks();
break;
case "":
render('/users/live');
modifyLinks();
break;
case "/index.html":
render('/users/live');
modifyLinks();
break;
//404
default:
document.body.innerHTML = nunjucks.render('404.njk', context);
modifyLinks();
}
}
window.addEventListener('popstate', (event) => {
render(document.location.pathname, true);
});
async function getContext(){
var info = JSON.parse(await makeRequest('GET', '/api/instance/info'));
info.sitename = info.name;
info.name = null;
info.auth = {
is: document.cookie.match(/^(.*;)?\s*X-Auth-As\s*=\s*[^;]+(.*)?$/) !== null,
name: parseCookie(document.cookie)['X-Auth-As']
}
return info;
}
function makeRequest(method, url, payload) {
return new Promise(function (resolve, reject) {
let xhr = new XMLHttpRequest();
xhr.open(method, url);
xhr.onload = function () {
if (this.status >= 200 && this.status < 300) {
resolve(xhr.response);
} else {
reject({
status: this.status,
statusText: xhr.statusText
});
}
};
xhr.onerror = function () {
reject({
status: this.status,
statusText: xhr.statusText
});
};
!payload ? xhr.send() : xhr.send(payload);
});
}
function parseCookie(c){
if(typeof(c) !== 'string' || !c.includes('=')) return {};
return Object.assign({[c.split('=')[0].trim()]:c.split('=')[1].split(';')[0].trim()}, parseCookie(c.split(/;(.+)/)[1]));
}
function handleLoad() {
var r = JSON.parse(document.getElementById('responseFrame').contentDocument.documentElement.textContent).success
if (typeof(r) !== 'undefined') window.location.href = '/profile'
}
function modifyLinks() {
for (var ls = document.links, numLinks = ls.length, i=0; i<numLinks; i++){
if(ls[i].href.indexOf(location.protocol+'//'+location.host) !== -1 && ls[i].href.match(new RegExp(/\/\w+\.\w+$/)) === null) {
//should be a regular link
ls[i].setAttribute('onclick', 'return internalLink(\"'+ls[i].href.substring((location.protocol+'//'+location.host).length)+'\")');
}
}
}
function internalLink(path){
this.render(path);
return false;
}
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
var shakaPolyFilled = false;
async function initPlayer(usr) {
var manifestUri = document.location.protocol+'//'+document.location.host+'/live/'+usr+'/index.mpd';
if(!shakaPolyFilled){
shaka.polyfill.installAll();
shakaPolyFilled = true;
}
var live = JSON.parse(await makeRequest("GET", "/api/"+usr+"/config")).live;
if(live){
// Create a Player instance.
const video = document.getElementById('video');
const player = new shaka.Player(video);
// Listen for error events.
player.addEventListener('error', onErrorEvent);
video.addEventListener('play', () => {
document.getElementById('playbtn').style.visibility = 'hidden';
});
video.addEventListener('pause', () => {
document.getElementById('playbtn').style.visibility = 'visible';
});
// Try to load a manifest.
// This is an asynchronous process.
try {
await player.load(manifestUri);
// This runs if the asynchronous load is successful.
console.log('The video has now been loaded!');
} catch (e) {
// onError is executed if the asynchronous load fails.
onError(e);
}
} else {
if(document.getElementById('video') !== null)
setTimeout(initPlayer, 5000, usr);
}
}
function onErrorEvent(event) {
// Extract the shaka.util.Error object from the event.
onError(event.detail);
}
function onError(error) {
// Log the error.
console.error('Error code', error.code, 'object', error);
}

2
site/local.css Normal file
View File

@ -0,0 +1,2 @@
/* This file is for themeing Satyr's frontend without worrying about changes
being overwritten. Feel free to make whatever local changes you want here. */

385
site/play.svg Normal file
View File

@ -0,0 +1,385 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:ns1="http://sozi.baierouge.fr"
id="svg1307"
sodipodi:docname="media-playback-start.svg"
inkscape:export-filename="/home/lapo/Desktop/Grafica/Icone/media-actions-outlines.png"
viewBox="0 0 48 48"
sodipodi:version="0.32"
inkscape:export-xdpi="90"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-ydpi="90"
inkscape:version="0.46"
sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/actions"
>
<defs
id="defs1309"
>
<linearGradient
id="linearGradient2306"
y2="95"
gradientUnits="userSpaceOnUse"
x2="70.827"
gradientTransform="translate(-45 -71.094)"
y1="124.12"
x1="71.289"
inkscape:collect="always"
>
<stop
id="stop5077"
style="stop-color:#adb0a8"
offset="0"
/>
<stop
id="stop5079"
style="stop-color:#464744"
offset="1"
/>
</linearGradient
>
<radialGradient
id="radialGradient2314"
gradientUnits="userSpaceOnUse"
cy="83.991"
cx="107.59"
gradientTransform="matrix(.053243 -.83624 2.0195 .12857 -151.92 108.08)"
r="12.552"
inkscape:collect="always"
>
<stop
id="stop2693"
style="stop-color:#ffffff"
offset="0"
/>
<stop
id="stop2695"
style="stop-color:#d3d7cf"
offset="1"
/>
</radialGradient
>
<linearGradient
id="linearGradient2690"
y2="88.924"
gradientUnits="userSpaceOnUse"
x2="70.952"
gradientTransform="matrix(1.1282 0 0 1.1282 -53.993 -83.36)"
y1="101.74"
x1="70.914"
inkscape:collect="always"
>
<stop
id="stop2686"
style="stop-color:#ffffff"
offset="0"
/>
<stop
id="stop2688"
style="stop-color:#000000"
offset="1"
/>
</linearGradient
>
</defs
>
<sodipodi:namedview
id="base"
inkscape:showpageshadow="false"
inkscape:zoom="1"
borderopacity="0.19607843"
inkscape:current-layer="layer1"
stroke="#555753"
guidetolerance="1px"
fill="#555753"
inkscape:grid-points="true"
inkscape:grid-bbox="true"
showgrid="false"
showguides="false"
bordercolor="#666666"
inkscape:window-x="326"
inkscape:guide-bbox="true"
inkscape:window-y="160"
inkscape:window-width="872"
inkscape:pageopacity="0.0000000"
inkscape:pageshadow="2"
pagecolor="#ffffff"
inkscape:cx="-117.42449"
inkscape:cy="12.980288"
inkscape:document-units="px"
inkscape:window-height="688"
showborder="true"
>
<sodipodi:guide
id="guide2194"
position="38.996647"
orientation="horizontal"
/>
<sodipodi:guide
id="guide2196"
position="9.0140845"
orientation="horizontal"
/>
<sodipodi:guide
id="guide2198"
position="9.0140845"
orientation="vertical"
/>
<sodipodi:guide
id="guide2200"
position="38.975184"
orientation="vertical"
/>
<sodipodi:guide
id="guide2202"
position="22.988281"
orientation="horizontal"
/>
<sodipodi:guide
id="guide2204"
position="23.908786"
orientation="vertical"
/>
<sodipodi:guide
id="guide4332"
position="157.99417"
orientation="vertical"
/>
<sodipodi:guide
id="guide4334"
position="-36.062446"
orientation="horizontal"
/>
<sodipodi:guide
id="guide4336"
position="-58.02695"
orientation="horizontal"
/>
<sodipodi:guide
id="guide4338"
position="180.00287"
orientation="vertical"
/>
<sodipodi:guide
id="guide4417"
position="107.92217"
orientation="vertical"
/>
<sodipodi:guide
id="guide4419"
position="129.93087"
orientation="vertical"
/>
<sodipodi:guide
id="guide5106"
position="19.996875"
orientation="horizontal"
/>
<sodipodi:guide
id="guide5119"
position="63.039674"
orientation="horizontal"
/>
<sodipodi:guide
id="guide5121"
position="49.066305"
orientation="horizontal"
/>
<sodipodi:guide
id="guide5307"
position="-86.007168"
orientation="horizontal"
/>
<sodipodi:guide
id="guide5309"
position="-108.09009"
orientation="horizontal"
/>
<sodipodi:guide
id="guide3111"
position="-100.15429"
orientation="horizontal"
/>
<inkscape:grid
id="GridFromPre046Settings"
opacity=".2"
color="#0000ff"
originy="0px"
originx="0px"
empspacing="2"
spacingy="0.5px"
spacingx="0.5px"
empopacity="0.4"
type="xygrid"
empcolor="#0000ff"
/>
</sodipodi:namedview
>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer"
>
<path
id="path2682"
style="stroke-linejoin:round;opacity:.15;color:#000000;stroke:url(#linearGradient2690);stroke-linecap:square;stroke-width:2;fill:none"
inkscape:r_cy="true"
inkscape:r_cx="true"
sodipodi:nodetypes="cccc"
d="m12 39.5v-30.5l26.07 14.817-26.07 15.683z"
/>
<path
id="path3375"
style="fill-rule:evenodd;color:#000000;fill:url(#radialGradient2314)"
inkscape:r_cy="true"
inkscape:r_cx="true"
sodipodi:nodetypes="cccc"
d="m12.499 37.811v-27.811l24.104 13.906-24.104 13.905z"
/>
<path
id="path2479"
style="stroke-linejoin:round;color:#000000;stroke:url(#linearGradient2306);stroke-linecap:square;fill:none"
inkscape:r_cy="true"
inkscape:r_cx="true"
sodipodi:nodetypes="cccc"
d="m12.499 37.811v-27.811l24.104 13.906-24.104 13.905z"
/>
<path
id="path2481"
style="fill-rule:evenodd;color:#000000;fill:#ffffff"
inkscape:r_cy="true"
inkscape:r_cx="true"
sodipodi:nodetypes="cccccccc"
d="m12.999 10.874v26.063l22.594-13.031-22.594-13.032zm1 1.75l19.563 11.282-19.563 11.281v-22.563z"
/>
<path
id="path2339"
style="opacity:.5;color:#000000;display:block;fill:#ffffff"
inkscape:r_cy="true"
inkscape:r_cx="true"
sodipodi:nodetypes="cccc"
d="m13.938 12.562v11.688c4.269-0.045 9.164-0.346 17.062-1.875l-17.062-9.813z"
/>
</g
>
<metadata
>
<rdf:RDF
>
<cc:Work
>
<dc:format
>image/svg+xml</dc:format
>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage"
/>
<cc:license
rdf:resource="http://creativecommons.org/licenses/publicdomain/"
/>
<dc:publisher
>
<cc:Agent
rdf:about="http://openclipart.org/"
>
<dc:title
>Openclipart</dc:title
>
</cc:Agent
>
</dc:publisher
>
<dc:title
>tango media start</dc:title
>
<dc:date
>2010-03-11T09:12:20</dc:date
>
<dc:description
>"Play" or "start" icon from &lt;A href="http://tango.freedesktop.org/Tango_Desktop_Project"&gt; Tango Project &lt;/A&gt; &#13;\n&lt;BR&gt;&lt;BR&gt;&#13;\nSince version 0.8.90 Tango Project icons are Public Domain: &lt;A href="http://tango.freedesktop.org/Frequently_Asked_Questions#Terms_of_Use.3F"&gt; Tango Project FAQ &lt;/A&gt;</dc:description
>
<dc:source
>https://openclipart.org/detail/31003/tango-media-start-by-warszawianka</dc:source
>
<dc:creator
>
<cc:Agent
>
<dc:title
>warszawianka</dc:title
>
</cc:Agent
>
</dc:creator
>
<dc:subject
>
<rdf:Bag
>
<rdf:li
>audio</rdf:li
>
<rdf:li
>button</rdf:li
>
<rdf:li
>externalsource</rdf:li
>
<rdf:li
>icon</rdf:li
>
<rdf:li
>play</rdf:li
>
<rdf:li
>playback</rdf:li
>
<rdf:li
>sign</rdf:li
>
<rdf:li
>start</rdf:li
>
<rdf:li
>symbol</rdf:li
>
<rdf:li
>tango</rdf:li
>
<rdf:li
>triangle</rdf:li
>
</rdf:Bag
>
</dc:subject
>
</cc:Work
>
<cc:License
rdf:about="http://creativecommons.org/licenses/publicdomain/"
>
<cc:permits
rdf:resource="http://creativecommons.org/ns#Reproduction"
/>
<cc:permits
rdf:resource="http://creativecommons.org/ns#Distribution"
/>
<cc:permits
rdf:resource="http://creativecommons.org/ns#DerivativeWorks"
/>
</cc:License
>
</rdf:RDF
>
</metadata
>
</svg
>

After

Width:  |  Height:  |  Size: 9.8 KiB

BIN
site/thumbnail.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -1,330 +0,0 @@
WEBVTT
1
00:00:15.042 --> 00:00:18.625
...إلى... إلى الشمال يمكن أن نرى
...يمكن أن نرى الـ
2
00:00:18.750 --> 00:00:20.958
...إلى اليمين يمكن أن نرى الـ
3
00:00:21.000 --> 00:00:23.125
طاحنات الرؤوس...
4
00:00:23.208 --> 00:00:25.208
كل شيئ آمن
آمن كلية
5
00:00:26.333 --> 00:00:28.333
إيمو ؟
6
00:00:28.875 --> 00:00:30.958
! حذاري
7
00:00:47.125 --> 00:00:49.167
هل أصبت ؟
8
00:00:52.125 --> 00:00:54.833
...لا أظن ذلك
وأنت ؟
9
00:00:55.625 --> 00:00:57.625
أنا بخير
10
00:00:57.667 --> 00:01:01.667
،قم يا إيمو
المكان هنا غير آمن
11
00:01:02.208 --> 00:01:04.083
لنذهب
12
00:01:04.167 --> 00:01:06.167
وماذا بعد ؟
13
00:01:06.167 --> 00:01:08.583
...سترى... سترى
14
00:01:16.167 --> 00:01:18.375
إيمو، من هنا
15
00:01:34.958 --> 00:01:37.000
! إتبعني
16
00:02:11.125 --> 00:02:13.625
! أسرع يا إيمو
17
00:02:48.375 --> 00:02:50.375
! لست منتبها
18
00:02:50.750 --> 00:02:54.500
...أريد فقط أن أجيب الـ
الهاتف...
19
00:02:55.000 --> 00:02:58.500
،إيمو، أنظر
أقصد أنصت
20
00:02:59.750 --> 00:03:03.292
عليك أن تتعلم الإصغاء
21
00:03:03.625 --> 00:03:05.917
هذا ليس ضربا من اللهو
22
00:03:06.083 --> 00:03:09.958
...إنك
أقصد إننا قد نموت بسهولة في هذا المكان
23
00:03:10.208 --> 00:03:14.125
...أنصت
أنصت إلى أصوات الآلة
24
00:03:18.333 --> 00:03:20.417
أنصت إلى نَفَسِك
25
00:04:27.208 --> 00:04:29.250
ألا تمل أبدا من هذا ؟
26
00:04:29.583 --> 00:04:31.583
أمل ؟!؟
نعم -
27
00:04:31.750 --> 00:04:34.667
إيمو؛ الآلة في دقتها... مثل الساعة
28
00:04:35.500 --> 00:04:37.708
...حركة ناشزة واحدة قد
29
00:04:37.833 --> 00:04:39.875
تطرحك معجونا
30
00:04:41.042 --> 00:04:43.083
...أو ليست
31
00:04:43.125 --> 00:04:46.542
! عجينة يا إيمو
أ هذا ما تريد ؟ أن تصبح عجينة ؟
32
00:04:48.083 --> 00:04:50.083
أيمو، أ هذا هدفك في الحياة ؟
33
00:04:50.583 --> 00:04:52.667
أن تصير عجينة ؟
34
00:05:41.833 --> 00:05:43.875
إيمو، أغمض عينيك
35
00:05:44.917 --> 00:05:47.000
لماذا ؟
! الآن -
36
00:05:53.750 --> 00:05:56.042
حسن
37
00:05:59.542 --> 00:06:02.792
ماذا ترى إلى شمالك يا إيمو ؟
38
00:06:04.417 --> 00:06:06.500
لا شيئ
حقا ؟ -
39
00:06:06.542 --> 00:06:08.625
لا، لا شيئ البتة
40
00:06:08.625 --> 00:06:12.417
وماذا ترى إلى جهتك اليمنى يا إيمو ؟
41
00:06:13.667 --> 00:06:17.833
،نفس الشيئ يا بروغ
! نفس الشيئ بالضبط؛ لا شيئ
42
00:06:17.875 --> 00:06:19.917
عظيم
43
00:06:40.625 --> 00:06:42.958
أنصت يا بروغ ! هل تسمع ذلك ؟
44
00:06:43.625 --> 00:06:45.625
هل نستطيع الذهاب إلى هناك ؟
45
00:06:45.708 --> 00:06:47.792
هناك ؟
نعم -
46
00:06:47.833 --> 00:06:49.833
إنه غير آمن يا إيمو
47
00:06:49.917 --> 00:06:52.500
صدقني، إنه غير آمن
48
00:06:53.292 --> 00:06:55.375
...لكن لعلي أستطيع
49
00:06:55.417 --> 00:06:57.417
...لكن
! لا -
50
00:06:57.667 --> 00:06:59.667
! لا
51
00:07:00.875 --> 00:07:03.750
هل من أسئلة أخرى يا إيمو ؟
52
00:07:04.250 --> 00:07:06.333
لا
53
00:07:09.458 --> 00:07:11.542
...إيمو
نعم -
54
00:07:11.875 --> 00:07:13.958
...لماذا يا إيمو... لماذا
55
00:07:15.292 --> 00:07:18.792
لماذا لا تستطيع أن ترى حُسْن هذا المكان
56
00:07:18.833 --> 00:07:20.833
...والطريقة التي يعمل بها
57
00:07:20.875 --> 00:07:24.000
وكيف... وكيف أنه غاية في الكمال
58
00:07:24.083 --> 00:07:27.417
! لا يا بروغ، لا أرى ذلك
59
00:07:27.542 --> 00:07:30.333
لا أرى ذلك لأنه لا يوجد شيئ هناك
60
00:07:31.500 --> 00:07:35.333
ثم لماذا يجب علي أن أسلم حياتي
لشيئ لا وجود له ؟
61
00:07:35.583 --> 00:07:37.625
هل يمكنك أن تخبرني ؟
62
00:07:37.708 --> 00:07:39.750
! أجبني
63
00:07:43.208 --> 00:07:47.333
...بروغ
! أنت معتوه يا هذا
64
00:07:47.375 --> 00:07:49.417
! إبعد عني
65
00:07:52.583 --> 00:07:55.083
! لا يا إيمو ! إنه فخ
66
00:07:55.833 --> 00:07:57.875
...إنه فخ
67
00:07:57.917 --> 00:08:01.750
إلى جنبك الأيسر يمكنك أن ترى
حدائق بابل المعلقة
68
00:08:02.250 --> 00:08:04.292
هل تعجبك كفخ ؟
69
00:08:05.458 --> 00:08:07.542
لا يا أيمو
70
00:08:09.417 --> 00:08:12.792
...إلى جنبك الأيمن يمكنك رؤية
حزر ماذا ؟
71
00:08:13.000 --> 00:08:15.042
! عملاق رودس
72
00:08:15.125 --> 00:08:16.417
! لا
73
00:08:16.458 --> 00:08:20.500
،عملاق رودس
وهو هنا خصيصا من أجلك يا بروغ
74
00:08:20.583 --> 00:08:22.583
فقط من أجلك
75
00:08:51.333 --> 00:08:53.375
إنه هناك
76
00:08:53.417 --> 00:08:55.500
أنا أؤكد لك... إيمو
77
00:08:57.333 --> 00:09:00.000
...إنه

View File

@ -1,334 +0,0 @@
WEBVTT
1
00:00:15.000 --> 00:00:17.951
At the left we can see...
2
00:00:18.166 --> 00:00:20.083
At the right we can see the...
3
00:00:20.119 --> 00:00:21.962
...the head-snarlers
4
00:00:21.999 --> 00:00:24.368
Everything is safe.
Perfectly safe.
5
00:00:24.582 --> 00:00:27.035
Emo?
6
00:00:28.206 --> 00:00:29.996
Watch out!
7
00:00:47.037 --> 00:00:48.494
Are you hurt?
8
00:00:51.994 --> 00:00:53.949
I don't think so.
You?
9
00:00:55.160 --> 00:00:56.985
I'm Ok.
10
00:00:57.118 --> 00:01:01.111
Get up.
Emo. it's not safe here.
11
00:01:02.034 --> 00:01:03.573
Let's go.
12
00:01:03.610 --> 00:01:05.114
What's next?
13
00:01:05.200 --> 00:01:09.146
You'll see!
14
00:01:16.032 --> 00:01:18.022
Emo.
This way.
15
00:01:34.237 --> 00:01:35.481
Follow me!
16
00:02:11.106 --> 00:02:12.480
Hurry Emo!
17
00:02:48.059 --> 00:02:49.930
You're not paying attention!
18
00:02:50.142 --> 00:02:54.052
I just want to answer the...
...phone.
19
00:02:54.974 --> 00:02:57.972
Emo. look.
I mean listen.
20
00:02:59.140 --> 00:03:02.008
You have to learn to listen.
21
00:03:03.140 --> 00:03:04.965
This is not some game.
22
00:03:05.056 --> 00:03:09.345
You. I mean we.
we could easily die out here.
23
00:03:10.014 --> 00:03:13.959
Listen.
listen to the sounds of the machine.
24
00:03:18.054 --> 00:03:20.009
Listen to your breathing.
25
00:04:27.001 --> 00:04:28.956
Well. don't you ever get tired of this?
26
00:04:29.084 --> 00:04:30.909
Tired?!?
27
00:04:31.126 --> 00:04:34.491
Emo. the machine is like clockwork.
28
00:04:35.083 --> 00:04:37.074
One move out of place...
29
00:04:37.166 --> 00:04:39.121
...and you're ground to a pulp.
30
00:04:40.958 --> 00:04:42.004
But isn't it -
31
00:04:42.041 --> 00:04:46.034
Pulp. Emo!
Is that what you want. pulp?
32
00:04:47.040 --> 00:04:48.995
Emo. your goal in life...
33
00:04:50.081 --> 00:04:51.953
...pulp?
34
00:05:41.156 --> 00:05:43.028
Emo. close your eyes.
35
00:05:44.156 --> 00:05:46.027
Why?
- Now!
36
00:05:51.155 --> 00:05:52.102
Ok.
37
00:05:53.113 --> 00:05:54.688
Good.
38
00:05:59.070 --> 00:06:02.103
What do you see at your left side. Emo?
39
00:06:04.028 --> 00:06:05.899
Nothing.
- Really?
40
00:06:06.027 --> 00:06:07.105
No. nothing at all.
41
00:06:07.944 --> 00:06:11.984
And at your right.
what do you see at your right side. Emo?
42
00:06:13.151 --> 00:06:16.102
The same Proog. exactly the same...
43
00:06:16.942 --> 00:06:19.098
...nothing!
- Great.
44
00:06:40.105 --> 00:06:42.724
Listen Proog! Do you hear that!
45
00:06:43.105 --> 00:06:44.894
Can we go here?
46
00:06:44.979 --> 00:06:47.894
There?
It isn't safe. Emo.
47
00:06:49.145 --> 00:06:52.013
But...
- Trust me. it's not.
48
00:06:53.020 --> 00:06:54.145
Maybe I could...
49
00:06:54.181 --> 00:06:55.969
No.
50
00:06:57.102 --> 00:06:59.934
NO!
51
00:07:00.144 --> 00:07:03.058
Any further questions. Emo?
52
00:07:03.976 --> 00:07:05.090
No.
53
00:07:09.059 --> 00:07:10.089
Emo?
54
00:07:11.142 --> 00:07:13.058
Emo. why...
55
00:07:13.095 --> 00:07:14.022
Emo...
56
00:07:14.058 --> 00:07:18.003
...why can't you see
the beauty of this place?
57
00:07:18.141 --> 00:07:20.048
The way it works.
58
00:07:20.140 --> 00:07:23.895
How perfect it is.
59
00:07:23.932 --> 00:07:26.964
No. Proog. I don't see.
60
00:07:27.056 --> 00:07:29.970
I don't see because there's nothing there.
61
00:07:31.055 --> 00:07:34.965
And why should I trust my
life to something that isn't there?
62
00:07:35.055 --> 00:07:36.926
Well can you tell me that?
63
00:07:37.054 --> 00:07:38.926
Answer me!
64
00:07:42.970 --> 00:07:44.000
Proog...
65
00:07:45.053 --> 00:07:46.985
...you're a sick man!
66
00:07:47.022 --> 00:07:48.918
Stay away from me!
67
00:07:52.052 --> 00:07:54.884
No! Emo! It's a trap!
68
00:07:55.135 --> 00:07:56.931
Hah. it's a trap.
69
00:07:56.968 --> 00:08:01.043
At the left side you can see
the hanging gardens of Babylon!
70
00:08:01.967 --> 00:08:03.957
How's that for a trap?
71
00:08:05.050 --> 00:08:06.922
No. Emo.
72
00:08:09.008 --> 00:08:12.088
At the right side you can see...
...well guess what...
73
00:08:12.924 --> 00:08:14.665
...the colossus of Rhodes!
74
00:08:15.132 --> 00:08:16.053
No!
75
00:08:16.090 --> 00:08:21.919
The colossus of Rhodes
and it is here just for you Proog.
76
00:08:51.001 --> 00:08:52.923
It is there...
77
00:08:52.959 --> 00:08:56.040
I'm telling you.
Emo...
78
00:08:57.000 --> 00:08:59.867
...it is.

View File

@ -1,326 +0,0 @@
WEBVTT
1
00:00:15.042 --> 00:00:18.042
2
00:00:18.750 --> 00:00:20.333
3
00:00:20.417 --> 00:00:21.917
4
00:00:22.000 --> 00:00:24.625
5
00:00:26.333 --> 00:00:27.333
6
00:00:28.875 --> 00:00:30.250
7
00:00:47.125 --> 00:00:48.250
8
00:00:51.917 --> 00:00:53.917
9
00:00:55.625 --> 00:00:57.125
10
00:00:57.583 --> 00:01:01.667
11
00:01:02.208 --> 00:01:03.667
12
00:01:03.750 --> 00:01:04.917
13
00:01:05.875 --> 00:01:07.875
14
00:01:16.167 --> 00:01:18.375
15
00:01:34.958 --> 00:01:36.958
16
00:02:11.583 --> 00:02:12.792
17
00:02:48.375 --> 00:02:50.083
18
00:02:50.750 --> 00:02:54.500
19
00:02:55.000 --> 00:02:58.208
20
00:02:59.750 --> 00:03:02.292
21
00:03:03.625 --> 00:03:05.125
22
00:03:06.167 --> 00:03:10.417
23
00:03:11.208 --> 00:03:14.125
24
00:03:18.333 --> 00:03:22.417
25
00:04:27.208 --> 00:04:29.250
26
00:04:29.583 --> 00:04:31.083
?!
27
00:04:31.750 --> 00:04:34.667
28
00:04:35.500 --> 00:04:37.708
29
00:04:37.833 --> 00:04:40.792
30
00:04:41.042 --> 00:04:42.375
31
00:04:42.417 --> 00:04:46.542
32
00:04:48.083 --> 00:04:50.000
33
00:04:50.583 --> 00:04:52.250
34
00:05:41.833 --> 00:05:43.458
35
00:05:44.917 --> 00:05:46.583
36
00:05:53.750 --> 00:05:56.042
37
00:05:59.542 --> 00:06:03.792
38
00:06:04.417 --> 00:06:06.000
39
00:06:06.333 --> 00:06:07.917
40
00:06:08.042 --> 00:06:12.833
41
00:06:13.875 --> 00:06:16.917
42
00:06:17.083 --> 00:06:18.583
43
00:06:40.625 --> 00:06:43.208
44
00:06:43.625 --> 00:06:45.042
45
00:06:45.208 --> 00:06:48.042
46
00:06:49.917 --> 00:06:52.500
47
00:06:53.292 --> 00:06:54.792
48
00:06:54.833 --> 00:06:56.333
49
00:06:57.667 --> 00:07:00.167
50
00:07:00.875 --> 00:07:03.750
51
00:07:04.250 --> 00:07:05.917
52
00:07:09.458 --> 00:07:10.833
53
00:07:11.875 --> 00:07:13.542
54
00:07:13.583 --> 00:07:14.458
55
00:07:14.500 --> 00:07:18.500
56
00:07:18.833 --> 00:07:20.750
57
00:07:20.875 --> 00:07:24.000
58
00:07:24.083 --> 00:07:27.417
59
00:07:27.542 --> 00:07:30.333
60
00:07:31.500 --> 00:07:35.333
61
00:07:35.583 --> 00:07:37.125
62
00:07:37.500 --> 00:07:39.167
63
00:07:43.208 --> 00:07:44.583
64
00:07:45.500 --> 00:07:47.333
65
00:07:47.375 --> 00:07:49.208
66
00:07:52.583 --> 00:07:55.083
67
00:07:55.833 --> 00:07:57.167
68
00:07:57.208 --> 00:08:01.750
69
00:08:02.250 --> 00:08:04.292
70
00:08:05.458 --> 00:08:07.125
71
00:08:09.417 --> 00:08:12.792
72
00:08:13.000 --> 00:08:14.750
73
00:08:15.833 --> 00:08:16.708
74
00:08:16.750 --> 00:08:22.167
75
00:08:51.333 --> 00:08:53.167
76
00:08:53.208 --> 00:08:55.500
77
00:08:57.333 --> 00:09:00.000

View File

@ -1,356 +0,0 @@
WEBVTT
1
00:00:14.958 --> 00:00:17.833
Слева мы видим...
2
00:00:18.458 --> 00:00:20.208
справа мы видим...
3
00:00:20.333 --> 00:00:21.875
...голово-клацов.
4
00:00:22.000 --> 00:00:24.583
всё в порядке.
в полном порядке.
5
00:00:26.333 --> 00:00:27.333
Имо?
6
00:00:28.833 --> 00:00:30.250
Осторожно!
7
00:00:47.125 --> 00:00:48.250
Ты не ранен?
8
00:00:51.875 --> 00:00:53.875
Вроде нет...
а ты?
9
00:00:55.583 --> 00:00:57.125
Я в порядке.
10
00:00:57.542 --> 00:01:01.625
Вставай.
Имо. здесь не безопасно.
11
00:01:02.208 --> 00:01:03.625
Пойдём.
12
00:01:03.708 --> 00:01:05.708
Что дальше?
13
00:01:05.833 --> 00:01:07.833
Ты увидишь!
14
00:01:08.000 --> 00:01:08.833
Ты увидишь...
15
00:01:16.167 --> 00:01:18.375
Имо. сюда.
16
00:01:34.917 --> 00:01:35.750
За мной!
17
00:02:11.542 --> 00:02:12.750
Имо. быстрее!
18
00:02:48.375 --> 00:02:50.083
Ты не обращаешь внимания!
19
00:02:50.708 --> 00:02:54.500
Я только хотел ответить на ...
...звонок.
20
00:02:55.000 --> 00:02:58.208
Имо. смотри.
то есть слушай...
21
00:02:59.708 --> 00:03:02.292
Ты должен учиться слушать.
22
00:03:03.250 --> 00:03:05.333
Это не какая-нибудь игра.
23
00:03:06.000 --> 00:03:08.833
Ты. вернее мы. легко можем погибнуть здесь.
24
00:03:10.000 --> 00:03:11.167
Слушай...
25
00:03:11.667 --> 00:03:14.125
слушай звуки машины.
26
00:03:18.333 --> 00:03:20.417
Слушай своё дыхание.
27
00:04:27.208 --> 00:04:29.250
И не надоест тебе это?
28
00:04:29.542 --> 00:04:31.083
Надоест?!?
29
00:04:31.708 --> 00:04:34.625
Имо! Машина -
она как часовой механизм.
30
00:04:35.500 --> 00:04:37.667
Одно движение не туда...
31
00:04:37.792 --> 00:04:39.750
...и тебя размелют в месиво!
32
00:04:41.042 --> 00:04:42.375
А разве это не -
33
00:04:42.417 --> 00:04:46.500
Месиво. Имо!
ты этого хочешь? месиво?
34
00:04:48.083 --> 00:04:50.000
Имо. твоя цель в жизни?
35
00:04:50.542 --> 00:04:52.250
Месиво!
36
00:05:41.792 --> 00:05:43.458
Имо. закрой глаза.
37
00:05:44.875 --> 00:05:46.542
Зачем?
- Ну же!
38
00:05:51.500 --> 00:05:52.333
Ладно.
39
00:05:53.708 --> 00:05:56.042
Хорошо.
40
00:05:59.500 --> 00:06:02.750
Что ты видишь слева от себя. Имо?
41
00:06:04.417 --> 00:06:06.000
Ничего.
- Точно?
42
00:06:06.333 --> 00:06:07.875
да. совсем ничего.
43
00:06:08.042 --> 00:06:12.708
А справа от себя.
что ты видишь справа от себя. Имо?
44
00:06:13.833 --> 00:06:16.875
Да то же Пруг. в точности то же...
45
00:06:17.042 --> 00:06:18.500
Ничего!
46
00:06:18.667 --> 00:06:19.500
Прекрасно...
47
00:06:40.583 --> 00:06:42.917
Прислушайся. Пруг! Ты слышишь это?
48
00:06:43.583 --> 00:06:45.042
Может. мы пойдём туда?
49
00:06:45.208 --> 00:06:48.042
Туда?
Это не безопасно. Имо.
50
00:06:49.875 --> 00:06:52.500
Но...
- Поверь мне. это так.
51
00:06:53.292 --> 00:06:54.750
Может я бы ...
52
00:06:54.792 --> 00:06:56.333
Нет.
53
00:06:57.625 --> 00:06:59.583
- Но...
- НЕТ!
54
00:06:59.708 --> 00:07:00.833
Нет!
55
00:07:00.833 --> 00:07:03.708
Ещё вопросы. Имо?
56
00:07:04.250 --> 00:07:05.875
Нет.
57
00:07:09.458 --> 00:07:10.792
Имо?
58
00:07:11.833 --> 00:07:13.500
Имо. почему...
59
00:07:13.542 --> 00:07:14.458
Имо...
60
00:07:14.500 --> 00:07:18.500
...почему? почему ты не видишь
красоты этого места?
61
00:07:18.792 --> 00:07:20.708
То как оно работает.
62
00:07:20.833 --> 00:07:24.000
Как совершенно оно.
63
00:07:24.083 --> 00:07:27.417
Нет. Пруг. я не вижу.
64
00:07:27.500 --> 00:07:30.333
Я не вижу. потому что здесь ничего нет.
65
00:07:31.375 --> 00:07:35.333
И почему я должен доверять свою жизнь
чему-то. чего здесь нет?
66
00:07:35.542 --> 00:07:37.125
это ты мне можешь сказать?
67
00:07:37.500 --> 00:07:39.167
Ответь мне!
68
00:07:43.208 --> 00:07:44.542
Пруг...
69
00:07:45.500 --> 00:07:47.333
Ты просто больной!
70
00:07:47.375 --> 00:07:48.500
Отстань от меня.
71
00:07:48.625 --> 00:07:49.917
Имо...
72
00:07:52.542 --> 00:07:55.083
Нет! Имо! Это ловушка!
73
00:07:55.792 --> 00:07:57.167
Это ловушка!
74
00:07:57.208 --> 00:08:01.708
Слева от себя вы можете увидеть
Висящие сады Семирамиды!
75
00:08:02.250 --> 00:08:04.292
Сойдёт за ловушку?
76
00:08:05.458 --> 00:08:07.125
Нет. Имо.
77
00:08:09.417 --> 00:08:12.750
Справа от себя вы можете увидеть...
...угадай кого...
78
00:08:13.000 --> 00:08:14.708
...Колосса Родосского!
79
00:08:15.500 --> 00:08:16.625
Нет!
80
00:08:16.667 --> 00:08:21.125
Колосс Родосский!
И он здесь специально для тебя. Пруг.
81
00:08:21.167 --> 00:08:22.208
Специально для тебя...
82
00:08:51.333 --> 00:08:53.167
Она здесь есть!
83
00:08:53.208 --> 00:08:55.500
Говорю тебе.
Имо...
84
00:08:57.333 --> 00:09:00.000
...она есть... есть...

View File

@ -1,349 +0,0 @@
WEBVTT
1
00:00:15.042 --> 00:00:18.250
Till vänster kan vi se...
Ser vi...
2
00:00:18.708 --> 00:00:20.333
Till höger ser vi...
3
00:00:20.417 --> 00:00:21.958
...huvudkaparna.
4
00:00:22.000 --> 00:00:24.792
Allt är säkert.
alldeles ofarligt.
5
00:00:24.917 --> 00:00:26.833
Emo?
6
00:00:28.750 --> 00:00:30.167
Se upp!
7
00:00:46.708 --> 00:00:48.750
Är du skadad?
8
00:00:51.875 --> 00:00:54.458
Jag tror inte det...
Är du?
9
00:00:55.292 --> 00:00:57.333
Jag är ok.
10
00:00:57.542 --> 00:01:01.625
Res dig upp Emo.
Det är inte säkert här.
11
00:01:02.208 --> 00:01:03.625
Kom så går vi.
12
00:01:03.708 --> 00:01:05.708
Vad nu då?
13
00:01:05.833 --> 00:01:07.833
Du får se...
14
00:01:08.042 --> 00:01:10.417
Du får se.
15
00:01:15.958 --> 00:01:18.375
Emo. den här vägen.
16
00:01:34.417 --> 00:01:36.750
Följ efter mig!
17
00:02:11.250 --> 00:02:13.250
Skynda dig. Emo!
18
00:02:48.375 --> 00:02:50.583
Du är inte uppmärksam!
19
00:02:50.708 --> 00:02:54.500
Jag vill bara svara...
... i telefonen.
20
00:02:54.500 --> 00:02:58.208
Emo. se här...
Lyssna menar jag.
21
00:02:59.708 --> 00:03:02.292
Du måste lära dig att lyssna.
22
00:03:03.292 --> 00:03:05.208
Det här är ingen lek.
23
00:03:05.250 --> 00:03:08.917
Du... Jag menar vi.
vi skulle kunna dö här ute.
24
00:03:09.917 --> 00:03:11.417
Lyssna...
25
00:03:11.708 --> 00:03:14.833
Lyssna på ljuden från maskinen.
26
00:03:18.125 --> 00:03:21.417
Lyssna på dina andetag.
27
00:04:26.625 --> 00:04:29.250
Tröttnar du aldrig på det här?
28
00:04:29.542 --> 00:04:31.083
Tröttnar!?
29
00:04:31.208 --> 00:04:33.458
Emo. maskinen är som...
30
00:04:33.458 --> 00:04:35.333
Som ett urverk.
31
00:04:35.417 --> 00:04:37.167
Ett felsteg...
32
00:04:37.208 --> 00:04:39.750
...och du blir krossad.
33
00:04:41.042 --> 00:04:42.292
Men är det inte -
34
00:04:42.292 --> 00:04:47.000
Krossad. Emo!
Är det vad du vill bli? Krossad till mos?
35
00:04:47.500 --> 00:04:50.542
Emo. är det ditt mål i livet?
36
00:04:50.667 --> 00:04:53.250
Att bli mos!?
37
00:05:41.375 --> 00:05:43.458
Emo. blunda.
38
00:05:44.375 --> 00:05:46.542
Varför då?
- Blunda!
39
00:05:51.292 --> 00:05:55.042
Ok.
- Bra.
40
00:05:59.500 --> 00:06:02.750
Vad ser du till vänster om dig Emo?
41
00:06:04.125 --> 00:06:06.292
Ingenting.
- Säker?
42
00:06:06.333 --> 00:06:07.958
Ingenting alls.
43
00:06:08.042 --> 00:06:12.625
Jaså. och till höger om dig...
Vad ser du där. Emo?
44
00:06:13.750 --> 00:06:15.583
Samma där Proog...
45
00:06:15.583 --> 00:06:18.083
Exakt samma där. ingenting!
46
00:06:18.083 --> 00:06:19.667
Perfekt.
47
00:06:40.500 --> 00:06:42.917
Lyssna Proog! Hör du?
48
00:06:43.500 --> 00:06:45.125
Kan vi gå dit?
49
00:06:45.208 --> 00:06:48.125
Gå dit?
Det är inte tryggt.
50
00:06:49.583 --> 00:06:52.583
Men. men...
- Tro mig. det inte säkert.
51
00:06:53.000 --> 00:06:54.292
Men kanske om jag -
52
00:06:54.292 --> 00:06:56.333
Nej.
53
00:06:57.208 --> 00:07:00.167
Men -
- Nej. NEJ!
54
00:07:00.917 --> 00:07:03.792
Några fler frågor Emo?
55
00:07:04.250 --> 00:07:05.875
Nej.
56
00:07:09.542 --> 00:07:11.375
Emo?
- Ja?
57
00:07:11.542 --> 00:07:15.667
Emo. varför...
58
00:07:15.792 --> 00:07:18.583
Varför kan du inte se skönheten i det här?
59
00:07:18.792 --> 00:07:21.708
Hur det fungerar.
60
00:07:21.833 --> 00:07:24.000
Hur perfekt det är.
61
00:07:24.083 --> 00:07:27.333
Nej Proog. jag kan inte se det.
62
00:07:27.333 --> 00:07:30.333
Jag ser det inte. för det finns inget där.
63
00:07:31.292 --> 00:07:35.333
Och varför skulle jag lägga mitt liv
i händerna på något som inte finns?
64
00:07:35.333 --> 00:07:37.083
Kan du berätta det för mig?
- Emo...
65
00:07:37.083 --> 00:07:39.167
Svara mig!
66
00:07:43.500 --> 00:07:45.208
Proog...
67
00:07:45.208 --> 00:07:47.083
Du är inte frisk!
68
00:07:47.167 --> 00:07:49.292
Håll dig borta från mig!
69
00:07:52.292 --> 00:07:55.083
Nej! Emo!
Det är en fälla!
70
00:07:55.375 --> 00:07:57.208
Heh. det är en fälla.
71
00:07:57.208 --> 00:08:01.708
På vänster sida ser vi...
Babylons hängande trädgårdar!
72
00:08:01.958 --> 00:08:04.000
Vad sägs om den fällan?
73
00:08:05.458 --> 00:08:07.333
Nej. Emo.
74
00:08:08.917 --> 00:08:12.667
Till höger ser vi...
Gissa!
75
00:08:12.750 --> 00:08:15.125
Rhodos koloss!
76
00:08:15.375 --> 00:08:16.500
Nej!
77
00:08:16.500 --> 00:08:20.250
Kolossen på Rhodos!
Och den är här för din skull. Proog...
78
00:08:20.250 --> 00:08:23.250
Bara för din skull.
79
00:08:50.917 --> 00:08:53.250
Den är där...
80
00:08:53.625 --> 00:08:56.417
Tro mig.
Emo...
81
00:08:57.000 --> 00:09:00.000
Det är den.
Det är den...

View File

@ -1,44 +0,0 @@
WEBVTT
NOTE Created by Owen Edwards 2015. http://creativecommons.org/licenses/by/2.5/
NOTE Based on 'finalbreakdown.rtf', part of the prepoduction notes, which are:
NOTE (c) Copyright 2006, Blender Foundation /
NOTE Netherlands Media Art Institute /
NOTE www.elephantsdream.org
1
00:00:00.000 --> 00:00:27.500
Prologue
2
00:00:27.500 --> 00:01:10.000
Switchboard trap
3
00:01:10.000 --> 00:03:25.000
Telephone/Lecture
4
00:03:25.000 --> 00:04:52.000
Typewriter
5
00:04:52.000 --> 00:06:19.500
Proog shows Emo stuff
6
00:06:19.500 --> 00:07:09.000
Which way
7
00:07:09.000 --> 00:07:45.000
Emo flips out
8
00:07:45.000 --> 00:09:25.000
Emo creates
9
00:09:25.000 --> 00:10:53.000
Closing credits

View File

@ -1,280 +0,0 @@
WEBVTT
License: CC BY 4.0 http://creativecommons.org/licenses/by/4.0/
Author: Silvia Pfeiffer
1
00:00:00.000 --> 00:00:05.000
The orange open movie project presents
2
00:00:05.010 --> 00:00:12.000
Introductory titles are showing on the background of a water pool with fishes swimming and mechanical objects lying on a stone floor.
3
00:00:12.010 --> 00:00:14.800
elephants dream
4
00:00:26.100 --> 00:00:28.206
Two people stand on a small bridge.
5
00:00:30.010 --> 00:00:40.000
The old man, Proog, shoves the younger and less experienced Emo on the ground to save him from being mowed down by a barrage of jack plugs that whir back and forth between the two massive switch-board-like walls.
6
00:00:40.000 --> 00:00:47.000
The plugs are oblivious of the two, endlessly channeling streams of bizarre sounds and data.
7
00:00:48.494 --> 00:00:51.994
Emo sits on the bridge and checks his limbs.
8
00:01:09.150 --> 00:01:16.030
After the squealing plugs move on, Proog makes sure that Emo is unharmed and urges him onwards through a crack in one of the plug-walls.
9
00:01:18.050 --> 00:01:24.000
They walk through the narrow hall into a massive room that fades away into blackness on all sides.
10
00:01:24.050 --> 00:01:34.200
Only one path is visible, suspended in mid-air that runs between thousands of dangling electric cables on which sit crowds of robin-like robotic birds.
11
00:01:36.000 --> 00:01:40.000
As Proog and Emo enter the room, the birds begin to wake up and notice them.
12
00:01:42.000 --> 00:01:50.000
Realizing the danger, Proog grabs Emo by the arm.
13
00:01:50.050 --> 00:02:00.000
They run along the increasingly bizarre path as the birds begin to swarm.
14
00:02:00.050 --> 00:02:11.000
All sound is blocked out by the birds which are making the same noises as the jack-plugs, garbled screaming and obscure sentences and static.
15
00:02:12.600 --> 00:02:17.000
The path dead-ends, stopping in the middle of no-where above the infinite drop.
16
00:02:17.600 --> 00:02:22.000
Proog turns around as the birds reach them and begin to dive-bomb at them.
17
00:02:22.600 --> 00:02:28.000
At the last moment, Proog takes out an old candlestick phone and the birds dive into the speaker piece.
18
00:02:28.600 --> 00:02:31.000
The screen cuts to black.
19
00:02:31.600 --> 00:02:38.000
In the next scene, Proog stands at one end of a room, suspiciously watching what is probably the same candlestick phone, which is ringing.
20
00:02:38.500 --> 00:02:41.000
Emo watches from the other side of the room.
21
00:02:41.500 --> 00:02:43.000
The phone continues to ring.
22
00:02:43.500 --> 00:02:48.000
After a while Emo approaches it to answer it, but Proog slaps his hand away.
23
00:02:57.972 --> 00:02:59.100
Proog takes the ear-piece off the hook.
24
00:03:13.500 --> 00:03:18.054
The phone speaker revealed a mass of clawed, fleshy polyps which scream and gibber obscenely.
25
00:03:25.000 --> 00:03:33.000
There is a solemn silence as Emo looks around the room and the technical objects therein.
26
00:03:38.000 --> 00:03:44.000
Emo laughs disbelievingly and Proog walks away.
27
00:03:46.000 --> 00:03:54.000
In the next scene, the two enter another massive black room.
28
00:03:54.500 --> 00:04:04.000
There is no path, the entry platform is the only structure that seems to be there except for another exit, lit distantly at the far side.
29
00:04:04.500 --> 00:04:14.000
Proog takes a step forward into the void, and his feet are suddenly caught by giant typewriter arms that rocket up out of the blackness to catch his feet as he dances across mid-air.
30
00:04:14.500 --> 00:04:22.000
Emo follows Proog with somewhat less enthusiasm as the older man leads the way.
31
00:04:52.000 --> 00:04:58.000
They reach the end of the room and go through a hall into a small compartment.
32
00:05:02.000 --> 00:05:06.000
Proog presses a button, and the door shuts.
33
00:05:06.500 --> 00:05:09.000
It is an elevator.
34
00:05:09.500 --> 00:05:24.000
The elevator lurches suddenly as it is grabbed by a giant mechanical arm and thrown upwards, rushing up through an ever-widening tunnel.
35
00:05:26.500 --> 00:05:32.000
When it begins to slow down, another arm grabs the capsule and throws it even further up.
36
00:05:32.500 --> 00:05:40.000
As it moves up, the walls unlock and fall away, leaving only the floor with the two on it, rushing higher and higher.
37
00:05:54.500 --> 00:05:59.000
They exit the tunnel into a black sky and the platform reaches the peak of its arc.
38
00:06:19.500 --> 00:06:26.000
The elevator begins to drop down another shaft, coming to rest as it slams into the floor of another room and bringing the two to a level stop.
39
00:06:26.500 --> 00:06:28.000
A camera flashes.
40
00:06:28.010 --> 00:06:34.000
They are in a large, dingy room filled with strange, generator-like devices and dotted with boxy holographic projectors.
41
00:06:34.500 --> 00:06:38.000
One of them is projecting a portion of wall with a door in it right beside them.
42
00:06:38.500 --> 00:06:40.000
The door seems harmless enough.
43
00:06:42.800 --> 00:06:45.100
From behind the door comes light music.
44
00:06:56.000 --> 00:07:00.100
Proog presses a button on his cane, which changes the holograph to another wall.
45
00:07:05.100 --> 00:07:11.000
Proog finishes the wall, and boxes them into a Safe Room, out of the view of anything outside.
46
00:07:39.000 --> 00:07:42.500
Proog slaps him, trying to bring him to his senses.
47
00:07:45.000 --> 00:07:52.000
Emo storms away down the length of the room towards a wall he apparently cannot see and the wall begins to move, extending the length of the room.
48
00:08:00.000 --> 00:08:07.000
The walls begin to discolour and mechanical roots start tearing through the walls to his left.
49
00:08:07.010 --> 00:08:09.000
The roots move forwards toward Proog.
50
00:08:22.000 --> 00:08:31.000
The rest of the safety wall crumples away as a pair of massive hands heave out of the ground and begin to attack.
51
00:08:31.010 --> 00:08:37.000
Proog is knocked down by the shockwave, while Emo turns and begins to walk away, waving his finger around his temple in the 'crazy' sign.
52
00:08:37.010 --> 00:08:44.000
In a last effort, Proog extricates himself from the tentacle roots, and cracks Emo over the back of the head with his cane.
53
00:08:44.500 --> 00:08:51.000
As Emo collapses, everything falls away, and Proog and Emo are left in one tiny patch of light in the middle of blackness.
54
00:09:00.000 --> 00:09:20.000
The scene fades to black while panning over a pile of tentacle roots lying on the ground.
55
00:09:26.000 --> 00:09:28.000
Credits begin:
56
00:09:28.500 --> 00:09:35.000
Orange Open Movie Team
Director: Bassum Kurdali
Art Director: Andreas Goralczyk
57
00:09:35.500 --> 00:09:39.000
Music and Sound Design: Jan Morgenstern
58
00:09:39.500 --> 00:09:44.000
Emo: Cas Jansen
Proog: Tygo Gernandt
59
00:09:44.500 --> 00:09:50.000
Screenplay: Pepijn Zwanenberg
Original Concept & Scenario: Andreas Goralczyk, Bassam Kurdali, Ton Roosendaal
60
00:09:50.500 --> 00:10:24.000
More people for
Additional Artwork and Animation
Texture Photography
Software Development
3D Modelling, Animation, Rendering, Compiling Software
Special Thanks to Open Source Projects
Rendering Services Provided
Hardware Sponsored
Casting
Sound FX, Foley, Dialogue Editing, Audio Mix and Post
Voice Recording
HDCam conversion
Netherlands Media Art Institute Staff
Blender Foundation Staff
61
00:10:24.500 --> 00:10:30.000
Many Thanks to our Donation and DVD sponsors
62
00:10:30.500 --> 00:10:47.000
Elephants Dream has been realised with financial support from
The Netherlands Film Fund
Mondriaan Foundation
VSBfonds
Uni-Verse / EU Sixth Framework Programme
63
00:10:47.500 --> 00:10:53.000
Produced By
Ton Roosendaal
Copyright 2006
Netherlands Media Art Institute / Montevideo
Blender Foundation

View File

@ -1,41 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Video.js Text Descriptions, Chapters &amp; Captions Example</title>
<link href="http://vjs.zencdn.net/7.0/video-js.min.css" rel="stylesheet">
<script src="http://vjs.zencdn.net/7.0/video.min.js"></script>
</head>
<body>
<!-- NOTE: we have to disable native Text Track support for the HTML5 tech,
since even HTML5 video players with native Text Track support
don't currently support 'description' text tracks in any
useful way! Currently this means that iOS will not display
ANY text tracks -->
<video id="example_video_1" class="video-js" controls preload="none" width="640" height="360"
data-setup='{ "html5" : { "nativeTextTracks" : false } }'
poster="http://d2zihajmogu5jn.cloudfront.net/elephantsdream/poster.png">
<source src="//d2zihajmogu5jn.cloudfront.net/elephantsdream/ed_hd.mp4" type="video/mp4">
<source src="//d2zihajmogu5jn.cloudfront.net/elephantsdream/ed_hd.ogg" type="video/ogg">
<track kind="captions" src="captions.en.vtt" srclang="en" label="English" default>
<track kind="captions" src="captions.sv.vtt" srclang="sv" label="Swedish">
<track kind="captions" src="captions.ru.vtt" srclang="ru" label="Russian">
<track kind="captions" src="captions.ja.vtt" srclang="ja" label="Japanese">
<track kind="captions" src="captions.ar.vtt" srclang="ar" label="Arabic">
<track kind="descriptions" src="descriptions.en.vtt" srclang="en" label="English">
<track kind="chapters" src="chapters.en.vtt" srclang="en" label="English">
<p class="vjs-no-js">To view this video please enable JavaScript, and consider upgrading to a web browser that <a href="https://videojs.com/html5-video-support/" target="_blank">supports HTML5 video</a></p>
</video>
</body>
</html>

View File

@ -1,18 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Index of video.js examples</title>
</head>
<body>
<h1>Index of video.js examples</h1>
<ul>
<li><a href="simple-embed">Video.js HTML5 video player simple example</a></li>
<li><a href="elephantsdream">Elephants Dream video with text descriptions, chapters &amp; captions example</a></li>
</ul>
</body>
</html>

View File

@ -1,41 +0,0 @@
WEBVTT
00:00.700 --> 00:04.110
Captions describe all relevant audio for the hearing impaired.
[ Heroic music playing for a seagull ]
00:04.500 --> 00:05.000
[ Splash!!! ]
00:05.100 --> 00:06.000
[ Sploosh!!! ]
00:08.000 --> 00:09.225
[ Splash...splash...splash splash splash ]
00:10.525 --> 00:11.255
[ Splash, Sploosh again ]
00:13.500 --> 00:14.984
Dolphin: eeeEEEEEeeee!
00:14.984 --> 00:16.984
Dolphin: Squawk! eeeEEE?
00:25.000 --> 00:28.284
[ A whole ton of splashes ]
00:29.500 --> 00:31.000
Mine. Mine. Mine.
00:34.300 --> 00:36.000
Shark: Chomp
00:36.800 --> 00:37.900
Shark: CHOMP!!!
00:37.861 --> 00:41.193
EEEEEEOOOOOOOOOOWHALENOISE
00:42.593 --> 00:45.611
[ BIG SPLASH ]

View File

@ -1,23 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Video.js | HTML5 Video Player</title>
<link href="http://vjs.zencdn.net/7.0/video-js.min.css" rel="stylesheet">
<script src="http://vjs.zencdn.net/7.0/video.min.js"></script>
</head>
<body>
<video id="example_video_1" class="video-js" controls preload="none" width="640" height="264" poster="http://vjs.zencdn.net/v/oceans.png" data-setup="{}">
<source src="http://vjs.zencdn.net/v/oceans.mp4" type="video/mp4">
<source src="http://vjs.zencdn.net/v/oceans.webm" type="video/webm">
<source src="http://vjs.zencdn.net/v/oceans.ogv" type="video/ogg">
<track kind="captions" src="../shared/example-captions.vtt" srclang="en" label="English">
<track kind="subtitles" src="../shared/example-captions.vtt" srclang="en" label="English">
<p class="vjs-no-js">To view this video please enable JavaScript, and consider upgrading to a web browser that <a href="https://videojs.com/html5-video-support/" target="_blank">supports HTML5 video</a></p>
</video>
</body>
</html>

View File

@ -1,108 +0,0 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<defs>
<font id="VideoJS" horiz-adv-x="1792">
<font-face font-family="VideoJS"
units-per-em="1792" ascent="1792"
descent="0" />
<missing-glyph horiz-adv-x="0" />
<glyph glyph-name="play"
unicode="&#xF101;"
horiz-adv-x="1792" d=" M597.3333333333334 1418.6666666666665V373.3333333333333L1418.6666666666667 896z" />
<glyph glyph-name="play-circle"
unicode="&#xF102;"
horiz-adv-x="1792" d=" M746.6666666666667 560L1194.6666666666667 896L746.6666666666667 1232V560zM896 1642.6666666666667C483.4666666666667 1642.6666666666667 149.3333333333334 1308.5333333333333 149.3333333333334 896S483.4666666666667 149.3333333333333 896 149.3333333333333S1642.6666666666667 483.4666666666667 1642.6666666666667 896S1308.5333333333333 1642.6666666666667 896 1642.6666666666667zM896 298.6666666666665C566.72 298.6666666666665 298.6666666666667 566.7199999999998 298.6666666666667 896S566.72 1493.3333333333333 896 1493.3333333333333S1493.3333333333335 1225.28 1493.3333333333335 896S1225.2800000000002 298.6666666666665 896 298.6666666666665z" />
<glyph glyph-name="pause"
unicode="&#xF103;"
horiz-adv-x="1792" d=" M448 373.3333333333333H746.6666666666667V1418.6666666666665H448V373.3333333333333zM1045.3333333333335 1418.6666666666665V373.3333333333333H1344V1418.6666666666665H1045.3333333333335z" />
<glyph glyph-name="volume-mute"
unicode="&#xF104;"
horiz-adv-x="1792" d=" M1232 896C1232 1027.7866666666666 1155.8400000000001 1141.6533333333332 1045.3333333333335 1196.5333333333333V1031.52L1228.6399999999999 848.2133333333334C1230.88 863.8933333333334 1232 879.9466666666667 1232 896.0000000000001zM1418.6666666666667 896C1418.6666666666667 825.8133333333333 1403.3600000000001 759.7333333333333 1378.3466666666668 698.8799999999999L1491.466666666667 585.7599999999998C1540 678.72 1568 783.9999999999999 1568 896C1568 1215.5733333333333 1344.3733333333334 1482.88 1045.3333333333335 1550.8266666666666V1396.6399999999999C1261.1200000000001 1332.4266666666667 1418.6666666666667 1132.6933333333332 1418.6666666666667 896zM319.2000000000001 1568L224 1472.8L576.8 1120H224V672H522.6666666666667L896 298.6666666666665V800.8L1213.7066666666667 483.0933333333332C1163.68 444.6399999999999 1107.3066666666666 413.6533333333332 1045.3333333333335 394.9866666666665V240.7999999999998C1148 264.32 1241.7066666666667 311.3599999999997 1320.48 375.9466666666663L1472.8000000000002 224L1568 319.1999999999998L896 991.1999999999998L319.2000000000001 1568zM896 1493.3333333333333L739.9466666666667 1337.28L896 1181.2266666666667V1493.3333333333333z" />
<glyph glyph-name="volume-low"
unicode="&#xF105;"
horiz-adv-x="1792" d=" M522.6666666666667 1120V672H821.3333333333334L1194.6666666666667 298.6666666666665V1493.3333333333333L821.3333333333334 1120H522.6666666666667z" />
<glyph glyph-name="volume-mid"
unicode="&#xF106;"
horiz-adv-x="1792" d=" M1381.3333333333335 896C1381.3333333333335 1027.7866666666666 1305.1733333333334 1141.6533333333332 1194.6666666666667 1196.5333333333333V595.0933333333332C1305.1733333333334 650.3466666666666 1381.3333333333335 764.2133333333331 1381.3333333333335 896zM373.3333333333334 1120V672H672L1045.3333333333335 298.6666666666665V1493.3333333333333L672 1120H373.3333333333334z" />
<glyph glyph-name="volume-high"
unicode="&#xF107;"
horiz-adv-x="1792" d=" M224 1120V672H522.6666666666667L896 298.6666666666665V1493.3333333333333L522.6666666666667 1120H224zM1232 896C1232 1027.7866666666666 1155.8400000000001 1141.6533333333332 1045.3333333333335 1196.5333333333333V595.0933333333332C1155.8400000000001 650.3466666666666 1232 764.2133333333331 1232 896zM1045.3333333333335 1550.8266666666666V1396.6399999999999C1261.1200000000001 1332.4266666666667 1418.6666666666667 1132.6933333333332 1418.6666666666667 896S1261.1200000000001 459.5733333333333 1045.3333333333335 395.3600000000002V241.1733333333332C1344.3733333333334 309.1199999999999 1568 576.0533333333333 1568 896S1344.3733333333334 1482.88 1045.3333333333335 1550.8266666666666z" />
<glyph glyph-name="fullscreen-enter"
unicode="&#xF108;"
horiz-adv-x="1792" d=" M522.6666666666667 746.6666666666665H373.3333333333334V373.3333333333333H746.6666666666667V522.6666666666665H522.6666666666667V746.6666666666665zM373.3333333333334 1045.3333333333333H522.6666666666667V1269.3333333333333H746.6666666666667V1418.6666666666665H373.3333333333334V1045.3333333333333zM1269.3333333333335 522.6666666666665H1045.3333333333335V373.3333333333333H1418.6666666666667V746.6666666666665H1269.3333333333335V522.6666666666665zM1045.3333333333335 1418.6666666666665V1269.3333333333333H1269.3333333333335V1045.3333333333333H1418.6666666666667V1418.6666666666665H1045.3333333333335z" />
<glyph glyph-name="fullscreen-exit"
unicode="&#xF109;"
horiz-adv-x="1792" d=" M373.3333333333334 597.3333333333333H597.3333333333334V373.3333333333333H746.6666666666667V746.6666666666665H373.3333333333334V597.3333333333333zM597.3333333333334 1194.6666666666665H373.3333333333334V1045.3333333333333H746.6666666666667V1418.6666666666665H597.3333333333334V1194.6666666666665zM1045.3333333333335 373.3333333333333H1194.6666666666667V597.3333333333333H1418.6666666666667V746.6666666666665H1045.3333333333335V373.3333333333333zM1194.6666666666667 1194.6666666666665V1418.6666666666665H1045.3333333333335V1045.3333333333333H1418.6666666666667V1194.6666666666665H1194.6666666666667z" />
<glyph glyph-name="square"
unicode="&#xF10A;"
horiz-adv-x="1792" d=" M1344 1493.3333333333333H448C365.4933333333334 1493.3333333333333 298.6666666666667 1426.5066666666667 298.6666666666667 1344V448C298.6666666666667 365.4933333333331 365.4933333333334 298.6666666666665 448 298.6666666666665H1344C1426.506666666667 298.6666666666665 1493.3333333333335 365.4933333333331 1493.3333333333335 448V1344C1493.3333333333335 1426.5066666666667 1426.506666666667 1493.3333333333333 1344 1493.3333333333333zM1344 448H448V1344H1344V448z" />
<glyph glyph-name="spinner"
unicode="&#xF10B;"
horiz-adv-x="1792" d=" M701.8666666666668 1008L1057.6533333333334 1624.3733333333334C1005.7600000000002 1635.9466666666667 951.6266666666666 1642.6666666666667 896 1642.6666666666667C716.8000000000001 1642.6666666666667 552.9066666666668 1579.5733333333333 424.1066666666667 1474.2933333333333L697.76 1000.5333333333334L701.8666666666666 1008zM1608.32 1120C1539.6266666666666 1338.4 1373.1200000000001 1512.7466666666667 1160.6933333333332 1593.3866666666668L887.4133333333334 1120H1608.32zM1627.7333333333336 1045.3333333333333H1068.48L1090.1333333333334 1008L1445.92 392C1567.6266666666668 524.9066666666668 1642.6666666666667 701.4933333333333 1642.6666666666667 896C1642.6666666666667 947.1466666666666 1637.44 997.1733333333332 1627.7333333333336 1045.3333333333333zM637.2800000000001 896L346.08 1400C224.3733333333333 1267.0933333333332 149.3333333333334 1090.5066666666667 149.3333333333334 896C149.3333333333334 844.8533333333332 154.56 794.8266666666666 164.2666666666667 746.6666666666665H723.5200000000001L637.2800000000002 896zM183.68 672C252.3733333333334 453.5999999999999 418.88 279.2533333333334 631.3066666666667 198.6133333333332L904.5866666666668 672H183.68zM1025.1733333333334 672L733.9733333333334 167.6266666666666C786.24 156.0533333333333 840.3733333333334 149.3333333333333 896 149.3333333333333C1075.2 149.3333333333333 1239.0933333333332 212.4266666666665 1367.8933333333334 317.7066666666665L1094.24 791.4666666666666L1025.1733333333334 672z" />
<glyph glyph-name="subtitles"
unicode="&#xF10C;"
horiz-adv-x="1792" d=" M1493.3333333333335 1493.3333333333333H298.6666666666667C216.16 1493.3333333333333 149.3333333333334 1426.5066666666667 149.3333333333334 1344V448C149.3333333333334 365.4933333333331 216.16 298.6666666666665 298.6666666666667 298.6666666666665H1493.3333333333335C1575.8400000000001 298.6666666666665 1642.6666666666667 365.4933333333331 1642.6666666666667 448V1344C1642.6666666666667 1426.5066666666667 1575.8400000000001 1493.3333333333333 1493.3333333333335 1493.3333333333333zM298.6666666666667 896H597.3333333333334V746.6666666666665H298.6666666666667V896zM1045.3333333333335 448H298.6666666666667V597.3333333333333H1045.3333333333335V448zM1493.3333333333335 448H1194.6666666666667V597.3333333333333H1493.3333333333335V448zM1493.3333333333335 746.6666666666665H746.6666666666667V896H1493.3333333333335V746.6666666666665z" />
<glyph glyph-name="captions"
unicode="&#xF10D;"
horiz-adv-x="1792" d=" M1418.6666666666667 1493.3333333333333H373.3333333333334C290.8266666666667 1493.3333333333333 224 1426.5066666666667 224 1344V448C224 365.4933333333331 290.8266666666667 298.6666666666665 373.3333333333334 298.6666666666665H1418.6666666666667C1501.1733333333334 298.6666666666665 1568 365.4933333333331 1568 448V1344C1568 1426.5066666666667 1501.1733333333334 1493.3333333333333 1418.6666666666667 1493.3333333333333zM821.3333333333334 970.6666666666666H709.3333333333334V1008H560V783.9999999999999H709.3333333333334V821.3333333333333H821.3333333333334V746.6666666666665C821.3333333333334 705.5999999999999 788.1066666666667 672 746.6666666666667 672H522.6666666666667C481.2266666666667 672 448 705.5999999999999 448 746.6666666666665V1045.3333333333333C448 1086.4 481.2266666666667 1120 522.6666666666667 1120H746.6666666666667C788.1066666666667 1120 821.3333333333334 1086.4 821.3333333333334 1045.3333333333333V970.6666666666666zM1344 970.6666666666666H1232V1008H1082.6666666666667V783.9999999999999H1232V821.3333333333333H1344V746.6666666666665C1344 705.5999999999999 1310.7733333333333 672 1269.3333333333335 672H1045.3333333333335C1003.8933333333334 672 970.6666666666669 705.5999999999999 970.6666666666669 746.6666666666665V1045.3333333333333C970.6666666666669 1086.4 1003.8933333333334 1120 1045.3333333333335 1120H1269.3333333333335C1310.7733333333333 1120 1344 1086.4 1344 1045.3333333333333V970.6666666666666z" />
<glyph glyph-name="chapters"
unicode="&#xF10E;"
horiz-adv-x="1792" d=" M224 821.3333333333333H373.3333333333334V970.6666666666666H224V821.3333333333333zM224 522.6666666666665H373.3333333333334V672H224V522.6666666666665zM224 1120H373.3333333333334V1269.3333333333333H224V1120zM522.6666666666667 821.3333333333333H1568V970.6666666666666H522.6666666666667V821.3333333333333zM522.6666666666667 522.6666666666665H1568V672H522.6666666666667V522.6666666666665zM522.6666666666667 1269.3333333333333V1120H1568V1269.3333333333333H522.6666666666667z" />
<glyph glyph-name="share"
unicode="&#xF10F;"
horiz-adv-x="1792" d=" M1344 590.9866666666665C1287.2533333333333 590.9866666666665 1236.1066666666668 568.9599999999998 1197.2800000000002 533.4933333333331L665.2800000000001 843.7333333333333C669.3866666666667 860.5333333333333 672 878.08 672 896S669.3866666666667 931.4666666666666 665.2800000000001 948.2666666666667L1191.68 1255.52C1231.6266666666668 1218.1866666666665 1285.0133333333335 1195.04 1344 1195.04C1467.5733333333335 1195.04 1568 1295.4666666666665 1568 1419.04S1467.5733333333335 1643.04 1344 1643.04S1120 1542.6133333333332 1120 1419.04C1120 1401.12 1122.6133333333335 1383.5733333333333 1126.72 1366.773333333333L600.3199999999999 1059.5199999999998C560.3733333333333 1096.853333333333 506.9866666666666 1119.9999999999998 448 1119.9999999999998C324.4266666666666 1119.9999999999998 224 1019.5733333333332 224 895.9999999999998S324.4266666666666 671.9999999999998 448 671.9999999999998C506.9866666666666 671.9999999999998 560.3733333333333 695.1466666666665 600.3199999999999 732.4799999999998L1132.32 422.2399999999998C1128.5866666666666 406.5599999999997 1126.3466666666666 390.133333333333 1126.3466666666666 373.3333333333331C1126.3466666666666 253.1199999999997 1223.7866666666669 155.6799999999996 1344 155.6799999999996S1561.6533333333334 253.1199999999997 1561.6533333333334 373.3333333333331S1464.2133333333334 590.9866666666662 1344 590.9866666666662z" />
<glyph glyph-name="cog"
unicode="&#xF110;"
horiz-adv-x="1792" d=" M1450.7733333333333 823.1999999999999C1453.76 847.0933333333334 1456 871.3599999999999 1456 896S1453.76 944.9066666666666 1450.7733333333333 968.8L1608.6933333333336 1092.3733333333332C1622.8800000000003 1103.5733333333333 1626.986666666667 1123.7333333333331 1617.6533333333336 1140.1599999999999L1468.3200000000004 1398.8799999999999C1458.986666666667 1414.9333333333334 1439.5733333333335 1421.6533333333332 1422.7733333333338 1414.9333333333334L1236.8533333333337 1339.8933333333332C1198.4000000000003 1369.3866666666668 1156.2133333333338 1394.3999999999999 1110.6666666666672 1413.44L1082.6666666666667 1611.3066666666666C1079.3066666666668 1628.8533333333332 1064 1642.6666666666667 1045.3333333333335 1642.6666666666667H746.6666666666667C728 1642.6666666666667 712.6933333333334 1628.8533333333332 709.7066666666668 1611.3066666666666L681.7066666666668 1413.44C636.1600000000002 1394.4 593.9733333333335 1369.76 555.5200000000001 1339.8933333333332L369.6 1414.9333333333334C352.8000000000001 1421.28 333.3866666666667 1414.9333333333334 324.0533333333334 1398.88L174.72 1140.1599999999999C165.3866666666667 1124.1066666666666 169.4933333333334 1103.9466666666667 183.68 1092.3733333333332L341.2266666666667 968.8C338.2400000000001 944.9066666666666 336 920.64 336 896S338.2400000000001 847.0933333333334 341.2266666666667 823.1999999999999L183.68 699.6266666666668C169.4933333333334 688.4266666666667 165.3866666666667 668.2666666666667 174.72 651.8399999999999L324.0533333333334 393.1199999999999C333.3866666666667 377.0666666666666 352.8 370.3466666666666 369.6 377.0666666666666L555.5200000000001 452.1066666666666C593.9733333333334 422.6133333333333 636.16 397.5999999999999 681.7066666666668 378.56L709.7066666666668 180.6933333333334C712.6933333333334 163.1466666666668 728 149.3333333333333 746.6666666666667 149.3333333333333H1045.3333333333335C1064 149.3333333333333 1079.3066666666668 163.1466666666665 1082.2933333333333 180.6933333333334L1110.2933333333333 378.56C1155.84 397.5999999999999 1198.0266666666666 422.24 1236.48 452.1066666666666L1422.3999999999999 377.0666666666666C1439.2 370.7199999999998 1458.6133333333332 377.0666666666666 1467.9466666666665 393.1199999999999L1617.2799999999997 651.8399999999999C1626.6133333333332 667.8933333333332 1622.5066666666664 688.0533333333333 1608.3199999999997 699.6266666666668L1450.773333333333 823.1999999999999zM896 634.6666666666665C751.52 634.6666666666665 634.6666666666667 751.52 634.6666666666667 896S751.52 1157.3333333333333 896 1157.3333333333333S1157.3333333333335 1040.48 1157.3333333333335 896S1040.48 634.6666666666665 896 634.6666666666665z" />
<glyph glyph-name="circle"
unicode="&#xF111;"
horiz-adv-x="1792" d=" M149.3333333333334 896C149.3333333333334 483.6273867930074 483.6273867930075 149.3333333333333 896 149.3333333333333C1308.3726132069926 149.3333333333333 1642.6666666666667 483.6273867930074 1642.6666666666667 896C1642.6666666666667 1308.3726132069926 1308.3726132069926 1642.6666666666667 896 1642.6666666666667C483.6273867930075 1642.6666666666667 149.3333333333334 1308.3726132069926 149.3333333333334 896z" />
<glyph glyph-name="circle-outline"
unicode="&#xF112;"
horiz-adv-x="1792" d=" M896 1642.6666666666667C483.4666666666667 1642.6666666666667 149.3333333333334 1308.5333333333333 149.3333333333334 896S483.4666666666667 149.3333333333333 896 149.3333333333333S1642.6666666666667 483.4666666666667 1642.6666666666667 896S1308.5333333333333 1642.6666666666667 896 1642.6666666666667zM896 298.6666666666665C566.72 298.6666666666665 298.6666666666667 566.7199999999998 298.6666666666667 896S566.72 1493.3333333333333 896 1493.3333333333333S1493.3333333333335 1225.28 1493.3333333333335 896S1225.2800000000002 298.6666666666665 896 298.6666666666665z" />
<glyph glyph-name="circle-inner-circle"
unicode="&#xF113;"
horiz-adv-x="1792" d=" M896 1642.6666666666667C484.2133333333334 1642.6666666666667 149.3333333333334 1307.7866666666666 149.3333333333334 896S484.2133333333334 149.3333333333333 896 149.3333333333333S1642.6666666666667 484.2133333333331 1642.6666666666667 896S1307.7866666666669 1642.6666666666667 896 1642.6666666666667zM896 298.6666666666665C566.72 298.6666666666665 298.6666666666667 566.7199999999998 298.6666666666667 896S566.72 1493.3333333333333 896 1493.3333333333333S1493.3333333333335 1225.28 1493.3333333333335 896S1225.2800000000002 298.6666666666665 896 298.6666666666665zM1120 896C1120 772.4266666666666 1019.5733333333334 672 896 672S672 772.4266666666666 672 896S772.4266666666667 1120 896 1120S1120 1019.5733333333332 1120 896z" />
<glyph glyph-name="hd"
unicode="&#xF114;"
horiz-adv-x="1792" d=" M1418.6666666666667 1568H373.3333333333334C290.4533333333333 1568 224 1500.8 224 1418.6666666666665V373.3333333333333C224 291.1999999999998 290.4533333333334 224 373.3333333333334 224H1418.6666666666667C1500.8000000000002 224 1568 291.1999999999998 1568 373.3333333333333V1418.6666666666665C1568 1500.8 1500.8000000000002 1568 1418.6666666666667 1568zM821.3333333333334 672H709.3333333333334V821.3333333333333H560V672H448V1120H560V933.3333333333331H709.3333333333334V1120H821.3333333333334V672zM970.6666666666669 1120H1269.3333333333335C1310.4 1120 1344 1086.4 1344 1045.3333333333333V746.6666666666665C1344 705.5999999999999 1310.4 672 1269.3333333333335 672H970.6666666666669V1120zM1082.6666666666667 783.9999999999999H1232V1008H1082.6666666666667V783.9999999999999z" />
<glyph glyph-name="cancel"
unicode="&#xF115;"
horiz-adv-x="1792" d=" M896 1642.6666666666667C483.4666666666667 1642.6666666666667 149.3333333333334 1308.5333333333333 149.3333333333334 896S483.4666666666667 149.3333333333333 896 149.3333333333333S1642.6666666666667 483.4666666666667 1642.6666666666667 896S1308.5333333333333 1642.6666666666667 896 1642.6666666666667zM1269.3333333333335 628.3199999999999L1163.68 522.6666666666665L896 790.3466666666667L628.3199999999999 522.6666666666665L522.6666666666667 628.3199999999999L790.3466666666668 896L522.6666666666667 1163.68L628.3199999999999 1269.3333333333333L896 1001.6533333333332L1163.68 1269.3333333333333L1269.3333333333335 1163.68L1001.6533333333334 896L1269.3333333333335 628.3199999999999z" />
<glyph glyph-name="replay"
unicode="&#xF116;"
horiz-adv-x="1792" d=" M896 1418.6666666666665V1717.3333333333333L522.6666666666667 1344L896 970.6666666666666V1269.3333333333333C1143.52 1269.3333333333333 1344 1068.8533333333332 1344 821.3333333333333S1143.52 373.3333333333333 896 373.3333333333333S448 573.813333333333 448 821.3333333333333H298.6666666666667C298.6666666666667 491.3066666666664 565.9733333333334 224 896 224S1493.3333333333335 491.3066666666664 1493.3333333333335 821.3333333333333S1226.0266666666669 1418.6666666666665 896 1418.6666666666665z" />
<glyph glyph-name="facebook"
unicode="&#xF117;"
horiz-adv-x="1792" d=" M1343 1780V1516H1186Q1100 1516 1070 1480T1040 1372V1183H1333L1294 887H1040V128H734V887H479V1183H734V1401Q734 1587 838 1689.5T1115 1792Q1262 1792 1343 1780z" />
<glyph glyph-name="gplus"
unicode="&#xF118;"
horiz-adv-x="1792" d=" M799 996Q799 960 831 925.5T908.5 857.5T999 784T1076 680T1108 538Q1108 448 1060 365Q988 243 849 185.5T551 128Q419 128 304.5 169.5T133 307Q96 367 96 438Q96 519 140.5 588T259 703Q390 785 663 803Q631 845 615.5 877T600 950Q600 986 621 1035Q575 1031 553 1031Q405 1031 303.5 1127.5T202 1372Q202 1454 238 1531T337 1662Q414 1728 519.5 1760T737 1792H1155L1017 1704H886Q960 1641 998 1571T1036 1411Q1036 1339 1011.5 1281.5T952.5 1188.5T883 1123.5T823.5 1062T799 996zM653 1092Q691 1092 731 1108.5T797 1152Q850 1209 850 1311Q850 1369 833 1436T784.5 1565.5T700 1669T583 1710Q541 1710 500.5 1690.5T435 1638Q388 1579 388 1478Q388 1432 398 1380.5T429.5 1277.5T481.5 1185T556.5 1118T653 1092zM655 219Q713 219 766.5 232T865.5 271T938.5 344T966 453Q966 478 959 502T944.5 544T917.5 585.5T888 620.5T849.5 655T813 684T771.5 714T735 740Q719 742 687 742Q634 742 582 735T474.5 710T377.5 664T309 589.5T282 484Q282 414 317 360.5T408.5 277.5T527.5 233.5T655 219zM1465 1095H1678V987H1465V768H1360V987H1148V1095H1360V1312H1465V1095z" />
<glyph glyph-name="linkedin"
unicode="&#xF119;"
horiz-adv-x="1792" d=" M477 1167V176H147V1167H477zM498 1473Q499 1400 447.5 1351T312 1302H310Q228 1302 178 1351T128 1473Q128 1547 179.5 1595.5T314 1644T447 1595.5T498 1473zM1664 744V176H1335V706Q1335 811 1294.5 870.5T1168 930Q1105 930 1062.5 895.5T999 810Q988 780 988 729V176H659Q661 575 661 823T660 1119L659 1167H988V1023H986Q1006 1055 1027 1079T1083.5 1131T1170.5 1174.5T1285 1190Q1456 1190 1560 1076.5T1664 744z" />
<glyph glyph-name="twitter"
unicode="&#xF11A;"
horiz-adv-x="1792" d=" M1684 1384Q1617 1286 1522 1217Q1523 1203 1523 1175Q1523 1045 1485 915.5T1369.5 667T1185 456.5T927 310.5T604 256Q333 256 108 401Q143 397 186 397Q411 397 587 535Q482 537 399 599.5T285 759Q318 754 346 754Q389 754 431 765Q319 788 245.5 876.5T172 1082V1086Q240 1048 318 1045Q252 1089 213 1160T174 1314Q174 1402 218 1477Q339 1328 512.5 1238.5T884 1139Q876 1177 876 1213Q876 1347 970.5 1441.5T1199 1536Q1339 1536 1435 1434Q1544 1455 1640 1512Q1603 1397 1498 1334Q1591 1344 1684 1384z" />
<glyph glyph-name="tumblr"
unicode="&#xF11B;"
horiz-adv-x="1792" d=" M1328 463L1408 226Q1385 191 1297 160T1120 128Q1016 126 929.5 154T787 228T692 334T636.5 454T620 572V1116H452V1331Q524 1357 581 1400.5T672 1490.5T730 1592.5T764 1691.5T779 1780Q780 1785 783.5 1788.5T791 1792H1035V1368H1368V1116H1034V598Q1034 568 1040.5 542T1063 489.5T1112.5 448T1194 434Q1272 436 1328 463z" />
<glyph glyph-name="pinterest"
unicode="&#xF11C;"
horiz-adv-x="1792" d=" M1664 896Q1664 687 1561 510.5T1281.5 231T896 128Q785 128 678 160Q737 253 756 324Q765 358 810 535Q830 496 883 467.5T997 439Q1118 439 1213 507.5T1360 696T1412 966Q1412 1080 1352.5 1180T1180 1343T925 1406Q820 1406 729 1377T574.5 1300T465.5 1189.5T398.5 1060T377 926Q377 822 417 743T534 632Q564 620 572 652Q574 659 580 683T588 713Q594 736 577 756Q526 817 526 907Q526 1058 630.5 1166.5T904 1275Q1055 1275 1139.5 1193T1224 980Q1224 810 1155.5 691T980 572Q919 572 882 615.5T859 720Q867 755 885.5 813.5T915.5 916.5T927 992Q927 1042 900 1075T823 1108Q761 1108 718 1051T675 909Q675 836 700 787L601 369Q584 299 588 192Q382 283 255 473T128 896Q128 1105 231 1281.5T510.5 1561T896 1664T1281.5 1561T1561 1281.5T1664 896z" />
<glyph glyph-name="audio-description"
unicode="&#xF11D;"
horiz-adv-x="1792" d=" M795.5138904615 457.270933L795.5138904615 1221.5248286325C971.84576475 1225.085121904 1107.39330415 1232.12360523 1207.223857 1161.5835220499998C1303.033991 1093.8857027 1377.7922305 962.20560625 1364.3373135 792.9476205000001C1350.102593 613.9029365000001 1219.6655764999998 463.4600215 1050.12389545 448.2843645000001C965.8259268 440.7398275000001 798.21890505 448.2843645000001 798.21890505 448.2843645000001C798.21890505 448.2843645000001 795.2791410655 453.016494 795.5138904615 457.270933M966.1564647 649.0863960000001C1076.16084135 644.6767075 1152.385591 707.3020429999999 1163.8910079999998 807.9351875C1179.2994744999999 942.71878505 1089.73043585 1030.3691748 960.74508635 1020.7227954L960.74508635 658.08043C960.6196169500002 652.9482330000001 962.7606933 650.3134680000001 966.1564647 649.0863960000001 M1343.2299685 457.3517725000002C1389.9059734 444.3690160000001 1404.0840274999998 496.0596970000001 1424.48294065 532.2791494999999C1469.0084255 611.2788500000001 1502.5101322 712.8584189999999 1503.0416912 828.9881705C1503.8147453000001 995.5680973 1438.8404296 1117.7973688000002 1378.4383305 1200.62456881045L1348.652139905 1200.62456881045C1346.6001063899998 1187.06858424 1356.44474056 1175.024791325 1362.18395859 1164.6588891000001C1408.2649952 1081.49431985 1450.96645015 966.7230041 1451.57490975 834.9817034999999C1452.27106325 683.8655425000002 1402.00636065 557.5072264999999 1343.2299685 457.3517725000002 M1488.0379675 457.3517725000002C1534.7139723999999 444.3690160000001 1548.8825828 496.0671625 1569.29093965 532.2791494999999C1613.8164245 611.2788500000001 1647.3113856500001 712.8584189999999 1647.8496902000002 828.9881705C1648.6227442999998 995.5680973 1583.6484286 1117.7973688000002 1523.2463295 1200.62456881045L1493.460138905 1200.62456881045C1491.40810539 1187.06858424 1501.250041305 1175.021805755 1506.9919575899999 1164.6588891000001C1553.0729942 1081.49431985 1595.7757984 966.7230041 1596.3829087499998 834.9817034999999C1597.07906225 683.8655425000002 1546.8143596500001 557.5072264999999 1488.0379675 457.3517725000002 M1631.9130380000001 457.3517725000002C1678.5890429 444.3690160000001 1692.7576533 496.0671625 1713.1660101500001 532.2791494999999C1757.691495 611.2788500000001 1791.1864561500001 712.8584189999999 1791.7247607000002 828.9881705C1792.4978148 995.5680973 1727.5234991000002 1117.7973688000002 1667.1214 1200.62456881045L1637.3352094050001 1200.62456881045C1635.28317589 1187.06858424 1645.1251118050002 1175.02329854 1650.86702809 1164.6588891000001C1696.9480647 1081.49431985 1739.64951965 966.7230041 1740.25797925 834.9817034999999C1740.95413275 683.8655425000002 1690.6894301500001 557.5072264999999 1631.9130380000001 457.3517725000002 M15.66796875 451.481947L254.03034755 451.481947L319.0356932 551.1747990000001L543.6261075 551.6487970000001C543.6261075 551.6487970000001 543.8541115 483.7032095 543.8541115 451.481947L714.4993835 451.481947L714.4993835 1230.9210795L508.643051 1230.9210795C488.8579955 1197.5411595 15.66796875 451.481947 15.66796875 451.481947L15.66796875 451.481947zM550.0048155000001 959.9708615L550.0048155000001 710.916297L408.4199 711.8642895L550.0048155000001 959.9708615L550.0048155000001 959.9708615z" />
<glyph glyph-name="audio"
unicode="&#xF11E;"
horiz-adv-x="1792" d=" M896 1717.3333333333333C524.9066666666668 1717.3333333333333 224 1416.4266666666667 224 1045.3333333333333V522.6666666666665C224 399.0933333333333 324.4266666666667 298.6666666666665 448 298.6666666666665H672V896H373.3333333333334V1045.3333333333333C373.3333333333334 1333.92 607.4133333333334 1568 896 1568S1418.6666666666667 1333.92 1418.6666666666667 1045.3333333333333V896H1120V298.6666666666665H1344C1467.5733333333335 298.6666666666665 1568 399.0933333333333 1568 522.6666666666665V1045.3333333333333C1568 1416.4266666666667 1267.0933333333332 1717.3333333333333 896 1717.3333333333333z" />
<glyph glyph-name="next-item"
unicode="&#xF11F;"
horiz-adv-x="1792" d=" M448 448L1082.6666666666667 896L448 1344V448zM1194.6666666666667 1344V448H1344V1344H1194.6666666666667z" />
<glyph glyph-name="previous-item"
unicode="&#xF120;"
horiz-adv-x="1792" d=" M448 1344H597.3333333333334V448H448zM709.3333333333334 896L1344 448V1344z" />
</font>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Binary file not shown.

View File

@ -1,34 +0,0 @@
videojs.addLanguage('ar', {
"Play": "تشغيل",
"Pause": "إيقاف",
"Current Time": "الوقت الحالي",
"Duration": "مدة",
"Remaining Time": "الوقت المتبقي",
"Stream Type": "نوع التيار",
"LIVE": "مباشر",
"Loaded": "تم التحميل",
"Progress": "التقدم",
"Fullscreen": "ملء الشاشة",
"Non-Fullscreen": "تعطيل ملء الشاشة",
"Mute": "صامت",
"Unmute": "غير الصامت",
"Playback Rate": "معدل التشغيل",
"Subtitles": "الترجمة",
"subtitles off": "إيقاف الترجمة",
"Captions": "التعليقات",
"captions off": "إيقاف التعليقات",
"Chapters": "فصول",
"You aborted the media playback": "لقد ألغيت تشغيل الفيديو",
"A network error caused the media download to fail part-way.": "تسبب خطأ في الشبكة بفشل تحميل الفيديو بالكامل.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "لا يمكن تحميل الفيديو بسبب فشل في الخادوم أو الشبكة ، أو فشل بسبب عدم إمكانية قراءة تنسيق الفيديو.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "تم إيقاف تشغيل الفيديو بسبب مشكلة فساد أو لأن الفيديو المستخدم يستخدم ميزات غير مدعومة من متصفحك.",
"No compatible source was found for this media.": "فشل العثور على أي مصدر متوافق مع هذا الفيديو.",
"Play Video": "تشغيل الفيديو",
"Close": "أغلق",
"Modal Window": "نافذة مشروطة",
"This is a modal window": "هذه نافذة مشروطة",
"This modal can be closed by pressing the Escape key or activating the close button.": "يمكن غلق هذه النافذة المشروطة عن طريق الضغط على زر الخروج أو تفعيل زر الإغلاق",
", opens captions settings dialog": ", تفتح نافذة خيارات التعليقات",
", opens subtitles settings dialog": ", تفتح نافذة خيارات الترجمة",
", selected": ", مختار"
});

View File

@ -1,34 +0,0 @@
{
"Play": "تشغيل",
"Pause": "إيقاف",
"Current Time": "الوقت الحالي",
"Duration": "مدة",
"Remaining Time": "الوقت المتبقي",
"Stream Type": "نوع التيار",
"LIVE": "مباشر",
"Loaded": "تم التحميل",
"Progress": "التقدم",
"Fullscreen": "ملء الشاشة",
"Non-Fullscreen": "تعطيل ملء الشاشة",
"Mute": "صامت",
"Unmute": "غير الصامت",
"Playback Rate": "معدل التشغيل",
"Subtitles": "الترجمة",
"subtitles off": "إيقاف الترجمة",
"Captions": "التعليقات",
"captions off": "إيقاف التعليقات",
"Chapters": "فصول",
"You aborted the media playback": "لقد ألغيت تشغيل الفيديو",
"A network error caused the media download to fail part-way.": "تسبب خطأ في الشبكة بفشل تحميل الفيديو بالكامل.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "لا يمكن تحميل الفيديو بسبب فشل في الخادوم أو الشبكة ، أو فشل بسبب عدم إمكانية قراءة تنسيق الفيديو.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "تم إيقاف تشغيل الفيديو بسبب مشكلة فساد أو لأن الفيديو المستخدم يستخدم ميزات غير مدعومة من متصفحك.",
"No compatible source was found for this media.": "فشل العثور على أي مصدر متوافق مع هذا الفيديو.",
"Play Video": "تشغيل الفيديو",
"Close": "أغلق",
"Modal Window": "نافذة مشروطة",
"This is a modal window": "هذه نافذة مشروطة",
"This modal can be closed by pressing the Escape key or activating the close button.": "يمكن غلق هذه النافذة المشروطة عن طريق الضغط على زر الخروج أو تفعيل زر الإغلاق",
", opens captions settings dialog": ", تفتح نافذة خيارات التعليقات",
", opens subtitles settings dialog": ", تفتح نافذة خيارات الترجمة",
", selected": ", مختار"
}

View File

@ -1,26 +0,0 @@
videojs.addLanguage('ba', {
"Play": "Pusti",
"Pause": "Pauza",
"Current Time": "Trenutno vrijeme",
"Duration": "Vrijeme trajanja",
"Remaining Time": "Preostalo vrijeme",
"Stream Type": "Način strimovanja",
"LIVE": "UŽIVO",
"Loaded": "Učitan",
"Progress": "Progres",
"Fullscreen": "Puni ekran",
"Non-Fullscreen": "Mali ekran",
"Mute": "Prigušen",
"Unmute": "Ne-prigušen",
"Playback Rate": "Stopa reprodukcije",
"Subtitles": "Podnaslov",
"subtitles off": "Podnaslov deaktiviran",
"Captions": "Titlovi",
"captions off": "Titlovi deaktivirani",
"Chapters": "Poglavlja",
"You aborted the media playback": "Isključili ste reprodukciju videa.",
"A network error caused the media download to fail part-way.": "Video se prestao preuzimati zbog greške na mreži.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Video se ne može reproducirati zbog servera, greške u mreži ili je format ne podržan.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Reprodukcija videa je zaustavljenja zbog greške u formatu ili zbog verzije vašeg pretraživača.",
"No compatible source was found for this media.": "Nije nađen nijedan kompatibilan izvor ovog videa."
});

View File

@ -1,26 +0,0 @@
{
"Play": "Pusti",
"Pause": "Pauza",
"Current Time": "Trenutno vrijeme",
"Duration": "Vrijeme trajanja",
"Remaining Time": "Preostalo vrijeme",
"Stream Type": "Način strimovanja",
"LIVE": "UŽIVO",
"Loaded": "Učitan",
"Progress": "Progres",
"Fullscreen": "Puni ekran",
"Non-Fullscreen": "Mali ekran",
"Mute": "Prigušen",
"Unmute": "Ne-prigušen",
"Playback Rate": "Stopa reprodukcije",
"Subtitles": "Podnaslov",
"subtitles off": "Podnaslov deaktiviran",
"Captions": "Titlovi",
"captions off": "Titlovi deaktivirani",
"Chapters": "Poglavlja",
"You aborted the media playback": "Isključili ste reprodukciju videa.",
"A network error caused the media download to fail part-way.": "Video se prestao preuzimati zbog greške na mreži.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Video se ne može reproducirati zbog servera, greške u mreži ili je format ne podržan.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Reprodukcija videa je zaustavljenja zbog greške u formatu ili zbog verzije vašeg pretraživača.",
"No compatible source was found for this media.": "Nije nađen nijedan kompatibilan izvor ovog videa."
}

View File

@ -1,26 +0,0 @@
videojs.addLanguage('bg', {
"Play": "Възпроизвеждане",
"Pause": "Пауза",
"Current Time": "Текущо време",
"Duration": "Продължителност",
"Remaining Time": "Оставащо време",
"Stream Type": "Тип на потока",
"LIVE": "НА ЖИВО",
"Loaded": "Заредено",
"Progress": "Прогрес",
"Fullscreen": "Цял екран",
"Non-Fullscreen": "Спиране на цял екран",
"Mute": "Без звук",
"Unmute": "Със звук",
"Playback Rate": "Скорост на възпроизвеждане",
"Subtitles": "Субтитри",
"subtitles off": "Спряни субтитри",
"Captions": "Аудио надписи",
"captions off": "Спряни аудио надписи",
"Chapters": "Глави",
"You aborted the media playback": "Спряхте възпроизвеждането на видеото",
"A network error caused the media download to fail part-way.": "Грешка в мрежата провали изтеглянето на видеото.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Видеото не може да бъде заредено заради проблем със сървъра или мрежата или защото този формат не е поддържан.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Възпроизвеждането на видеото беше прекъснато заради проблем с файла или защото видеото използва опции които браузърът Ви не поддържа.",
"No compatible source was found for this media.": "Не беше намерен съвместим източник за това видео."
});

View File

@ -1,26 +0,0 @@
{
"Play": "Възпроизвеждане",
"Pause": "Пауза",
"Current Time": "Текущо време",
"Duration": "Продължителност",
"Remaining Time": "Оставащо време",
"Stream Type": "Тип на потока",
"LIVE": "НА ЖИВО",
"Loaded": "Заредено",
"Progress": "Прогрес",
"Fullscreen": "Цял екран",
"Non-Fullscreen": "Спиране на цял екран",
"Mute": "Без звук",
"Unmute": "Със звук",
"Playback Rate": "Скорост на възпроизвеждане",
"Subtitles": "Субтитри",
"subtitles off": "Спряни субтитри",
"Captions": "Аудио надписи",
"captions off": "Спряни аудио надписи",
"Chapters": "Глави",
"You aborted the media playback": "Спряхте възпроизвеждането на видеото",
"A network error caused the media download to fail part-way.": "Грешка в мрежата провали изтеглянето на видеото.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Видеото не може да бъде заредено заради проблем със сървъра или мрежата или защото този формат не е поддържан.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Възпроизвеждането на видеото беше прекъснато заради проблем с файла или защото видеото използва опции които браузърът Ви не поддържа.",
"No compatible source was found for this media.": "Не беше намерен съвместим източник за това видео."
}

View File

@ -1,26 +0,0 @@
videojs.addLanguage('ca', {
"Play": "Reproducció",
"Pause": "Pausa",
"Current Time": "Temps reproduït",
"Duration": "Durada total",
"Remaining Time": "Temps restant",
"Stream Type": "Tipus de seqüència",
"LIVE": "EN DIRECTE",
"Loaded": "Carregat",
"Progress": "Progrés",
"Fullscreen": "Pantalla completa",
"Non-Fullscreen": "Pantalla no completa",
"Mute": "Silencia",
"Unmute": "Amb so",
"Playback Rate": "Velocitat de reproducció",
"Subtitles": "Subtítols",
"subtitles off": "Subtítols desactivats",
"Captions": "Llegendes",
"captions off": "Llegendes desactivades",
"Chapters": "Capítols",
"You aborted the media playback": "Heu interromput la reproducció del vídeo.",
"A network error caused the media download to fail part-way.": "Un error de la xarxa ha interromput la baixada del vídeo.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "No s'ha pogut carregar el vídeo perquè el servidor o la xarxa han fallat, o bé perquè el seu format no és compatible.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "La reproducció de vídeo s'ha interrumput per un problema de corrupció de dades o bé perquè el vídeo demanava funcions que el vostre navegador no ofereix.",
"No compatible source was found for this media.": "No s'ha trobat cap font compatible amb el vídeo."
});

View File

@ -1,26 +0,0 @@
{
"Play": "Reproducció",
"Pause": "Pausa",
"Current Time": "Temps reproduït",
"Duration": "Durada total",
"Remaining Time": "Temps restant",
"Stream Type": "Tipus de seqüència",
"LIVE": "EN DIRECTE",
"Loaded": "Carregat",
"Progress": "Progrés",
"Fullscreen": "Pantalla completa",
"Non-Fullscreen": "Pantalla no completa",
"Mute": "Silencia",
"Unmute": "Amb so",
"Playback Rate": "Velocitat de reproducció",
"Subtitles": "Subtítols",
"subtitles off": "Subtítols desactivats",
"Captions": "Llegendes",
"captions off": "Llegendes desactivades",
"Chapters": "Capítols",
"You aborted the media playback": "Heu interromput la reproducció del vídeo.",
"A network error caused the media download to fail part-way.": "Un error de la xarxa ha interromput la baixada del vídeo.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "No s'ha pogut carregar el vídeo perquè el servidor o la xarxa han fallat, o bé perquè el seu format no és compatible.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "La reproducció de vídeo s'ha interrumput per un problema de corrupció de dades o bé perquè el vídeo demanava funcions que el vostre navegador no ofereix.",
"No compatible source was found for this media.": "No s'ha trobat cap font compatible amb el vídeo."
}

View File

@ -1,85 +0,0 @@
videojs.addLanguage('cs', {
"Audio Player": "Audio Přehravač",
"Video Player": "Video Přehravač",
"Play": "Přehrát",
"Pause": "Pauza",
"Replay": "Spustit znovu",
"Current Time": "Aktuální čas",
"Duration": "Doba trvání",
"Remaining Time": "Zbývající čas",
"Stream Type": "Typ streamu",
"LIVE": "ŽIVĚ",
"Loaded": "Načteno",
"Progress": "Stav",
"Progress Bar": "Ukazatel průběhu",
"progress bar timing: currentTime={1} duration={2}": "{1} z {2}",
"Fullscreen": "Celá obrazovka",
"Non-Fullscreen": "Běžné zobrazení",
"Mute": "Ztlumit zvuk",
"Unmute": "Zapnout zvuk",
"Playback Rate": "Rychlost přehrávání",
"Subtitles": "Titulky",
"subtitles off": "Bez titulků",
"Captions": "Popisky",
"captions off": "Popisky vypnuty",
"Chapters": "Kapitoly",
"Descriptions": "Popisy",
"descriptions off": "Bez popisů",
"Audio Track": "Zvuková stopa",
"Volume Level": "Hlasitost",
"You aborted the media playback": "Přehrávání videa bylo přerušeno.",
"A network error caused the media download to fail part-way.": "Video nemohlo být načteno kvůli chybě v síti.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Video nemohlo být načteno, buď kvůli chybě serveru, sítě nebo proto, že daný formát není podporován.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Váš prohlížeč nepodporuje tento formát videa.",
"No compatible source was found for this media.": "Nevalidní zadaný zdroj videa.",
"The media is encrypted and we do not have the keys to decrypt it.": "Chyba při dešifrování videa.",
"Play Video": "Přehrát video",
"Close": "Zavřit",
"Close Modal Dialog": "Zavřít okno",
"Modal Window": "Modální okno",
"This is a modal window": "Toto je modální okno",
"This modal can be closed by pressing the Escape key or activating the close button.": "Toto okno se dá zavřít křížkem nebo klávesou Esc.",
", opens captions settings dialog": ", otevřít okno pro nastavení popisků",
", opens subtitles settings dialog": ", otevřít okno pro nastavení titulků",
", opens descriptions settings dialog": ", otevře okno pro nastavení popisků pro nevidomé",
", selected": ", vybráno",
"captions settings": "nastavení popisků",
"subtitles settings": "nastavení titulků",
"descriptions settings": "nastavení popisků pro nevidomé",
"Text": "Titulky",
"White": "Bílé",
"Black": "Černé",
"Red": "Červené",
"Green": "Zelené",
"Blue": "Modré",
"Yellow": "Žluté",
"Magenta": "Fialové",
"Cyan": "Azurové",
"Background": "Pozadí titulků",
"Window": "Okno",
"Transparent": "Průhledné",
"Semi-Transparent": "Poloprůhledné",
"Opaque": "Neprůhledné",
"Font Size": "Velikost písma",
"Text Edge Style": "Okraje písma",
"None": "Bez okraje",
"Raised": "Zvýšený",
"Depressed": "Propadlý",
"Uniform": "Rovnoměrný",
"Dropshadow": "Stínovaný",
"Font Family": "Rodina písma",
"Proportional Sans-Serif": "Proporcionální bezpatkové",
"Monospace Sans-Serif": "Monospace bezpatkové",
"Proportional Serif": "Proporcionální patkové",
"Monospace Serif": "Monospace patkové",
"Casual": "Hravé",
"Script": "Ručně psané",
"Small Caps": "Malé kapitálky",
"Reset": "Obnovit",
"restore all settings to the default values": "Vrátit nastavení do výchozího stavu",
"Done": "Hotovo",
"Caption Settings Dialog": "Okno s nastavením titulků",
"Beginning of dialog window. Escape will cancel and close the window.": "Začátek dialogového okna. Klávesa Esc okno zavře.",
"End of dialog window.": "Konec dialogového okna.",
"{1} is loading.": "{1} se načítá."
});

View File

@ -1,85 +0,0 @@
{
"Audio Player": "Audio Přehravač",
"Video Player": "Video Přehravač",
"Play": "Přehrát",
"Pause": "Pauza",
"Replay": "Spustit znovu",
"Current Time": "Aktuální čas",
"Duration": "Doba trvání",
"Remaining Time": "Zbývající čas",
"Stream Type": "Typ streamu",
"LIVE": "ŽIVĚ",
"Loaded": "Načteno",
"Progress": "Stav",
"Progress Bar": "Ukazatel průběhu",
"progress bar timing: currentTime={1} duration={2}": "{1} z {2}",
"Fullscreen": "Celá obrazovka",
"Non-Fullscreen": "Běžné zobrazení",
"Mute": "Ztlumit zvuk",
"Unmute": "Zapnout zvuk",
"Playback Rate": "Rychlost přehrávání",
"Subtitles": "Titulky",
"subtitles off": "Bez titulků",
"Captions": "Popisky",
"captions off": "Popisky vypnuty",
"Chapters": "Kapitoly",
"Descriptions": "Popisy",
"descriptions off": "Bez popisů",
"Audio Track": "Zvuková stopa",
"Volume Level": "Hlasitost",
"You aborted the media playback": "Přehrávání videa bylo přerušeno.",
"A network error caused the media download to fail part-way.": "Video nemohlo být načteno kvůli chybě v síti.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Video nemohlo být načteno, buď kvůli chybě serveru, sítě nebo proto, že daný formát není podporován.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Váš prohlížeč nepodporuje tento formát videa.",
"No compatible source was found for this media.": "Nevalidní zadaný zdroj videa.",
"The media is encrypted and we do not have the keys to decrypt it.": "Chyba při dešifrování videa.",
"Play Video": "Přehrát video",
"Close": "Zavřit",
"Close Modal Dialog": "Zavřít okno",
"Modal Window": "Modální okno",
"This is a modal window": "Toto je modální okno",
"This modal can be closed by pressing the Escape key or activating the close button.": "Toto okno se dá zavřít křížkem nebo klávesou Esc.",
", opens captions settings dialog": ", otevřít okno pro nastavení popisků",
", opens subtitles settings dialog": ", otevřít okno pro nastavení titulků",
", opens descriptions settings dialog": ", otevře okno pro nastavení popisků pro nevidomé",
", selected": ", vybráno",
"captions settings": "nastavení popisků",
"subtitles settings": "nastavení titulků",
"descriptions settings": "nastavení popisků pro nevidomé",
"Text": "Titulky",
"White": "Bílé",
"Black": "Černé",
"Red": "Červené",
"Green": "Zelené",
"Blue": "Modré",
"Yellow": "Žluté",
"Magenta": "Fialové",
"Cyan": "Azurové",
"Background": "Pozadí titulků",
"Window": "Okno",
"Transparent": "Průhledné",
"Semi-Transparent": "Poloprůhledné",
"Opaque": "Neprůhledné",
"Font Size": "Velikost písma",
"Text Edge Style": "Okraje písma",
"None": "Bez okraje",
"Raised": "Zvýšený",
"Depressed": "Propadlý",
"Uniform": "Rovnoměrný",
"Dropshadow": "Stínovaný",
"Font Family": "Rodina písma",
"Proportional Sans-Serif": "Proporcionální bezpatkové",
"Monospace Sans-Serif": "Monospace bezpatkové",
"Proportional Serif": "Proporcionální patkové",
"Monospace Serif": "Monospace patkové",
"Casual": "Hravé",
"Script": "Ručně psané",
"Small Caps": "Malé kapitálky",
"Reset": "Obnovit",
"restore all settings to the default values": "Vrátit nastavení do výchozího stavu",
"Done": "Hotovo",
"Caption Settings Dialog": "Okno s nastavením titulků",
"Beginning of dialog window. Escape will cancel and close the window.": "Začátek dialogového okna. Klávesa Esc okno zavře.",
"End of dialog window.": "Konec dialogového okna.",
"{1} is loading.": "{1} se načítá."
}

View File

@ -1,85 +0,0 @@
videojs.addLanguage('cy', {
"Audio Player": "Chwaraewr sain",
"Video Player": "Chwaraewr fideo",
"Play": "Chwarae",
"Pause": "Oedi",
"Replay": "Ailchwarae",
"Current Time": "Amser Cyfredol",
"Duration": "Parhad",
"Remaining Time": "Amser ar ôl",
"Stream Type": "Math o Ffrwd",
"LIVE": "YN FYW",
"Loaded": "Llwythwyd",
"Progress": "Cynnydd",
"Progress Bar": "Bar Cynnydd",
"progress bar timing: currentTime={1} duration={2}": "{1} o {2}",
"Fullscreen": "Sgrîn Lawn",
"Non-Fullscreen": "Ffenestr",
"Mute": "Pylu",
"Unmute": "Dad-bylu",
"Playback Rate": "Cyfradd Chwarae",
"Subtitles": "Isdeitlau",
"subtitles off": "Isdeitlau i ffwrdd",
"Captions": "Capsiynau",
"captions off": "Capsiynau i ffwrdd",
"Chapters": "Penodau",
"Descriptions": "Disgrifiadau",
"descriptions off": "disgrifiadau i ffwrdd",
"Audio Track": "Trac Sain",
"Volume Level": "Lefel Sain",
"You aborted the media playback": "Atalwyd y fideo gennych",
"A network error caused the media download to fail part-way.": "Mae gwall rhwydwaith wedi achosi methiant lawrlwytho.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Ni lwythodd y fideo, oherwydd methiant gweinydd neu rwydwaith, neu achos nid yw'r system yn cefnogi'r fformat.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Atalwyd y fideo oherwydd problem llygredd data neu oherwydd nid yw'ch porwr yn cefnogi nodweddion penodol o'r fideo.",
"No compatible source was found for this media.": "Nid oedd modd canfod ffynhonnell cytûn am y fideo hwn.",
"The media is encrypted and we do not have the keys to decrypt it.": "Mae'r fideo wedi ei amgryptio ac nid oes allweddion gennym.",
"Play Video": "Chwarae Fideo",
"Close": "Cau",
"Close Modal Dialog": "Cau Blwch Deialog Moddol",
"Modal Window": "Ffenestr Foddol",
"This is a modal window": "Mae hon yn ffenestr foddol",
"This modal can be closed by pressing the Escape key or activating the close button.": "Gallech chi gau'r ffenestr foddol hon trwy wasgu Escape neu glicio'r botwm cau.",
", opens captions settings dialog": ", yn agor gosodiadau capsiynau",
", opens subtitles settings dialog": ", yn agor gosodiadau isdeitlau",
", opens descriptions settings dialog": ", yn agor gosodiadau disgrifiadau",
", selected": ", detholwyd",
"captions settings": "gosodiadau capsiynau",
"subtitles settings": "gosodiadau isdeitlau",
"descriptions settings": "gosodiadau disgrifiadau",
"Text": "Testun",
"White": "Gwyn",
"Black": "Du",
"Red": "Coch",
"Green": "Gwyrdd",
"Blue": "Glas",
"Yellow": "Melyn",
"Magenta": "Piws",
"Cyan": "Cyan",
"Background": "Cefndir",
"Window": "Ffenestr",
"Transparent": "Tryloyw",
"Semi-Transparent": "Hanner-dryloyw",
"Opaque": "Di-draidd",
"Font Size": "Maint y Ffont",
"Text Edge Style": "Arddull Ymylon Testun",
"None": "Dim",
"Raised": "Uwch",
"Depressed": "Is",
"Uniform": "Unffurf",
"Dropshadow": "Cysgod cefn",
"Font Family": "Teulu y Ffont",
"Proportional Sans-Serif": "Heb-Seriff Cyfraneddol",
"Monospace Sans-Serif": "Heb-Seriff Unlled",
"Proportional Serif": "Seriff Gyfraneddol",
"Monospace Serif": "Seriff Unlled",
"Casual": "Llawysgrif",
"Script": "Sgript",
"Small Caps": "Prif Lythyrennau Bychain",
"Reset": "Ailosod",
"restore all settings to the default values": "Adfer yr holl osodiadau diofyn",
"Done": "Gorffenwyd",
"Caption Settings Dialog": "Blwch Gosodiadau Capsiynau",
"Beginning of dialog window. Escape will cancel and close the window.": "Dechrau ffenestr deialog. Bydd Escape yn canslo a chau'r ffenestr.",
"End of dialog window.": "Diwedd ffenestr deialog.",
"{1} is loading.": "{1} yn llwytho."
});

View File

@ -1,85 +0,0 @@
{
"Audio Player":"Chwaraewr sain",
"Video Player":"Chwaraewr fideo",
"Play":"Chwarae",
"Pause":"Oedi",
"Replay":"Ailchwarae",
"Current Time":"Amser Cyfredol",
"Duration":"Parhad",
"Remaining Time":"Amser ar ôl",
"Stream Type":"Math o Ffrwd",
"LIVE":"YN FYW",
"Loaded":"Llwythwyd",
"Progress":"Cynnydd",
"Progress Bar":"Bar Cynnydd",
"progress bar timing: currentTime={1} duration={2}":"{1} o {2}",
"Fullscreen":"Sgrîn Lawn",
"Non-Fullscreen":"Ffenestr",
"Mute":"Pylu",
"Unmute":"Dad-bylu",
"Playback Rate":"Cyfradd Chwarae",
"Subtitles":"Isdeitlau",
"subtitles off":"Isdeitlau i ffwrdd",
"Captions":"Capsiynau",
"captions off":"Capsiynau i ffwrdd",
"Chapters":"Penodau",
"Descriptions":"Disgrifiadau",
"descriptions off":"disgrifiadau i ffwrdd",
"Audio Track":"Trac Sain",
"Volume Level":"Lefel Sain",
"You aborted the media playback":"Atalwyd y fideo gennych",
"A network error caused the media download to fail part-way.":"Mae gwall rhwydwaith wedi achosi methiant lawrlwytho.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.":"Ni lwythodd y fideo, oherwydd methiant gweinydd neu rwydwaith, neu achos nid yw'r system yn cefnogi'r fformat.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.":"Atalwyd y fideo oherwydd problem llygredd data neu oherwydd nid yw'ch porwr yn cefnogi nodweddion penodol o'r fideo.",
"No compatible source was found for this media.":"Nid oedd modd canfod ffynhonnell cytûn am y fideo hwn.",
"The media is encrypted and we do not have the keys to decrypt it.":"Mae'r fideo wedi ei amgryptio ac nid oes allweddion gennym.",
"Play Video":"Chwarae Fideo",
"Close":"Cau",
"Close Modal Dialog":"Cau Blwch Deialog Moddol",
"Modal Window":"Ffenestr Foddol",
"This is a modal window":"Mae hon yn ffenestr foddol",
"This modal can be closed by pressing the Escape key or activating the close button.":"Gallech chi gau'r ffenestr foddol hon trwy wasgu Escape neu glicio'r botwm cau.",
", opens captions settings dialog":", yn agor gosodiadau capsiynau",
", opens subtitles settings dialog":", yn agor gosodiadau isdeitlau",
", opens descriptions settings dialog":", yn agor gosodiadau disgrifiadau",
", selected":", detholwyd",
"captions settings":"gosodiadau capsiynau",
"subtitles settings":"gosodiadau isdeitlau",
"descriptions settings":"gosodiadau disgrifiadau",
"Text":"Testun",
"White":"Gwyn",
"Black":"Du",
"Red":"Coch",
"Green":"Gwyrdd",
"Blue":"Glas",
"Yellow":"Melyn",
"Magenta":"Piws",
"Cyan":"Cyan",
"Background":"Cefndir",
"Window":"Ffenestr",
"Transparent":"Tryloyw",
"Semi-Transparent":"Hanner-dryloyw",
"Opaque":"Di-draidd",
"Font Size":"Maint y Ffont",
"Text Edge Style":"Arddull Ymylon Testun",
"None":"Dim",
"Raised":"Uwch",
"Depressed":"Is",
"Uniform":"Unffurf",
"Dropshadow":"Cysgod cefn",
"Font Family":"Teulu y Ffont",
"Proportional Sans-Serif":"Heb-Seriff Cyfraneddol",
"Monospace Sans-Serif":"Heb-Seriff Unlled",
"Proportional Serif":"Seriff Gyfraneddol",
"Monospace Serif":"Seriff Unlled",
"Casual":"Llawysgrif",
"Script":"Sgript",
"Small Caps":"Prif Lythyrennau Bychain",
"Reset":"Ailosod",
"restore all settings to the default values":"Adfer yr holl osodiadau diofyn",
"Done":"Gorffenwyd",
"Caption Settings Dialog":"Blwch Gosodiadau Capsiynau",
"Beginning of dialog window. Escape will cancel and close the window.":"Dechrau ffenestr deialog. Bydd Escape yn canslo a chau'r ffenestr.",
"End of dialog window.":"Diwedd ffenestr deialog.",
"{1} is loading.": "{1} yn llwytho."
}

View File

@ -1,26 +0,0 @@
videojs.addLanguage('da', {
"Play": "Afspil",
"Pause": "Pause",
"Current Time": "Aktuel tid",
"Duration": "Varighed",
"Remaining Time": "Resterende tid",
"Stream Type": "Stream-type",
"LIVE": "LIVE",
"Loaded": "Indlæst",
"Progress": "Status",
"Fullscreen": "Fuldskærm",
"Non-Fullscreen": "Luk fuldskærm",
"Mute": "Uden lyd",
"Unmute": "Med lyd",
"Playback Rate": "Afspilningsrate",
"Subtitles": "Undertekster",
"subtitles off": "Uden undertekster",
"Captions": "Undertekster for hørehæmmede",
"captions off": "Uden undertekster for hørehæmmede",
"Chapters": "Kapitler",
"You aborted the media playback": "Du afbrød videoafspilningen.",
"A network error caused the media download to fail part-way.": "En netværksfejl fik download af videoen til at fejle.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Videoen kunne ikke indlæses, enten fordi serveren eller netværket fejlede, eller fordi formatet ikke er understøttet.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Videoafspilningen blev afbrudt på grund af ødelagte data eller fordi videoen benyttede faciliteter som din browser ikke understøtter.",
"No compatible source was found for this media.": "Fandt ikke en kompatibel kilde for denne media."
});

View File

@ -1,26 +0,0 @@
{
"Play": "Afspil",
"Pause": "Pause",
"Current Time": "Aktuel tid",
"Duration": "Varighed",
"Remaining Time": "Resterende tid",
"Stream Type": "Stream-type",
"LIVE": "LIVE",
"Loaded": "Indlæst",
"Progress": "Status",
"Fullscreen": "Fuldskærm",
"Non-Fullscreen": "Luk fuldskærm",
"Mute": "Uden lyd",
"Unmute": "Med lyd",
"Playback Rate": "Afspilningsrate",
"Subtitles": "Undertekster",
"subtitles off": "Uden undertekster",
"Captions": "Undertekster for hørehæmmede",
"captions off": "Uden undertekster for hørehæmmede",
"Chapters": "Kapitler",
"You aborted the media playback": "Du afbrød videoafspilningen.",
"A network error caused the media download to fail part-way.": "En netværksfejl fik download af videoen til at fejle.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Videoen kunne ikke indlæses, enten fordi serveren eller netværket fejlede, eller fordi formatet ikke er understøttet.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Videoafspilningen blev afbrudt på grund af ødelagte data eller fordi videoen benyttede faciliteter som din browser ikke understøtter.",
"No compatible source was found for this media.": "Fandt ikke en kompatibel kilde for denne media."
}

View File

@ -1,84 +0,0 @@
videojs.addLanguage('de', {
"Play": "Wiedergabe",
"Pause": "Pause",
"Replay": "Erneut abspielen",
"Current Time": "Aktueller Zeitpunkt",
"Duration": "Dauer",
"Remaining Time": "Verbleibende Zeit",
"Stream Type": "Streamtyp",
"LIVE": "LIVE",
"Loaded": "Geladen",
"Progress": "Status",
"Fullscreen": "Vollbild",
"Non-Fullscreen": "Kein Vollbild",
"Mute": "Ton aus",
"Unmute": "Ton ein",
"Playback Rate": "Wiedergabegeschwindigkeit",
"Subtitles": "Untertitel",
"subtitles off": "Untertitel aus",
"Captions": "Untertitel",
"captions off": "Untertitel aus",
"Chapters": "Kapitel",
"You aborted the media playback": "Sie haben die Videowiedergabe abgebrochen.",
"A network error caused the media download to fail part-way.": "Der Videodownload ist aufgrund eines Netzwerkfehlers fehlgeschlagen.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Das Video konnte nicht geladen werden, da entweder ein Server- oder Netzwerkfehler auftrat oder das Format nicht unterstützt wird.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Die Videowiedergabe wurde entweder wegen eines Problems mit einem beschädigten Video oder wegen verwendeten Funktionen, die vom Browser nicht unterstützt werden, abgebrochen.",
"No compatible source was found for this media.": "Für dieses Video wurde keine kompatible Quelle gefunden.",
"Play Video": "Video abspielen",
"Close": "Schließen",
"Modal Window": "Modales Fenster",
"This is a modal window": "Dies ist ein modales Fenster",
"This modal can be closed by pressing the Escape key or activating the close button.": "Durch Drücken der Esc-Taste bzw. Betätigung der Schaltfläche \"Schließen\" wird dieses modale Fenster geschlossen.",
", opens captions settings dialog": ", öffnet Einstellungen für Untertitel",
", opens subtitles settings dialog": ", öffnet Einstellungen für Untertitel",
", selected": ", ausgewählt",
"captions settings": "Untertiteleinstellungen",
"subtitles settings": "Untertiteleinstellungen",
"descriptions settings": "Einstellungen für Beschreibungen",
"Close Modal Dialog": "Modales Fenster schließen",
"Descriptions": "Beschreibungen",
"descriptions off": "Beschreibungen aus",
"The media is encrypted and we do not have the keys to decrypt it.": "Die Entschlüsselungsschlüssel für den verschlüsselten Medieninhalt sind nicht verfügbar.",
", opens descriptions settings dialog": ", öffnet Einstellungen für Beschreibungen",
"Audio Track": "Tonspur",
"Text": "Schrift",
"White": "Weiß",
"Black": "Schwarz",
"Red": "Rot",
"Green": "Grün",
"Blue": "Blau",
"Yellow": "Gelb",
"Magenta": "Magenta",
"Cyan": "Türkis",
"Background": "Hintergrund",
"Window": "Fenster",
"Transparent": "Durchsichtig",
"Semi-Transparent": "Halbdurchsichtig",
"Opaque": "Undurchsichtig",
"Font Size": "Schriftgröße",
"Text Edge Style": "Textkantenstil",
"None": "Kein",
"Raised": "Erhoben",
"Depressed": "Gedrückt",
"Uniform": "Uniform",
"Dropshadow": "Schlagschatten",
"Font Family": "Schristfamilie",
"Proportional Sans-Serif": "Proportionale Sans-Serif",
"Monospace Sans-Serif": "Monospace Sans-Serif",
"Proportional Serif": "Proportionale Serif",
"Monospace Serif": "Monospace Serif",
"Casual": "Zwanglos",
"Script": "Schreibeschrift",
"Small Caps": "Small-Caps",
"Reset": "Zurücksetzen",
"restore all settings to the default values": "Alle Einstellungen auf die Standardwerte zurücksetzen",
"Done": "Fertig",
"Caption Settings Dialog": "Einstellungsdialog für Untertitel",
"Beginning of dialog window. Escape will cancel and close the window.": "Anfang des Dialogfensters. Esc bricht ab und schließt das Fenster.",
"End of dialog window.": "Ende des Dialogfensters.",
"Audio Player": "Audio-Player",
"Video Player": "Video-Player",
"Progress Bar": "Forschrittsbalken",
"progress bar timing: currentTime={1} duration={2}": "{1} von {2}",
"Volume Level": "Lautstärkestufe"
});

View File

@ -1,84 +0,0 @@
{
"Play": "Wiedergabe",
"Pause": "Pause",
"Replay": "Erneut abspielen",
"Current Time": "Aktueller Zeitpunkt",
"Duration": "Dauer",
"Remaining Time": "Verbleibende Zeit",
"Stream Type": "Streamtyp",
"LIVE": "LIVE",
"Loaded": "Geladen",
"Progress": "Status",
"Fullscreen": "Vollbild",
"Non-Fullscreen": "Kein Vollbild",
"Mute": "Ton aus",
"Unmute": "Ton ein",
"Playback Rate": "Wiedergabegeschwindigkeit",
"Subtitles": "Untertitel",
"subtitles off": "Untertitel aus",
"Captions": "Untertitel",
"captions off": "Untertitel aus",
"Chapters": "Kapitel",
"You aborted the media playback": "Sie haben die Videowiedergabe abgebrochen.",
"A network error caused the media download to fail part-way.": "Der Videodownload ist aufgrund eines Netzwerkfehlers fehlgeschlagen.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Das Video konnte nicht geladen werden, da entweder ein Server- oder Netzwerkfehler auftrat oder das Format nicht unterstützt wird.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Die Videowiedergabe wurde entweder wegen eines Problems mit einem beschädigten Video oder wegen verwendeten Funktionen, die vom Browser nicht unterstützt werden, abgebrochen.",
"No compatible source was found for this media.": "Für dieses Video wurde keine kompatible Quelle gefunden.",
"Play Video": "Video abspielen",
"Close": "Schließen",
"Modal Window": "Modales Fenster",
"This is a modal window": "Dies ist ein modales Fenster",
"This modal can be closed by pressing the Escape key or activating the close button.": "Durch Drücken der Esc-Taste bzw. Betätigung der Schaltfläche \"Schließen\" wird dieses modale Fenster geschlossen.",
", opens captions settings dialog": ", öffnet Einstellungen für Untertitel",
", opens subtitles settings dialog": ", öffnet Einstellungen für Untertitel",
", selected": ", ausgewählt",
"captions settings": "Untertiteleinstellungen",
"subtitles settings": "Untertiteleinstellungen",
"descriptions settings": "Einstellungen für Beschreibungen",
"Close Modal Dialog": "Modales Fenster schließen",
"Descriptions": "Beschreibungen",
"descriptions off": "Beschreibungen aus",
"The media is encrypted and we do not have the keys to decrypt it.": "Die Entschlüsselungsschlüssel für den verschlüsselten Medieninhalt sind nicht verfügbar.",
", opens descriptions settings dialog": ", öffnet Einstellungen für Beschreibungen",
"Audio Track": "Tonspur",
"Text": "Schrift",
"White": "Weiß",
"Black": "Schwarz",
"Red": "Rot",
"Green": "Grün",
"Blue": "Blau",
"Yellow": "Gelb",
"Magenta": "Magenta",
"Cyan": "Türkis",
"Background": "Hintergrund",
"Window": "Fenster",
"Transparent": "Durchsichtig",
"Semi-Transparent": "Halbdurchsichtig",
"Opaque": "Undurchsichtig",
"Font Size": "Schriftgröße",
"Text Edge Style": "Textkantenstil",
"None": "Kein",
"Raised": "Erhoben",
"Depressed": "Gedrückt",
"Uniform": "Uniform",
"Dropshadow": "Schlagschatten",
"Font Family": "Schristfamilie",
"Proportional Sans-Serif": "Proportionale Sans-Serif",
"Monospace Sans-Serif": "Monospace Sans-Serif",
"Proportional Serif": "Proportionale Serif",
"Monospace Serif": "Monospace Serif",
"Casual": "Zwanglos",
"Script": "Schreibeschrift",
"Small Caps": "Small-Caps",
"Reset": "Zurücksetzen",
"restore all settings to the default values": "Alle Einstellungen auf die Standardwerte zurücksetzen",
"Done": "Fertig",
"Caption Settings Dialog": "Einstellungsdialog für Untertitel",
"Beginning of dialog window. Escape will cancel and close the window.": "Anfang des Dialogfensters. Esc bricht ab und schließt das Fenster.",
"End of dialog window.": "Ende des Dialogfensters.",
"Audio Player": "Audio-Player",
"Video Player": "Video-Player",
"Progress Bar": "Forschrittsbalken",
"progress bar timing: currentTime={1} duration={2}": "{1} von {2}",
"Volume Level": "Lautstärkestufe"
}

View File

@ -1,40 +0,0 @@
videojs.addLanguage('el', {
"Play": "Aναπαραγωγή",
"Pause": "Παύση",
"Current Time": "Τρέχων χρόνος",
"Duration": "Συνολικός χρόνος",
"Remaining Time": "Υπολοιπόμενος χρόνος",
"Stream Type": "Τύπος ροής",
"LIVE": "ΖΩΝΤΑΝΑ",
"Loaded": "Φόρτωση επιτυχής",
"Progress": "Πρόοδος",
"Fullscreen": "Πλήρης οθόνη",
"Non-Fullscreen": "Έξοδος από πλήρη οθόνη",
"Mute": "Σίγαση",
"Unmute": "Kατάργηση σίγασης",
"Playback Rate": "Ρυθμός αναπαραγωγής",
"Subtitles": "Υπότιτλοι",
"subtitles off": "απόκρυψη υπότιτλων",
"Captions": "Λεζάντες",
"captions off": "απόκρυψη λεζάντων",
"Chapters": "Κεφάλαια",
"Close Modal Dialog": "Κλείσιμο παραθύρου",
"Descriptions": "Περιγραφές",
"descriptions off": "απόκρυψη περιγραφών",
"Audio Track": "Ροή ήχου",
"You aborted the media playback": "Ακυρώσατε την αναπαραγωγή",
"A network error caused the media download to fail part-way.": "Ένα σφάλμα δικτύου προκάλεσε την αποτυχία μεταφόρτωσης του αρχείου προς αναπαραγωγή.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Το αρχείο προς αναπαραγωγή δεν ήταν δυνατό να φορτωθεί είτε γιατί υπήρξε σφάλμα στον διακομιστή ή το δίκτυο, είτε γιατί ο τύπος του αρχείου δεν υποστηρίζεται.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Η αναπαραγωγή ακυρώθηκε είτε λόγω κατεστραμμένου αρχείου, είτε γιατί το αρχείο απαιτεί λειτουργίες που δεν υποστηρίζονται από το πρόγραμμα περιήγησης που χρησιμοποιείτε.",
"No compatible source was found for this media.": "Δεν βρέθηκε συμβατή πηγή αναπαραγωγής για το συγκεκριμένο αρχείο.",
"The media is encrypted and we do not have the keys to decrypt it.": "Το αρχείο προς αναπαραγωγή είναι κρυπτογραφημένo και δεν υπάρχουν τα απαραίτητα κλειδιά αποκρυπτογράφησης.",
"Play Video": "Αναπαραγωγή βίντεο",
"Close": "Κλείσιμο",
"Modal Window": "Aναδυόμενο παράθυρο",
"This is a modal window": "Το παρών είναι ένα αναδυόμενο παράθυρο",
"This modal can be closed by pressing the Escape key or activating the close button.": "Αυτό το παράθυρο μπορεί να εξαφανιστεί πατώντας το πλήκτρο Escape ή πατώντας το κουμπί κλεισίματος.",
", opens captions settings dialog": ", εμφανίζει τις ρυθμίσεις για τις λεζάντες",
", opens subtitles settings dialog": ", εμφανίζει τις ρυθμίσεις για τους υπότιτλους",
", opens descriptions settings dialog": ", εμφανίζει τις ρυθμίσεις για τις περιγραφές",
", selected": ", επιλεγμένο"
});

View File

@ -1,40 +0,0 @@
{
"Play": "Aναπαραγωγή",
"Pause": "Παύση",
"Current Time": "Τρέχων χρόνος",
"Duration": "Συνολικός χρόνος",
"Remaining Time": "Υπολοιπόμενος χρόνος",
"Stream Type": "Τύπος ροής",
"LIVE": "ΖΩΝΤΑΝΑ",
"Loaded": "Φόρτωση επιτυχής",
"Progress": "Πρόοδος",
"Fullscreen": "Πλήρης οθόνη",
"Non-Fullscreen": "Έξοδος από πλήρη οθόνη",
"Mute": "Σίγαση",
"Unmute": "Kατάργηση σίγασης",
"Playback Rate": "Ρυθμός αναπαραγωγής",
"Subtitles": "Υπότιτλοι",
"subtitles off": "απόκρυψη υπότιτλων",
"Captions": "Λεζάντες",
"captions off": "απόκρυψη λεζάντων",
"Chapters": "Κεφάλαια",
"Close Modal Dialog": "Κλείσιμο παραθύρου",
"Descriptions": "Περιγραφές",
"descriptions off": "απόκρυψη περιγραφών",
"Audio Track": "Ροή ήχου",
"You aborted the media playback": "Ακυρώσατε την αναπαραγωγή",
"A network error caused the media download to fail part-way.": "Ένα σφάλμα δικτύου προκάλεσε την αποτυχία μεταφόρτωσης του αρχείου προς αναπαραγωγή.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Το αρχείο προς αναπαραγωγή δεν ήταν δυνατό να φορτωθεί είτε γιατί υπήρξε σφάλμα στον διακομιστή ή το δίκτυο, είτε γιατί ο τύπος του αρχείου δεν υποστηρίζεται.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Η αναπαραγωγή ακυρώθηκε είτε λόγω κατεστραμμένου αρχείου, είτε γιατί το αρχείο απαιτεί λειτουργίες που δεν υποστηρίζονται από το πρόγραμμα περιήγησης που χρησιμοποιείτε.",
"No compatible source was found for this media.": "Δεν βρέθηκε συμβατή πηγή αναπαραγωγής για το συγκεκριμένο αρχείο.",
"The media is encrypted and we do not have the keys to decrypt it.": "Το αρχείο προς αναπαραγωγή είναι κρυπτογραφημένo και δεν υπάρχουν τα απαραίτητα κλειδιά αποκρυπτογράφησης.",
"Play Video": "Αναπαραγωγή βίντεο",
"Close": "Κλείσιμο",
"Modal Window": "Aναδυόμενο παράθυρο",
"This is a modal window": "Το παρών είναι ένα αναδυόμενο παράθυρο",
"This modal can be closed by pressing the Escape key or activating the close button.": "Αυτό το παράθυρο μπορεί να εξαφανιστεί πατώντας το πλήκτρο Escape ή πατώντας το κουμπί κλεισίματος.",
", opens captions settings dialog": ", εμφανίζει τις ρυθμίσεις για τις λεζάντες",
", opens subtitles settings dialog": ", εμφανίζει τις ρυθμίσεις για τους υπότιτλους",
", opens descriptions settings dialog": ", εμφανίζει τις ρυθμίσεις για τις περιγραφές",
", selected": ", επιλεγμένο"
}

View File

@ -1,87 +0,0 @@
videojs.addLanguage('en', {
"Audio Player": "Audio Player",
"Video Player": "Video Player",
"Play": "Play",
"Pause": "Pause",
"Replay": "Replay",
"Current Time": "Current Time",
"Duration": "Duration",
"Remaining Time": "Remaining Time",
"Stream Type": "Stream Type",
"LIVE": "LIVE",
"Seek to live, currently behind live": "Seek to live, currently behind live",
"Seek to live, currently playing live": "Seek to live, currently playing live",
"Loaded": "Loaded",
"Progress": "Progress",
"Progress Bar": "Progress Bar",
"progress bar timing: currentTime={1} duration={2}": "{1} of {2}",
"Fullscreen": "Fullscreen",
"Non-Fullscreen": "Non-Fullscreen",
"Mute": "Mute",
"Unmute": "Unmute",
"Playback Rate": "Playback Rate",
"Subtitles": "Subtitles",
"subtitles off": "subtitles off",
"Captions": "Captions",
"captions off": "captions off",
"Chapters": "Chapters",
"Descriptions": "Descriptions",
"descriptions off": "descriptions off",
"Audio Track": "Audio Track",
"Volume Level": "Volume Level",
"You aborted the media playback": "You aborted the media playback",
"A network error caused the media download to fail part-way.": "A network error caused the media download to fail part-way.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "The media could not be loaded, either because the server or network failed or because the format is not supported.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.",
"No compatible source was found for this media.": "No compatible source was found for this media.",
"The media is encrypted and we do not have the keys to decrypt it.": "The media is encrypted and we do not have the keys to decrypt it.",
"Play Video": "Play Video",
"Close": "Close",
"Close Modal Dialog": "Close Modal Dialog",
"Modal Window": "Modal Window",
"This is a modal window": "This is a modal window",
"This modal can be closed by pressing the Escape key or activating the close button.": "This modal can be closed by pressing the Escape key or activating the close button.",
", opens captions settings dialog": ", opens captions settings dialog",
", opens subtitles settings dialog": ", opens subtitles settings dialog",
", opens descriptions settings dialog": ", opens descriptions settings dialog",
", selected": ", selected",
"captions settings": "captions settings",
"subtitles settings": "subititles settings",
"descriptions settings": "descriptions settings",
"Text": "Text",
"White": "White",
"Black": "Black",
"Red": "Red",
"Green": "Green",
"Blue": "Blue",
"Yellow": "Yellow",
"Magenta": "Magenta",
"Cyan": "Cyan",
"Background": "Background",
"Window": "Window",
"Transparent": "Transparent",
"Semi-Transparent": "Semi-Transparent",
"Opaque": "Opaque",
"Font Size": "Font Size",
"Text Edge Style": "Text Edge Style",
"None": "None",
"Raised": "Raised",
"Depressed": "Depressed",
"Uniform": "Uniform",
"Dropshadow": "Dropshadow",
"Font Family": "Font Family",
"Proportional Sans-Serif": "Proportional Sans-Serif",
"Monospace Sans-Serif": "Monospace Sans-Serif",
"Proportional Serif": "Proportional Serif",
"Monospace Serif": "Monospace Serif",
"Casual": "Casual",
"Script": "Script",
"Small Caps": "Small Caps",
"Reset": "Reset",
"restore all settings to the default values": "restore all settings to the default values",
"Done": "Done",
"Caption Settings Dialog": "Caption Settings Dialog",
"Beginning of dialog window. Escape will cancel and close the window.": "Beginning of dialog window. Escape will cancel and close the window.",
"End of dialog window.": "End of dialog window.",
"{1} is loading.": "{1} is loading."
});

View File

@ -1,87 +0,0 @@
{
"Audio Player": "Audio Player",
"Video Player": "Video Player",
"Play": "Play",
"Pause": "Pause",
"Replay": "Replay",
"Current Time": "Current Time",
"Duration": "Duration",
"Remaining Time": "Remaining Time",
"Stream Type": "Stream Type",
"LIVE": "LIVE",
"Seek to live, currently behind live": "Seek to live, currently behind live",
"Seek to live, currently playing live": "Seek to live, currently playing live",
"Loaded": "Loaded",
"Progress": "Progress",
"Progress Bar": "Progress Bar",
"progress bar timing: currentTime={1} duration={2}": "{1} of {2}",
"Fullscreen": "Fullscreen",
"Non-Fullscreen": "Non-Fullscreen",
"Mute": "Mute",
"Unmute": "Unmute",
"Playback Rate": "Playback Rate",
"Subtitles": "Subtitles",
"subtitles off": "subtitles off",
"Captions": "Captions",
"captions off": "captions off",
"Chapters": "Chapters",
"Descriptions": "Descriptions",
"descriptions off": "descriptions off",
"Audio Track": "Audio Track",
"Volume Level": "Volume Level",
"You aborted the media playback": "You aborted the media playback",
"A network error caused the media download to fail part-way.": "A network error caused the media download to fail part-way.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "The media could not be loaded, either because the server or network failed or because the format is not supported.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.",
"No compatible source was found for this media.": "No compatible source was found for this media.",
"The media is encrypted and we do not have the keys to decrypt it.": "The media is encrypted and we do not have the keys to decrypt it.",
"Play Video": "Play Video",
"Close": "Close",
"Close Modal Dialog": "Close Modal Dialog",
"Modal Window": "Modal Window",
"This is a modal window": "This is a modal window",
"This modal can be closed by pressing the Escape key or activating the close button.": "This modal can be closed by pressing the Escape key or activating the close button.",
", opens captions settings dialog": ", opens captions settings dialog",
", opens subtitles settings dialog": ", opens subtitles settings dialog",
", opens descriptions settings dialog": ", opens descriptions settings dialog",
", selected": ", selected",
"captions settings": "captions settings",
"subtitles settings": "subititles settings",
"descriptions settings": "descriptions settings",
"Text": "Text",
"White": "White",
"Black": "Black",
"Red": "Red",
"Green": "Green",
"Blue": "Blue",
"Yellow": "Yellow",
"Magenta": "Magenta",
"Cyan": "Cyan",
"Background": "Background",
"Window": "Window",
"Transparent": "Transparent",
"Semi-Transparent": "Semi-Transparent",
"Opaque": "Opaque",
"Font Size": "Font Size",
"Text Edge Style": "Text Edge Style",
"None": "None",
"Raised": "Raised",
"Depressed": "Depressed",
"Uniform": "Uniform",
"Dropshadow": "Dropshadow",
"Font Family": "Font Family",
"Proportional Sans-Serif": "Proportional Sans-Serif",
"Monospace Sans-Serif": "Monospace Sans-Serif",
"Proportional Serif": "Proportional Serif",
"Monospace Serif": "Monospace Serif",
"Casual": "Casual",
"Script": "Script",
"Small Caps": "Small Caps",
"Reset": "Reset",
"restore all settings to the default values": "restore all settings to the default values",
"Done": "Done",
"Caption Settings Dialog": "Caption Settings Dialog",
"Beginning of dialog window. Escape will cancel and close the window.": "Beginning of dialog window. Escape will cancel and close the window.",
"End of dialog window.": "End of dialog window.",
"{1} is loading.": "{1} is loading."
}

View File

@ -1,27 +0,0 @@
videojs.addLanguage('es', {
"Play": "Reproducción",
"Play Video": "Reproducción Vídeo",
"Pause": "Pausa",
"Current Time": "Tiempo reproducido",
"Duration": "Duración total",
"Remaining Time": "Tiempo restante",
"Stream Type": "Tipo de secuencia",
"LIVE": "DIRECTO",
"Loaded": "Cargado",
"Progress": "Progreso",
"Fullscreen": "Pantalla completa",
"Non-Fullscreen": "Pantalla no completa",
"Mute": "Silenciar",
"Unmute": "No silenciado",
"Playback Rate": "Velocidad de reproducción",
"Subtitles": "Subtítulos",
"subtitles off": "Subtítulos desactivados",
"Captions": "Subtítulos especiales",
"captions off": "Subtítulos especiales desactivados",
"Chapters": "Capítulos",
"You aborted the media playback": "Ha interrumpido la reproducción del vídeo.",
"A network error caused the media download to fail part-way.": "Un error de red ha interrumpido la descarga del vídeo.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "No se ha podido cargar el vídeo debido a un fallo de red o del servidor o porque el formato es incompatible.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "La reproducción de vídeo se ha interrumpido por un problema de corrupción de datos o porque el vídeo precisa funciones que su navegador no ofrece.",
"No compatible source was found for this media.": "No se ha encontrado ninguna fuente compatible con este vídeo."
});

View File

@ -1,27 +0,0 @@
{
"Play": "Reproducción",
"Play Video": "Reproducción Vídeo",
"Pause": "Pausa",
"Current Time": "Tiempo reproducido",
"Duration": "Duración total",
"Remaining Time": "Tiempo restante",
"Stream Type": "Tipo de secuencia",
"LIVE": "DIRECTO",
"Loaded": "Cargado",
"Progress": "Progreso",
"Fullscreen": "Pantalla completa",
"Non-Fullscreen": "Pantalla no completa",
"Mute": "Silenciar",
"Unmute": "No silenciado",
"Playback Rate": "Velocidad de reproducción",
"Subtitles": "Subtítulos",
"subtitles off": "Subtítulos desactivados",
"Captions": "Subtítulos especiales",
"captions off": "Subtítulos especiales desactivados",
"Chapters": "Capítulos",
"You aborted the media playback": "Ha interrumpido la reproducción del vídeo.",
"A network error caused the media download to fail part-way.": "Un error de red ha interrumpido la descarga del vídeo.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "No se ha podido cargar el vídeo debido a un fallo de red o del servidor o porque el formato es incompatible.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "La reproducción de vídeo se ha interrumpido por un problema de corrupción de datos o porque el vídeo precisa funciones que su navegador no ofrece.",
"No compatible source was found for this media.": "No se ha encontrado ninguna fuente compatible con este vídeo."
}

View File

@ -1,84 +0,0 @@
videojs.addLanguage('fa', {
"Audio Player": "پخش کننده صوتی",
"Video Player": "پخش کننده ویدیو",
"Play": "پخش",
"Pause": "مکث",
"Replay": "بازپخش",
"Current Time": "زمان کنونی",
"Duration": "مدت زمان",
"Remaining Time": "زمان باقیمانده",
"Stream Type": "نوع استریم",
"LIVE": "زنده",
"Loaded": "بارگیری شده",
"Progress": "پیشرفت",
"Progress Bar": "نوار پیشرفت",
"progress bar timing: currentTime={1} duration={2}": "{1} از {2}",
"Fullscreen": "تمام‌صفحه",
"Non-Fullscreen": "غیر تمام‌صفحه",
"Mute": "بی صدا",
"Unmute": "صدا دار",
"Playback Rate": "سرعت پخش",
"Subtitles": "زیرنویس",
"subtitles off": "بدون زیرنویس",
"Captions": "زیرتوضیح",
"captions off": "بدون زیرتوضیح",
"Chapters": "قسمت‌ها",
"Descriptions": "توصیف",
"descriptions off": "بدون توصیف",
"Audio Track": "صوت",
"Volume Level": "میزان صدا",
"You aborted the media playback": "شما پخش را قطع کردید.",
"A network error caused the media download to fail part-way.": "خطای شبکه باعث عدم بارگیری بخشی از رسانه شد.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": ".رسانه قابل بارگیری نیست. علت آن ممکن است خطا در اتصال یا عدم پشتیبانی از فرمت باشد",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "پخش رسانه به علت اشکال در آن یا عدم پشتیبانی مرورگر شما قطع شد.",
"No compatible source was found for this media.": "هیچ منبع سازگاری، برای این رسانه پیدا نشد.",
"The media is encrypted and we do not have the keys to decrypt it.": "این رسانه رمزنگاری شده است و ما کلید رمزگشایی آن را نداریم.",
"Play Video": "پخش ویدیو",
"Close": "بستن",
"Close Modal Dialog": "بستن پنجره مودال",
"Modal Window": "پنجره مودال",
"This is a modal window": "این پنجره مودال",
"This modal can be closed by pressing the Escape key or activating the close button.": "این پنجره با دکمه اسکیپ با دکمه بستن قابل بسته شدن میباشد.",
", opens captions settings dialog": ", تنظیمات زیرتوضیح را باز میکند",
", opens subtitles settings dialog": ", تنظیمات زیرنویس را باز میکند",
", opens descriptions settings dialog": ", تنظیمات توصیفات را باز میکند",
", selected": ", انتخاب شده",
"captions settings": "تنظیمات زیرتوضیح",
"subtitles settings": "تنظیمات زیرنویس",
"descriptions settings": "تنظیمات توصیفات",
"Text": "متن",
"White": "سفید",
"Black": "سیاه",
"Red": "قرمز",
"Green": "سبز",
"Blue": "آبی",
"Yellow": "زرد",
"Magenta": "ارغوانی",
"Cyan": "سبزآبی",
"Background": "زمینه",
"Window": "پنجره",
"Transparent": "شفاف",
"Semi-Transparent": "نیمه شفاف",
"Opaque": "مات",
"Font Size": "اندازه فونت",
"Text Edge Style": "سبک لبه متن",
"None": "هیچ",
"Raised": "برآمده",
"Depressed": "فرورفته",
"Uniform": "یکنواخت",
"Dropshadow": "سایه دار",
"Font Family": "نوع فونت",
"Proportional Sans-Serif": "سنس-سریف متناسب",
"Monospace Sans-Serif": "سنس-سریف هم اندازه",
"Proportional Serif": "سریف متناسب",
"Monospace Serif": "سریف هم اندازه",
"Casual": "فانتزی",
"Script": "دست خط",
"Small Caps": "حروف کوچک به بزرگ",
"Reset": "باز نشاندن",
"restore all settings to the default values": "بازیابی همه تنظیمات به حالت اولیه",
"Done": "تکمیل",
"Caption Settings Dialog": "پنجره تنظیمات عناوین",
"Beginning of dialog window. Escape will cancel and close the window.": "ابتدای پنجره محاوره‌ای. دکمه اسکیپ پنجره را لغو میکند و میبندد.",
"End of dialog window.": "انتهای پنجره محاوره‌ای."
});

View File

@ -1,84 +0,0 @@
{
"Audio Player": "پخش کننده صوتی",
"Video Player": "پخش کننده ویدیو",
"Play": "پخش",
"Pause": "مکث",
"Replay": "بازپخش",
"Current Time": "زمان کنونی",
"Duration": "مدت زمان",
"Remaining Time": "زمان باقیمانده",
"Stream Type": "نوع استریم",
"LIVE": "زنده",
"Loaded": "بارگیری شده",
"Progress": "پیشرفت",
"Progress Bar": "نوار پیشرفت",
"progress bar timing: currentTime={1} duration={2}": "{1} از {2}",
"Fullscreen": "تمام‌صفحه",
"Non-Fullscreen": "غیر تمام‌صفحه",
"Mute": "بی صدا",
"Unmute": "صدا دار",
"Playback Rate": "سرعت پخش",
"Subtitles": "زیرنویس",
"subtitles off": "بدون زیرنویس",
"Captions": "زیرتوضیح",
"captions off": "بدون زیرتوضیح",
"Chapters": "قسمت‌ها",
"Descriptions": "توصیف",
"descriptions off": "بدون توصیف",
"Audio Track": "صوت",
"Volume Level": "میزان صدا",
"You aborted the media playback": "شما پخش را قطع کردید.",
"A network error caused the media download to fail part-way.": "خطای شبکه باعث عدم بارگیری بخشی از رسانه شد.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": ".رسانه قابل بارگیری نیست. علت آن ممکن است خطا در اتصال یا عدم پشتیبانی از فرمت باشد",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "پخش رسانه به علت اشکال در آن یا عدم پشتیبانی مرورگر شما قطع شد.",
"No compatible source was found for this media.": "هیچ منبع سازگاری، برای این رسانه پیدا نشد.",
"The media is encrypted and we do not have the keys to decrypt it.": "این رسانه رمزنگاری شده است و ما کلید رمزگشایی آن را نداریم.",
"Play Video": "پخش ویدیو",
"Close": "بستن",
"Close Modal Dialog": "بستن پنجره مودال",
"Modal Window": "پنجره مودال",
"This is a modal window": "این پنجره مودال",
"This modal can be closed by pressing the Escape key or activating the close button.": "این پنجره با دکمه اسکیپ با دکمه بستن قابل بسته شدن میباشد.",
", opens captions settings dialog": ", تنظیمات زیرتوضیح را باز میکند",
", opens subtitles settings dialog": ", تنظیمات زیرنویس را باز میکند",
", opens descriptions settings dialog": ", تنظیمات توصیفات را باز میکند",
", selected": ", انتخاب شده",
"captions settings": "تنظیمات زیرتوضیح",
"subtitles settings": "تنظیمات زیرنویس",
"descriptions settings": "تنظیمات توصیفات",
"Text": "متن",
"White": "سفید",
"Black": "سیاه",
"Red": "قرمز",
"Green": "سبز",
"Blue": "آبی",
"Yellow": "زرد",
"Magenta": "ارغوانی",
"Cyan": "سبزآبی",
"Background": "زمینه",
"Window": "پنجره",
"Transparent": "شفاف",
"Semi-Transparent": "نیمه شفاف",
"Opaque": "مات",
"Font Size": "اندازه فونت",
"Text Edge Style": "سبک لبه متن",
"None": "هیچ",
"Raised": "برآمده",
"Depressed": "فرورفته",
"Uniform": "یکنواخت",
"Dropshadow": "سایه دار",
"Font Family": "نوع فونت",
"Proportional Sans-Serif": "سنس-سریف متناسب",
"Monospace Sans-Serif": "سنس-سریف هم اندازه",
"Proportional Serif": "سریف متناسب",
"Monospace Serif": "سریف هم اندازه",
"Casual": "فانتزی",
"Script": "دست خط",
"Small Caps": "حروف کوچک به بزرگ",
"Reset": "باز نشاندن",
"restore all settings to the default values": "بازیابی همه تنظیمات به حالت اولیه",
"Done": "تکمیل",
"Caption Settings Dialog": "پنجره تنظیمات عناوین",
"Beginning of dialog window. Escape will cancel and close the window.": "ابتدای پنجره محاوره‌ای. دکمه اسکیپ پنجره را لغو میکند و میبندد.",
"End of dialog window.": "انتهای پنجره محاوره‌ای."
}

View File

@ -1,26 +0,0 @@
videojs.addLanguage('fi', {
"Play": "Toisto",
"Pause": "Tauko",
"Current Time": "Tämänhetkinen aika",
"Duration": "Kokonaisaika",
"Remaining Time": "Jäljellä oleva aika",
"Stream Type": "Lähetystyyppi",
"LIVE": "LIVE",
"Loaded": "Ladattu",
"Progress": "Edistyminen",
"Fullscreen": "Koko näyttö",
"Non-Fullscreen": "Koko näyttö pois",
"Mute": "Ääni pois",
"Unmute": "Ääni päällä",
"Playback Rate": "Toistonopeus",
"Subtitles": "Tekstitys",
"subtitles off": "Tekstitys pois",
"Captions": "Tekstitys",
"captions off": "Tekstitys pois",
"Chapters": "Kappaleet",
"You aborted the media playback": "Olet keskeyttänyt videotoiston.",
"A network error caused the media download to fail part-way.": "Verkkovirhe keskeytti videon latauksen.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Videon lataus ei onnistunut joko palvelin- tai verkkovirheestä tai väärästä formaatista johtuen.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Videon toisto keskeytyi, koska media on vaurioitunut tai käyttää käyttää toimintoja, joita selaimesi ei tue.",
"No compatible source was found for this media.": "Tälle videolle ei löytynyt yhteensopivaa lähdettä."
});

View File

@ -1,26 +0,0 @@
{
"Play": "Toisto",
"Pause": "Tauko",
"Current Time": "Tämänhetkinen aika",
"Duration": "Kokonaisaika",
"Remaining Time": "Jäljellä oleva aika",
"Stream Type": "Lähetystyyppi",
"LIVE": "LIVE",
"Loaded": "Ladattu",
"Progress": "Edistyminen",
"Fullscreen": "Koko näyttö",
"Non-Fullscreen": "Koko näyttö pois",
"Mute": "Ääni pois",
"Unmute": "Ääni päällä",
"Playback Rate": "Toistonopeus",
"Subtitles": "Tekstitys",
"subtitles off": "Tekstitys pois",
"Captions": "Tekstitys",
"captions off": "Tekstitys pois",
"Chapters": "Kappaleet",
"You aborted the media playback": "Olet keskeyttänyt videotoiston.",
"A network error caused the media download to fail part-way.": "Verkkovirhe keskeytti videon latauksen.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Videon lataus ei onnistunut joko palvelin- tai verkkovirheestä tai väärästä formaatista johtuen.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Videon toisto keskeytyi, koska media on vaurioitunut tai käyttää käyttää toimintoja, joita selaimesi ei tue.",
"No compatible source was found for this media.": "Tälle videolle ei löytynyt yhteensopivaa lähdettä."
}

View File

@ -1,84 +0,0 @@
videojs.addLanguage('fr', {
"Audio Player": "Lecteur audio",
"Video Player": "Lecteur vidéo",
"Play": "Lecture",
"Pause": "Pause",
"Replay": "Revoir",
"Current Time": "Temps actuel",
"Duration": "Durée",
"Remaining Time": "Temps restant",
"Stream Type": "Type de flux",
"LIVE": "EN DIRECT",
"Loaded": "Chargé",
"Progress": "Progression",
"Progress Bar": "Barre de progression",
"progress bar timing: currentTime={1} duration={2}": "{1} de {2}",
"Fullscreen": "Plein écran",
"Non-Fullscreen": "Fenêtré",
"Mute": "Sourdine",
"Unmute": "Son activé",
"Playback Rate": "Vitesse de lecture",
"Subtitles": "Sous-titres",
"subtitles off": "Sous-titres désactivés",
"Captions": "Sous-titres transcrits",
"captions off": "Sous-titres transcrits désactivés",
"Chapters": "Chapitres",
"Descriptions": "Descriptions",
"descriptions off": "descriptions désactivées",
"Audio Track": "Piste audio",
"Volume Level": "Niveau de volume",
"You aborted the media playback": "Vous avez interrompu la lecture de la vidéo.",
"A network error caused the media download to fail part-way.": "Une erreur de réseau a interrompu le téléchargement de la vidéo.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Cette vidéo n'a pas pu être chargée, soit parce que le serveur ou le réseau a échoué ou parce que le format n'est pas reconnu.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "La lecture de la vidéo a été interrompue à cause d'un problème de corruption ou parce que la vidéo utilise des fonctionnalités non prises en charge par votre navigateur.",
"No compatible source was found for this media.": "Aucune source compatible n'a été trouvée pour cette vidéo.",
"The media is encrypted and we do not have the keys to decrypt it.": "Le média est chiffré et nous n'avons pas les clés pour le déchiffrer.",
"Play Video": "Lire la vidéo",
"Close": "Fermer",
"Close Modal Dialog": "Fermer la boîte de dialogue modale",
"Modal Window": "Fenêtre modale",
"This is a modal window": "Ceci est une fenêtre modale",
"This modal can be closed by pressing the Escape key or activating the close button.": "Ce modal peut être fermé en appuyant sur la touche Échap ou activer le bouton de fermeture.",
", opens captions settings dialog": ", ouvrir les paramètres des sous-titres transcrits",
", opens subtitles settings dialog": ", ouvrir les paramètres des sous-titres",
", opens descriptions settings dialog": ", ouvrir les paramètres des descriptions",
", selected": ", sélectionné",
"captions settings": "Paramètres des sous-titres transcrits",
"subtitles settings": "Paramètres des sous-titres",
"descriptions settings": "Paramètres des descriptions",
"Text": "Texte",
"White": "Blanc",
"Black": "Noir",
"Red": "Rouge",
"Green": "Vert",
"Blue": "Bleu",
"Yellow": "Jaune",
"Magenta": "Magenta",
"Cyan": "Cyan",
"Background": "Arrière-plan",
"Window": "Fenêtre",
"Transparent": "Transparent",
"Semi-Transparent": "Semi-transparent",
"Opaque": "Opaque",
"Font Size": "Taille des caractères",
"Text Edge Style": "Style des contours du texte",
"None": "Aucun",
"Raised": "Élevé",
"Depressed": "Enfoncé",
"Uniform": "Uniforme",
"Dropshadow": "Ombre portée",
"Font Family": "Famille de polices",
"Proportional Sans-Serif": "Polices à chasse variable sans empattement (Proportional Sans-Serif)",
"Monospace Sans-Serif": "Polices à chasse fixe sans empattement (Monospace Sans-Serif)",
"Proportional Serif": "Polices à chasse variable avec empattement (Proportional Serif)",
"Monospace Serif": "Polices à chasse fixe avec empattement (Monospace Serif)",
"Casual": "Manuscrite",
"Script": "Scripte",
"Small Caps": "Petites capitales",
"Reset": "Réinitialiser",
"restore all settings to the default values": "Restaurer tous les paramètres aux valeurs par défaut",
"Done": "Terminé",
"Caption Settings Dialog": "Boîte de dialogue des paramètres des sous-titres transcrits",
"Beginning of dialog window. Escape will cancel and close the window.": "Début de la fenêtre de dialogue. La touche d'échappement annulera et fermera la fenêtre.",
"End of dialog window.": "Fin de la fenêtre de dialogue."
});

View File

@ -1,84 +0,0 @@
{
"Audio Player": "Lecteur audio",
"Video Player": "Lecteur vidéo",
"Play": "Lecture",
"Pause": "Pause",
"Replay": "Revoir",
"Current Time": "Temps actuel",
"Duration": "Durée",
"Remaining Time": "Temps restant",
"Stream Type": "Type de flux",
"LIVE": "EN DIRECT",
"Loaded": "Chargé",
"Progress": "Progression",
"Progress Bar": "Barre de progression",
"progress bar timing: currentTime={1} duration={2}": "{1} de {2}",
"Fullscreen": "Plein écran",
"Non-Fullscreen": "Fenêtré",
"Mute": "Sourdine",
"Unmute": "Son activé",
"Playback Rate": "Vitesse de lecture",
"Subtitles": "Sous-titres",
"subtitles off": "Sous-titres désactivés",
"Captions": "Sous-titres transcrits",
"captions off": "Sous-titres transcrits désactivés",
"Chapters": "Chapitres",
"Descriptions": "Descriptions",
"descriptions off": "descriptions désactivées",
"Audio Track": "Piste audio",
"Volume Level": "Niveau de volume",
"You aborted the media playback": "Vous avez interrompu la lecture de la vidéo.",
"A network error caused the media download to fail part-way.": "Une erreur de réseau a interrompu le téléchargement de la vidéo.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Cette vidéo n'a pas pu être chargée, soit parce que le serveur ou le réseau a échoué ou parce que le format n'est pas reconnu.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "La lecture de la vidéo a été interrompue à cause d'un problème de corruption ou parce que la vidéo utilise des fonctionnalités non prises en charge par votre navigateur.",
"No compatible source was found for this media.": "Aucune source compatible n'a été trouvée pour cette vidéo.",
"The media is encrypted and we do not have the keys to decrypt it.": "Le média est chiffré et nous n'avons pas les clés pour le déchiffrer.",
"Play Video": "Lire la vidéo",
"Close": "Fermer",
"Close Modal Dialog": "Fermer la boîte de dialogue modale",
"Modal Window": "Fenêtre modale",
"This is a modal window": "Ceci est une fenêtre modale",
"This modal can be closed by pressing the Escape key or activating the close button.": "Ce modal peut être fermé en appuyant sur la touche Échap ou activer le bouton de fermeture.",
", opens captions settings dialog": ", ouvrir les paramètres des sous-titres transcrits",
", opens subtitles settings dialog": ", ouvrir les paramètres des sous-titres",
", opens descriptions settings dialog": ", ouvrir les paramètres des descriptions",
", selected": ", sélectionné",
"captions settings": "Paramètres des sous-titres transcrits",
"subtitles settings": "Paramètres des sous-titres",
"descriptions settings": "Paramètres des descriptions",
"Text": "Texte",
"White": "Blanc",
"Black": "Noir",
"Red": "Rouge",
"Green": "Vert",
"Blue": "Bleu",
"Yellow": "Jaune",
"Magenta": "Magenta",
"Cyan": "Cyan",
"Background": "Arrière-plan",
"Window": "Fenêtre",
"Transparent": "Transparent",
"Semi-Transparent": "Semi-transparent",
"Opaque": "Opaque",
"Font Size": "Taille des caractères",
"Text Edge Style": "Style des contours du texte",
"None": "Aucun",
"Raised": "Élevé",
"Depressed": "Enfoncé",
"Uniform": "Uniforme",
"Dropshadow": "Ombre portée",
"Font Family": "Famille de polices",
"Proportional Sans-Serif": "Polices à chasse variable sans empattement (Proportional Sans-Serif)",
"Monospace Sans-Serif": "Polices à chasse fixe sans empattement (Monospace Sans-Serif)",
"Proportional Serif": "Polices à chasse variable avec empattement (Proportional Serif)",
"Monospace Serif": "Polices à chasse fixe avec empattement (Monospace Serif)",
"Casual": "Manuscrite",
"Script": "Scripte",
"Small Caps": "Petites capitales",
"Reset": "Réinitialiser",
"restore all settings to the default values": "Restaurer tous les paramètres aux valeurs par défaut",
"Done": "Terminé",
"Caption Settings Dialog": "Boîte de dialogue des paramètres des sous-titres transcrits",
"Beginning of dialog window. Escape will cancel and close the window.": "Début de la fenêtre de dialogue. La touche d'échappement annulera et fermera la fenêtre.",
"End of dialog window.": "Fin de la fenêtre de dialogue."
}

View File

@ -1,87 +0,0 @@
videojs.addLanguage('gl', {
"Audio Player": "Reprodutor de son",
"Video Player": "Reprodutor de vídeo",
"Play": "Reproducir",
"Pause": "Pausa",
"Replay": "Repetir",
"Current Time": "Tempo reproducido",
"Duration": "Duración",
"Remaining Time": "Tempo restante",
"Stream Type": "Tipo de fluxo",
"LIVE": "EN DIRECTO",
"Seek to live, currently behind live": "Buscando directo, actualmente tras en directo",
"Seek to live, currently playing live": "Buscando directo, actualmente reproducindo en directo",
"Loaded": "Cargado",
"Progress": "Progresión",
"Progress Bar": "Barra de progreso",
"progress bar timing: currentTime={1} duration={2}": "{1} de {2}",
"Fullscreen": "Pantalla completa",
"Non-Fullscreen": "Xanela",
"Mute": "Silenciar",
"Unmute": "Son activado",
"Playback Rate": "Velocidade de reprodución",
"Subtitles": "Subtítulos",
"subtitles off": "subtítulos desactivados",
"Captions": "Subtítulos para xordos",
"captions off": "subtítulos para xordos desactivados",
"Chapters": "Capítulos",
"Descriptions": "Descricións",
"descriptions off": "descricións desactivadas",
"Audio Track": "Pista de son",
"Volume Level": "Nivel do volume",
"You aborted the media playback": "Vostede interrompeu a reprodución do medio.",
"A network error caused the media download to fail part-way.": "Un erro de rede interrompeu a descarga do medio.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Non foi posíbel cargar o medio por mor dun fallo de rede ou do servidor ou porque o formato non é compatíbel.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Interrompeuse a reprodución do medio por mor dun problema de estragamento dos datos ou porque o medio precisa funcións que o seu navegador non ofrece.",
"No compatible source was found for this media.": "Non se atopou ningunha orixe compatíbel con este vídeo.",
"The media is encrypted and we do not have the keys to decrypt it.": "O medio está cifrado e non temos as chaves para descifralo .",
"Play Video": "Reproducir vídeo",
"Close": "Pechar",
"Close Modal Dialog": "Pechar a caixa de diálogo modal",
"Modal Window": "Xanela modal",
"This is a modal window": "Esta é unha xanela modal",
"This modal can be closed by pressing the Escape key or activating the close button.": "Este diálogo modal pódese pechar premendo a tecla Escape ou activando o botón de pechar.",
", opens captions settings dialog": ", abre o diálogo de axustes dos subtítulos para xordos",
", opens subtitles settings dialog": ", abre o diálogo de axustes dos subtítulos",
", opens descriptions settings dialog": ", abre o diálogo de axustes das descricións",
", selected": ", séleccionado",
"captions settings": "axustes dos subtítulos para xordos",
"subtitles settings": "axustes dos subtítulos",
"descriptions settings": "axustes das descricións",
"Text": "Texto",
"White": "Branco",
"Black": "Negro",
"Red": "Vermello",
"Green": "Verde",
"Blue": "Azul",
"Yellow": "Marelo",
"Magenta": "Maxenta",
"Cyan": "Cian",
"Background": "Fondo",
"Window": "Xanela",
"Transparent": "Transparente",
"Semi-Transparent": "Semi-transparente",
"Opaque": "Opaca",
"Font Size": "Tamaño das letras",
"Text Edge Style": "Estilo do bordos do texto",
"None": "Ningún",
"Raised": "Érguida",
"Depressed": "Caída",
"Uniform": "Uniforme",
"Dropshadow": "Sombra caída",
"Font Family": "Familia de letras",
"Proportional Sans-Serif": "Sans-Serif proporcional",
"Monospace Sans-Serif": "Sans-Serif monoespazo (caixa fixa)",
"Proportional Serif": "Serif proporcional",
"Monospace Serif": "Serif monoespazo (caixa fixa)",
"Casual": "Manuscrito",
"Script": "Itálica",
"Small Caps": "Pequenas maiúsculas",
"Reset": "Reiniciar",
"restore all settings to the default values": "restaurar todos os axustes aos valores predeterminados",
"Done": "Feito",
"Caption Settings Dialog": "Diálogo de axustes dos subtítulos para xordos",
"Beginning of dialog window. Escape will cancel and close the window.": "Inicio da xanela de diálogo. A tecla Escape cancelará e pechará a xanela.",
"End of dialog window.": "Fin da xanela de diálogo.",
"{1} is loading.": "{1} está a cargar."
});

View File

@ -1,87 +0,0 @@
{
"Audio Player": "Reprodutor de son",
"Video Player": "Reprodutor de vídeo",
"Play": "Reproducir",
"Pause": "Pausa",
"Replay": "Repetir",
"Current Time": "Tempo reproducido",
"Duration": "Duración",
"Remaining Time": "Tempo restante",
"Stream Type": "Tipo de fluxo",
"LIVE": "EN DIRECTO",
"Seek to live, currently behind live": "Buscando directo, actualmente tras en directo",
"Seek to live, currently playing live": "Buscando directo, actualmente reproducindo en directo",
"Loaded": "Cargado",
"Progress": "Progresión",
"Progress Bar": "Barra de progreso",
"progress bar timing: currentTime={1} duration={2}": "{1} de {2}",
"Fullscreen": "Pantalla completa",
"Non-Fullscreen": "Xanela",
"Mute": "Silenciar",
"Unmute": "Son activado",
"Playback Rate": "Velocidade de reprodución",
"Subtitles": "Subtítulos",
"subtitles off": "subtítulos desactivados",
"Captions": "Subtítulos para xordos",
"captions off": "subtítulos para xordos desactivados",
"Chapters": "Capítulos",
"Descriptions": "Descricións",
"descriptions off": "descricións desactivadas",
"Audio Track": "Pista de son",
"Volume Level": "Nivel do volume",
"You aborted the media playback": "Vostede interrompeu a reprodución do medio.",
"A network error caused the media download to fail part-way.": "Un erro de rede interrompeu a descarga do medio.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Non foi posíbel cargar o medio por mor dun fallo de rede ou do servidor ou porque o formato non é compatíbel.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Interrompeuse a reprodución do medio por mor dun problema de estragamento dos datos ou porque o medio precisa funcións que o seu navegador non ofrece.",
"No compatible source was found for this media.": "Non se atopou ningunha orixe compatíbel con este vídeo.",
"The media is encrypted and we do not have the keys to decrypt it.": "O medio está cifrado e non temos as chaves para descifralo .",
"Play Video": "Reproducir vídeo",
"Close": "Pechar",
"Close Modal Dialog": "Pechar a caixa de diálogo modal",
"Modal Window": "Xanela modal",
"This is a modal window": "Esta é unha xanela modal",
"This modal can be closed by pressing the Escape key or activating the close button.": "Este diálogo modal pódese pechar premendo a tecla Escape ou activando o botón de pechar.",
", opens captions settings dialog": ", abre o diálogo de axustes dos subtítulos para xordos",
", opens subtitles settings dialog": ", abre o diálogo de axustes dos subtítulos",
", opens descriptions settings dialog": ", abre o diálogo de axustes das descricións",
", selected": ", séleccionado",
"captions settings": "axustes dos subtítulos para xordos",
"subtitles settings": "axustes dos subtítulos",
"descriptions settings": "axustes das descricións",
"Text": "Texto",
"White": "Branco",
"Black": "Negro",
"Red": "Vermello",
"Green": "Verde",
"Blue": "Azul",
"Yellow": "Marelo",
"Magenta": "Maxenta",
"Cyan": "Cian",
"Background": "Fondo",
"Window": "Xanela",
"Transparent": "Transparente",
"Semi-Transparent": "Semi-transparente",
"Opaque": "Opaca",
"Font Size": "Tamaño das letras",
"Text Edge Style": "Estilo do bordos do texto",
"None": "Ningún",
"Raised": "Érguida",
"Depressed": "Caída",
"Uniform": "Uniforme",
"Dropshadow": "Sombra caída",
"Font Family": "Familia de letras",
"Proportional Sans-Serif": "Sans-Serif proporcional",
"Monospace Sans-Serif": "Sans-Serif monoespazo (caixa fixa)",
"Proportional Serif": "Serif proporcional",
"Monospace Serif": "Serif monoespazo (caixa fixa)",
"Casual": "Manuscrito",
"Script": "Itálica",
"Small Caps": "Pequenas maiúsculas",
"Reset": "Reiniciar",
"restore all settings to the default values": "restaurar todos os axustes aos valores predeterminados",
"Done": "Feito",
"Caption Settings Dialog": "Diálogo de axustes dos subtítulos para xordos",
"Beginning of dialog window. Escape will cancel and close the window.": "Inicio da xanela de diálogo. A tecla Escape cancelará e pechará a xanela.",
"End of dialog window.": "Fin da xanela de diálogo.",
"{1} is loading.": "{1} está a cargar."
}

View File

@ -1,84 +0,0 @@
videojs.addLanguage('he', {
"Audio Player": "נַגָּן שמע",
"Video Player": "נַגָּן וידאו",
"Play": "נַגֵּן",
"Pause": "השהה",
"Replay": "נַגֵּן שוב",
"Current Time": "זמן נוכחי",
"Duration": "זמן כולל",
"Remaining Time": "זמן נותר",
"Stream Type": "סוג Stream",
"LIVE": "שידור חי",
"Loaded": "נטען",
"Progress": "התקדמות",
"Progress Bar": "סרגל התקדמות",
"progress bar timing: currentTime={1} duration={2}": "{1} מתוך {2}",
"Fullscreen": "מסך מלא",
"Non-Fullscreen": "מסך לא מלא",
"Mute": "השתק",
"Unmute": "בטל השתקה",
"Playback Rate": "קצב ניגון",
"Subtitles": "כתוביות",
"subtitles off": "כתוביות כבויות",
"Captions": "כיתובים",
"captions off": "כיתובים כבויים",
"Chapters": "פרקים",
"Descriptions": "תיאורים",
"descriptions off": "תיאורים כבויים",
"Audio Track": "רצועת שמע",
"Volume Level": "רמת ווליום",
"You aborted the media playback": "ביטלת את השמעת המדיה",
"A network error caused the media download to fail part-way.": "שגיאת רשת גרמה להורדת המדיה להיכשל באמצע.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "לא ניתן לטעון את המדיה, או מכיוון שהרשת או השרת כשלו או מכיוון שהפורמט אינו נתמך.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "השמעת המדיה בוטלה בשל בעית השחטת מידע או מכיוון שהמדיה עשתה שימוש בתכונות שהדפדפן שלך לא תמך בהן.",
"No compatible source was found for this media.": "לא נמצא מקור תואם עבור מדיה זו.",
"The media is encrypted and we do not have the keys to decrypt it.": "המדיה מוצפנת ואין בידינו את המפתח כדי לפענח אותה.",
"Play Video": "נַגֵּן וידאו",
"Close": "סְגוֹר",
"Close Modal Dialog": "סְגוֹר דו-שיח מודאלי",
"Modal Window": "חלון מודאלי",
"This is a modal window": "זהו חלון מודאלי",
"This modal can be closed by pressing the Escape key or activating the close button.": "ניתן לסגור חלון מודאלי זה ע\"י לחיצה על כפתור ה-Escape או הפעלת כפתור הסגירה.",
", opens captions settings dialog": ", פותח חלון הגדרות כיתובים",
", opens subtitles settings dialog": ", פותח חלון הגדרות כתוביות",
", opens descriptions settings dialog": ", פותח חלון הגדרות תיאורים",
", selected": ", נבחר/ו",
"captions settings": "הגדרות כיתובים",
"subtitles settings": "הגדרות כתוביות",
"descriptions settings": "הגדרות תיאורים",
"Text": "טקסט",
"White": "לבן",
"Black": "שחור",
"Red": "אדום",
"Green": "ירוק",
"Blue": "כחול",
"Yellow": "צהוב",
"Magenta": "מַגֶ'נטָה",
"Cyan": "טורקיז",
"Background": "רקע",
"Window": "חלון",
"Transparent": "שקוף",
"Semi-Transparent": "שקוף למחצה",
"Opaque": "אָטוּם",
"Font Size": "גודל גופן",
"Text Edge Style": "סגנון קצוות טקסט",
"None": "ללא",
"Raised": "מורם",
"Depressed": "מורד",
"Uniform": "אחיד",
"Dropshadow": "הטלת צל",
"Font Family": "משפחת גופן",
"Proportional Sans-Serif": "פרופורציוני וללא תגיות (Proportional Sans-Serif)",
"Monospace Sans-Serif": "ברוחב אחיד וללא תגיות (Monospace Sans-Serif)",
"Proportional Serif": "פרופורציוני ועם תגיות (Proportional Serif)",
"Monospace Serif": "ברוחב אחיד ועם תגיות (Monospace Serif)",
"Casual": "אַגָבִי",
"Script": "תסריט",
"Small Caps": "אותיות קטנות",
"Reset": "אִפּוּס",
"restore all settings to the default values": "שחזר את כל ההגדרות לערכי ברירת המחדל",
"Done": "בוצע",
"Caption Settings Dialog": "דו-שיח הגדרות כיתובים",
"Beginning of dialog window. Escape will cancel and close the window.": "תחילת חלון דו-שיח. Escape יבטל ויסגור את החלון",
"End of dialog window.": "סוף חלון דו-שיח."
});

View File

@ -1,84 +0,0 @@
{
"Audio Player": "נַגָּן שמע",
"Video Player": "נַגָּן וידאו",
"Play": "נַגֵּן",
"Pause": "השהה",
"Replay": "נַגֵּן שוב",
"Current Time": "זמן נוכחי",
"Duration": "זמן כולל",
"Remaining Time": "זמן נותר",
"Stream Type": "סוג Stream",
"LIVE": "שידור חי",
"Loaded": "נטען",
"Progress": "התקדמות",
"Progress Bar": "סרגל התקדמות",
"progress bar timing: currentTime={1} duration={2}": "{1} מתוך {2}",
"Fullscreen": "מסך מלא",
"Non-Fullscreen": "מסך לא מלא",
"Mute": "השתק",
"Unmute": "בטל השתקה",
"Playback Rate": "קצב ניגון",
"Subtitles": "כתוביות",
"subtitles off": "כתוביות כבויות",
"Captions": "כיתובים",
"captions off": "כיתובים כבויים",
"Chapters": "פרקים",
"Descriptions": "תיאורים",
"descriptions off": "תיאורים כבויים",
"Audio Track": "רצועת שמע",
"Volume Level": "רמת ווליום",
"You aborted the media playback": "ביטלת את השמעת המדיה",
"A network error caused the media download to fail part-way.": "שגיאת רשת גרמה להורדת המדיה להיכשל באמצע.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "לא ניתן לטעון את המדיה, או מכיוון שהרשת או השרת כשלו או מכיוון שהפורמט אינו נתמך.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "השמעת המדיה בוטלה בשל בעית השחטת מידע או מכיוון שהמדיה עשתה שימוש בתכונות שהדפדפן שלך לא תמך בהן.",
"No compatible source was found for this media.": "לא נמצא מקור תואם עבור מדיה זו.",
"The media is encrypted and we do not have the keys to decrypt it.": "המדיה מוצפנת ואין בידינו את המפתח כדי לפענח אותה.",
"Play Video": "נַגֵּן וידאו",
"Close": "סְגוֹר",
"Close Modal Dialog": "סְגוֹר דו-שיח מודאלי",
"Modal Window": "חלון מודאלי",
"This is a modal window": "זהו חלון מודאלי",
"This modal can be closed by pressing the Escape key or activating the close button.": "ניתן לסגור חלון מודאלי זה ע\"י לחיצה על כפתור ה-Escape או הפעלת כפתור הסגירה.",
", opens captions settings dialog": ", פותח חלון הגדרות כיתובים",
", opens subtitles settings dialog": ", פותח חלון הגדרות כתוביות",
", opens descriptions settings dialog": ", פותח חלון הגדרות תיאורים",
", selected": ", נבחר/ו",
"captions settings": "הגדרות כיתובים",
"subtitles settings": "הגדרות כתוביות",
"descriptions settings": "הגדרות תיאורים",
"Text": "טקסט",
"White": "לבן",
"Black": "שחור",
"Red": "אדום",
"Green": "ירוק",
"Blue": "כחול",
"Yellow": "צהוב",
"Magenta": "מַגֶ'נטָה",
"Cyan": "טורקיז",
"Background": "רקע",
"Window": "חלון",
"Transparent": "שקוף",
"Semi-Transparent": "שקוף למחצה",
"Opaque": "אָטוּם",
"Font Size": "גודל גופן",
"Text Edge Style": "סגנון קצוות טקסט",
"None": "ללא",
"Raised": "מורם",
"Depressed": "מורד",
"Uniform": "אחיד",
"Dropshadow": "הטלת צל",
"Font Family": "משפחת גופן",
"Proportional Sans-Serif": "פרופורציוני וללא תגיות (Proportional Sans-Serif)",
"Monospace Sans-Serif": "ברוחב אחיד וללא תגיות (Monospace Sans-Serif)",
"Proportional Serif": "פרופורציוני ועם תגיות (Proportional Serif)",
"Monospace Serif": "ברוחב אחיד ועם תגיות (Monospace Serif)",
"Casual": "אַגָבִי",
"Script": "תסריט",
"Small Caps": "אותיות קטנות",
"Reset": "אִפּוּס",
"restore all settings to the default values": "שחזר את כל ההגדרות לערכי ברירת המחדל",
"Done": "בוצע",
"Caption Settings Dialog": "דו-שיח הגדרות כיתובים",
"Beginning of dialog window. Escape will cancel and close the window.": "תחילת חלון דו-שיח. Escape יבטל ויסגור את החלון",
"End of dialog window.": "סוף חלון דו-שיח."
}

View File

@ -1,26 +0,0 @@
videojs.addLanguage('hr', {
"Play": "Pusti",
"Pause": "Pauza",
"Current Time": "Trenutno vrijeme",
"Duration": "Vrijeme trajanja",
"Remaining Time": "Preostalo vrijeme",
"Stream Type": "Način strimovanja",
"LIVE": "UŽIVO",
"Loaded": "Učitan",
"Progress": "Progres",
"Fullscreen": "Puni ekran",
"Non-Fullscreen": "Mali ekran",
"Mute": "Prigušen",
"Unmute": "Ne-prigušen",
"Playback Rate": "Stopa reprodukcije",
"Subtitles": "Podnaslov",
"subtitles off": "Podnaslov deaktiviran",
"Captions": "Titlovi",
"captions off": "Titlovi deaktivirani",
"Chapters": "Poglavlja",
"You aborted the media playback": "Isključili ste reprodukciju videa.",
"A network error caused the media download to fail part-way.": "Video se prestao preuzimati zbog greške na mreži.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Video se ne može reproducirati zbog servera, greške u mreži ili je format ne podržan.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Reprodukcija videa je zaustavljenja zbog greške u formatu ili zbog verzije vašeg pretraživača.",
"No compatible source was found for this media.": "Nije nađen nijedan kompatibilan izvor ovog videa."
});

View File

@ -1,26 +0,0 @@
{
"Play": "Pusti",
"Pause": "Pauza",
"Current Time": "Trenutno vrijeme",
"Duration": "Vrijeme trajanja",
"Remaining Time": "Preostalo vrijeme",
"Stream Type": "Način strimovanja",
"LIVE": "UŽIVO",
"Loaded": "Učitan",
"Progress": "Progres",
"Fullscreen": "Puni ekran",
"Non-Fullscreen": "Mali ekran",
"Mute": "Prigušen",
"Unmute": "Ne-prigušen",
"Playback Rate": "Stopa reprodukcije",
"Subtitles": "Podnaslov",
"subtitles off": "Podnaslov deaktiviran",
"Captions": "Titlovi",
"captions off": "Titlovi deaktivirani",
"Chapters": "Poglavlja",
"You aborted the media playback": "Isključili ste reprodukciju videa.",
"A network error caused the media download to fail part-way.": "Video se prestao preuzimati zbog greške na mreži.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Video se ne može reproducirati zbog servera, greške u mreži ili je format ne podržan.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Reprodukcija videa je zaustavljenja zbog greške u formatu ili zbog verzije vašeg pretraživača.",
"No compatible source was found for this media.": "Nije nađen nijedan kompatibilan izvor ovog videa."
}

View File

@ -1,26 +0,0 @@
videojs.addLanguage('hu', {
"Play": "Lejátszás",
"Pause": "Szünet",
"Current Time": "Aktuális időpont",
"Duration": "Hossz",
"Remaining Time": "Hátralévő idő",
"Stream Type": "Adatfolyam típusa",
"LIVE": "ÉLŐ",
"Loaded": "Betöltve",
"Progress": "Állapot",
"Fullscreen": "Teljes képernyő",
"Non-Fullscreen": "Normál méret",
"Mute": "Némítás",
"Unmute": "Némítás kikapcsolva",
"Playback Rate": "Lejátszási sebesség",
"Subtitles": "Feliratok",
"subtitles off": "Feliratok kikapcsolva",
"Captions": "Magyarázó szöveg",
"captions off": "Magyarázó szöveg kikapcsolva",
"Chapters": "Fejezetek",
"You aborted the media playback": "Leállította a lejátszást",
"A network error caused the media download to fail part-way.": "Hálózati hiba miatt a videó részlegesen töltődött le.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "A videó nem tölthető be hálózati vagy kiszolgálói hiba miatt, vagy a formátuma nem támogatott.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "A lejátszás adatsérülés miatt leállt, vagy a videó egyes tulajdonságait a böngészője nem támogatja.",
"No compatible source was found for this media.": "Nincs kompatibilis forrás ehhez a videóhoz."
});

View File

@ -1,26 +0,0 @@
{
"Play": "Lejátszás",
"Pause": "Szünet",
"Current Time": "Aktuális időpont",
"Duration": "Hossz",
"Remaining Time": "Hátralévő idő",
"Stream Type": "Adatfolyam típusa",
"LIVE": "ÉLŐ",
"Loaded": "Betöltve",
"Progress": "Állapot",
"Fullscreen": "Teljes képernyő",
"Non-Fullscreen": "Normál méret",
"Mute": "Némítás",
"Unmute": "Némítás kikapcsolva",
"Playback Rate": "Lejátszási sebesség",
"Subtitles": "Feliratok",
"subtitles off": "Feliratok kikapcsolva",
"Captions": "Magyarázó szöveg",
"captions off": "Magyarázó szöveg kikapcsolva",
"Chapters": "Fejezetek",
"You aborted the media playback": "Leállította a lejátszást",
"A network error caused the media download to fail part-way.": "Hálózati hiba miatt a videó részlegesen töltődött le.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "A videó nem tölthető be hálózati vagy kiszolgálói hiba miatt, vagy a formátuma nem támogatott.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "A lejátszás adatsérülés miatt leállt, vagy a videó egyes tulajdonságait a böngészője nem támogatja.",
"No compatible source was found for this media.": "Nincs kompatibilis forrás ehhez a videóhoz."
}

View File

@ -1,26 +0,0 @@
videojs.addLanguage('it', {
"Play": "Play",
"Pause": "Pausa",
"Current Time": "Orario attuale",
"Duration": "Durata",
"Remaining Time": "Tempo rimanente",
"Stream Type": "Tipo del Streaming",
"LIVE": "LIVE",
"Loaded": "Caricato",
"Progress": "Stato",
"Fullscreen": "Schermo intero",
"Non-Fullscreen": "Chiudi schermo intero",
"Mute": "Muto",
"Unmute": "Audio",
"Playback Rate": "Tasso di riproduzione",
"Subtitles": "Sottotitoli",
"subtitles off": "Senza sottotitoli",
"Captions": "Sottotitoli non udenti",
"captions off": "Senza sottotitoli non udenti",
"Chapters": "Capitolo",
"You aborted the media playback": "La riproduzione del filmato è stata interrotta.",
"A network error caused the media download to fail part-way.": "Il download del filmato è stato interrotto a causa di un problema rete.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Il filmato non può essere caricato a causa di un errore nel server o nella rete o perché il formato non viene supportato.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "La riproduzione del filmato è stata interrotta a causa di un file danneggiato o per lutilizzo di impostazioni non supportate dal browser.",
"No compatible source was found for this media.": "Non ci sono fonti compatibili per questo filmato."
});

View File

@ -1,26 +0,0 @@
{
"Play": "Play",
"Pause": "Pausa",
"Current Time": "Orario attuale",
"Duration": "Durata",
"Remaining Time": "Tempo rimanente",
"Stream Type": "Tipo del Streaming",
"LIVE": "LIVE",
"Loaded": "Caricato",
"Progress": "Stato",
"Fullscreen": "Schermo intero",
"Non-Fullscreen": "Chiudi schermo intero",
"Mute": "Muto",
"Unmute": "Audio",
"Playback Rate": "Tasso di riproduzione",
"Subtitles": "Sottotitoli",
"subtitles off": "Senza sottotitoli",
"Captions": "Sottotitoli non udenti",
"captions off": "Senza sottotitoli non udenti",
"Chapters": "Capitolo",
"You aborted the media playback": "La riproduzione del filmato è stata interrotta.",
"A network error caused the media download to fail part-way.": "Il download del filmato è stato interrotto a causa di un problema rete.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Il filmato non può essere caricato a causa di un errore nel server o nella rete o perché il formato non viene supportato.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "La riproduzione del filmato è stata interrotta a causa di un file danneggiato o per lutilizzo di impostazioni non supportate dal browser.",
"No compatible source was found for this media.": "Non ci sono fonti compatibili per questo filmato."
}

View File

@ -1,26 +0,0 @@
videojs.addLanguage('ja', {
"Play": "再生",
"Pause": "一時停止",
"Current Time": "現在の時間",
"Duration": "長さ",
"Remaining Time": "残りの時間",
"Stream Type": "ストリームの種類",
"LIVE": "ライブ",
"Loaded": "ロード済み",
"Progress": "進行状況",
"Fullscreen": "フルスクリーン",
"Non-Fullscreen": "フルスクリーン以外",
"Mute": "ミュート",
"Unmute": "ミュート解除",
"Playback Rate": "再生レート",
"Subtitles": "サブタイトル",
"subtitles off": "サブタイトル オフ",
"Captions": "キャプション",
"captions off": "キャプション オフ",
"Chapters": "チャプター",
"You aborted the media playback": "動画再生を中止しました",
"A network error caused the media download to fail part-way.": "ネットワーク エラーにより動画のダウンロードが途中で失敗しました",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "サーバーまたはネットワークのエラー、またはフォーマットがサポートされていないため、動画をロードできませんでした",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "破損の問題、またはお使いのブラウザがサポートしていない機能が動画に使用されていたため、動画の再生が中止されました",
"No compatible source was found for this media.": "この動画に対して互換性のあるソースが見つかりませんでした"
});

View File

@ -1,26 +0,0 @@
{
"Play": "再生",
"Pause": "一時停止",
"Current Time": "現在の時間",
"Duration": "長さ",
"Remaining Time": "残りの時間",
"Stream Type": "ストリームの種類",
"LIVE": "ライブ",
"Loaded": "ロード済み",
"Progress": "進行状況",
"Fullscreen": "フルスクリーン",
"Non-Fullscreen": "フルスクリーン以外",
"Mute": "ミュート",
"Unmute": "ミュート解除",
"Playback Rate": "再生レート",
"Subtitles": "サブタイトル",
"subtitles off": "サブタイトル オフ",
"Captions": "キャプション",
"captions off": "キャプション オフ",
"Chapters": "チャプター",
"You aborted the media playback": "動画再生を中止しました",
"A network error caused the media download to fail part-way.": "ネットワーク エラーにより動画のダウンロードが途中で失敗しました",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "サーバーまたはネットワークのエラー、またはフォーマットがサポートされていないため、動画をロードできませんでした",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "破損の問題、またはお使いのブラウザがサポートしていない機能が動画に使用されていたため、動画の再生が中止されました",
"No compatible source was found for this media.": "この動画に対して互換性のあるソースが見つかりませんでした"
}

View File

@ -1,26 +0,0 @@
videojs.addLanguage('ko', {
"Play": "재생",
"Pause": "일시중지",
"Current Time": "현재 시간",
"Duration": "지정 기간",
"Remaining Time": "남은 시간",
"Stream Type": "스트리밍 유형",
"LIVE": "라이브",
"Loaded": "로드됨",
"Progress": "진행",
"Fullscreen": "전체 화면",
"Non-Fullscreen": "전체 화면 해제",
"Mute": "음소거",
"Unmute": "음소거 해제",
"Playback Rate": "재생 비율",
"Subtitles": "서브타이틀",
"subtitles off": "서브타이틀 끄기",
"Captions": "자막",
"captions off": "자막 끄기",
"Chapters": "챕터",
"You aborted the media playback": "비디오 재생을 취소했습니다.",
"A network error caused the media download to fail part-way.": "네트워크 오류로 인하여 비디오 일부를 다운로드하지 못 했습니다.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "비디오를 로드할 수 없습니다. 서버 혹은 네트워크 오류 때문이거나 지원되지 않는 형식 때문일 수 있습니다.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "비디오 재생이 취소됐습니다. 비디오가 손상되었거나 비디오가 사용하는 기능을 브라우저에서 지원하지 않는 것 같습니다.",
"No compatible source was found for this media.": "비디오에 호환되지 않는 소스가 있습니다."
});

View File

@ -1,26 +0,0 @@
{
"Play": "재생",
"Pause": "일시중지",
"Current Time": "현재 시간",
"Duration": "지정 기간",
"Remaining Time": "남은 시간",
"Stream Type": "스트리밍 유형",
"LIVE": "라이브",
"Loaded": "로드됨",
"Progress": "진행",
"Fullscreen": "전체 화면",
"Non-Fullscreen": "전체 화면 해제",
"Mute": "음소거",
"Unmute": "음소거 해제",
"Playback Rate": "재생 비율",
"Subtitles": "서브타이틀",
"subtitles off": "서브타이틀 끄기",
"Captions": "자막",
"captions off": "자막 끄기",
"Chapters": "챕터",
"You aborted the media playback": "비디오 재생을 취소했습니다.",
"A network error caused the media download to fail part-way.": "네트워크 오류로 인하여 비디오 일부를 다운로드하지 못 했습니다.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "비디오를 로드할 수 없습니다. 서버 혹은 네트워크 오류 때문이거나 지원되지 않는 형식 때문일 수 있습니다.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "비디오 재생이 취소됐습니다. 비디오가 손상되었거나 비디오가 사용하는 기능을 브라우저에서 지원하지 않는 것 같습니다.",
"No compatible source was found for this media.": "비디오에 호환되지 않는 소스가 있습니다."
}

View File

@ -1,26 +0,0 @@
videojs.addLanguage('nb', {
"Play": "Spill",
"Pause": "Pause",
"Current Time": "Aktuell tid",
"Duration": "Varighet",
"Remaining Time": "Gjenstående tid",
"Stream Type": "Type strøm",
"LIVE": "DIREKTE",
"Loaded": "Lastet inn",
"Progress": "Status",
"Fullscreen": "Fullskjerm",
"Non-Fullscreen": "Lukk fullskjerm",
"Mute": "Lyd av",
"Unmute": "Lyd på",
"Playback Rate": "Avspillingsrate",
"Subtitles": "Undertekst på",
"subtitles off": "Undertekst av",
"Captions": "Undertekst for hørselshemmede på",
"captions off": "Undertekst for hørselshemmede av",
"Chapters": "Kapitler",
"You aborted the media playback": "Du avbrøt avspillingen.",
"A network error caused the media download to fail part-way.": "En nettverksfeil avbrøt nedlasting av videoen.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Videoen kunne ikke lastes ned, på grunn av nettverksfeil eller serverfeil, eller fordi formatet ikke er støttet.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Videoavspillingen ble avbrudt på grunn av ødelagte data eller fordi videoen ville gjøre noe som nettleseren din ikke har støtte for.",
"No compatible source was found for this media.": "Fant ikke en kompatibel kilde for dette mediainnholdet."
});

View File

@ -1,26 +0,0 @@
{
"Play": "Spill",
"Pause": "Pause",
"Current Time": "Aktuell tid",
"Duration": "Varighet",
"Remaining Time": "Gjenstående tid",
"Stream Type": "Type strøm",
"LIVE": "DIREKTE",
"Loaded": "Lastet inn",
"Progress": "Status",
"Fullscreen": "Fullskjerm",
"Non-Fullscreen": "Lukk fullskjerm",
"Mute": "Lyd av",
"Unmute": "Lyd på",
"Playback Rate": "Avspillingsrate",
"Subtitles": "Undertekst på",
"subtitles off": "Undertekst av",
"Captions": "Undertekst for hørselshemmede på",
"captions off": "Undertekst for hørselshemmede av",
"Chapters": "Kapitler",
"You aborted the media playback": "Du avbrøt avspillingen.",
"A network error caused the media download to fail part-way.": "En nettverksfeil avbrøt nedlasting av videoen.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Videoen kunne ikke lastes ned, på grunn av nettverksfeil eller serverfeil, eller fordi formatet ikke er støttet.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Videoavspillingen ble avbrudt på grunn av ødelagte data eller fordi videoen ville gjøre noe som nettleseren din ikke har støtte for.",
"No compatible source was found for this media.": "Fant ikke en kompatibel kilde for dette mediainnholdet."
}

View File

@ -1,84 +0,0 @@
videojs.addLanguage('nl', {
"Audio Player": "Audiospeler",
"Video Player": "Videospeler",
"Play": "Afspelen",
"Pause": "Pauzeren",
"Replay": "Opnieuw afspelen",
"Current Time": "Huidige tijd",
"Duration": "Tijdsduur",
"Remaining Time": "Resterende tijd",
"Stream Type": "Streamtype",
"LIVE": "LIVE",
"Loaded": "Geladen",
"Progress": "Voortgang",
"Progress Bar": "Voortgangsbalk",
"progress bar timing: currentTime={1} duration={2}": "{1} van {2}",
"Fullscreen": "Volledig scherm",
"Non-Fullscreen": "Geen volledig scherm",
"Mute": "Dempen",
"Unmute": "Niet dempen",
"Playback Rate": "Afspeelsnelheid",
"Subtitles": "Ondertiteling",
"subtitles off": "ondertiteling uit",
"Captions": "Bijschriften",
"captions off": "bijschriften uit",
"Chapters": "Hoofdstukken",
"Descriptions": "Beschrijvingen",
"descriptions off": "beschrijvingen uit",
"Audio Track": "Audiospoor",
"Volume Level": "Geluidsniveau",
"You aborted the media playback": "U heeft het afspelen van de media afgebroken",
"A network error caused the media download to fail part-way.": "Een netwerkfout heeft ervoor gezorgd dat het downloaden van de media halverwege is mislukt.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "De media kon niet worden geladen, dit komt doordat of de server of het netwerk mislukt of doordat het formaat niet wordt ondersteund.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Het afspelen van de media is afgebroken door een probleem met beschadeigde gegevens of doordat de media functies gebruikt die uw browser niet ondersteund.",
"No compatible source was found for this media.": "Er is geen geschikte bron voor deze media gevonden.",
"The media is encrypted and we do not have the keys to decrypt it.": "De media is versleuteld en we hebben de sleutels niet om deze te ontsleutelen.",
"Play Video": "Video afspelen",
"Close": "Sluiten",
"Close Modal Dialog": "Extra venster sluiten",
"Modal Window": "Extra venster",
"This is a modal window": "Dit is een extra venster",
"This modal can be closed by pressing the Escape key or activating the close button.": "Dit venster kan worden gesloten door op de Escape-toets te drukken of door de sluiten-knop te activeren.",
", opens captions settings dialog": ", opent instellingen-venster voor bijschriften",
", opens subtitles settings dialog": ", opent instellingen-venster voor ondertitelingen",
", opens descriptions settings dialog": ", opent instellingen-venster voor beschrijvingen",
", selected": ", geselecteerd",
"captions settings": "bijschriften-instellingen",
"subtitles settings": "ondertiteling-instellingen",
"descriptions settings": "beschrijvingen-instellingen",
"Text": "Tekst",
"White": "Wit",
"Black": "Zwart",
"Red": "Rood",
"Green": "Groen",
"Blue": "Blauw",
"Yellow": "Geel",
"Magenta": "Magenta",
"Cyan": "Cyaan",
"Background": "Achtergrond",
"Window": "Venster",
"Transparent": "Transparant",
"Semi-Transparent": "Semi-transparant",
"Opaque": "Ondoorzichtig",
"Font Size": "Lettergrootte",
"Text Edge Style": "Stijl tekstrand",
"None": "Geen",
"Raised": "Verhoogd",
"Depressed": "Ingedrukt",
"Uniform": "Uniform",
"Dropshadow": "Schaduw",
"Font Family": "Lettertype",
"Proportional Sans-Serif": "Proportioneel sans-serif",
"Monospace Sans-Serif": "Monospace sans-serif",
"Proportional Serif": "Proportioneel serif",
"Monospace Serif": "Monospace serif",
"Casual": "Luchtig",
"Script": "Script",
"Small Caps": "Kleine hoofdletters",
"Reset": "Herstellen",
"restore all settings to the default values": "alle instellingen naar de standaardwaarden herstellen",
"Done": "Klaar",
"Caption Settings Dialog": "Venster voor bijschriften-instellingen",
"Beginning of dialog window. Escape will cancel and close the window.": "Begin van dialoogvenster. Escape zal annuleren en het venster sluiten.",
"End of dialog window.": "Einde van dialoogvenster."
});

View File

@ -1,84 +0,0 @@
{
"Audio Player": "Audiospeler",
"Video Player": "Videospeler",
"Play": "Afspelen",
"Pause": "Pauzeren",
"Replay": "Opnieuw afspelen",
"Current Time": "Huidige tijd",
"Duration": "Tijdsduur",
"Remaining Time": "Resterende tijd",
"Stream Type": "Streamtype",
"LIVE": "LIVE",
"Loaded": "Geladen",
"Progress": "Voortgang",
"Progress Bar": "Voortgangsbalk",
"progress bar timing: currentTime={1} duration={2}": "{1} van {2}",
"Fullscreen": "Volledig scherm",
"Non-Fullscreen": "Geen volledig scherm",
"Mute": "Dempen",
"Unmute": "Niet dempen",
"Playback Rate": "Afspeelsnelheid",
"Subtitles": "Ondertiteling",
"subtitles off": "ondertiteling uit",
"Captions": "Bijschriften",
"captions off": "bijschriften uit",
"Chapters": "Hoofdstukken",
"Descriptions": "Beschrijvingen",
"descriptions off": "beschrijvingen uit",
"Audio Track": "Audiospoor",
"Volume Level": "Geluidsniveau",
"You aborted the media playback": "U heeft het afspelen van de media afgebroken",
"A network error caused the media download to fail part-way.": "Een netwerkfout heeft ervoor gezorgd dat het downloaden van de media halverwege is mislukt.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "De media kon niet worden geladen, dit komt doordat of de server of het netwerk mislukt of doordat het formaat niet wordt ondersteund.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Het afspelen van de media is afgebroken door een probleem met beschadeigde gegevens of doordat de media functies gebruikt die uw browser niet ondersteund.",
"No compatible source was found for this media.": "Er is geen geschikte bron voor deze media gevonden.",
"The media is encrypted and we do not have the keys to decrypt it.": "De media is versleuteld en we hebben de sleutels niet om deze te ontsleutelen.",
"Play Video": "Video afspelen",
"Close": "Sluiten",
"Close Modal Dialog": "Extra venster sluiten",
"Modal Window": "Extra venster",
"This is a modal window": "Dit is een extra venster",
"This modal can be closed by pressing the Escape key or activating the close button.": "Dit venster kan worden gesloten door op de Escape-toets te drukken of door de sluiten-knop te activeren.",
", opens captions settings dialog": ", opent instellingen-venster voor bijschriften",
", opens subtitles settings dialog": ", opent instellingen-venster voor ondertitelingen",
", opens descriptions settings dialog": ", opent instellingen-venster voor beschrijvingen",
", selected": ", geselecteerd",
"captions settings": "bijschriften-instellingen",
"subtitles settings": "ondertiteling-instellingen",
"descriptions settings": "beschrijvingen-instellingen",
"Text": "Tekst",
"White": "Wit",
"Black": "Zwart",
"Red": "Rood",
"Green": "Groen",
"Blue": "Blauw",
"Yellow": "Geel",
"Magenta": "Magenta",
"Cyan": "Cyaan",
"Background": "Achtergrond",
"Window": "Venster",
"Transparent": "Transparant",
"Semi-Transparent": "Semi-transparant",
"Opaque": "Ondoorzichtig",
"Font Size": "Lettergrootte",
"Text Edge Style": "Stijl tekstrand",
"None": "Geen",
"Raised": "Verhoogd",
"Depressed": "Ingedrukt",
"Uniform": "Uniform",
"Dropshadow": "Schaduw",
"Font Family": "Lettertype",
"Proportional Sans-Serif": "Proportioneel sans-serif",
"Monospace Sans-Serif": "Monospace sans-serif",
"Proportional Serif": "Proportioneel serif",
"Monospace Serif": "Monospace serif",
"Casual": "Luchtig",
"Script": "Script",
"Small Caps": "Kleine hoofdletters",
"Reset": "Herstellen",
"restore all settings to the default values": "alle instellingen naar de standaardwaarden herstellen",
"Done": "Klaar",
"Caption Settings Dialog": "Venster voor bijschriften-instellingen",
"Beginning of dialog window. Escape will cancel and close the window.": "Begin van dialoogvenster. Escape zal annuleren en het venster sluiten.",
"End of dialog window.": "Einde van dialoogvenster."
}

View File

@ -1,26 +0,0 @@
videojs.addLanguage('nn', {
"Play": "Spel",
"Pause": "Pause",
"Current Time": "Aktuell tid",
"Duration": "Varigheit",
"Remaining Time": "Tid attende",
"Stream Type": "Type straum",
"LIVE": "DIREKTE",
"Loaded": "Lasta inn",
"Progress": "Status",
"Fullscreen": "Fullskjerm",
"Non-Fullscreen": "Stenga fullskjerm",
"Mute": "Ljod av",
"Unmute": "Ljod på",
"Playback Rate": "Avspelingsrate",
"Subtitles": "Teksting på",
"subtitles off": "Teksting av",
"Captions": "Teksting for høyrselshemma på",
"captions off": "Teksting for høyrselshemma av",
"Chapters": "Kapitel",
"You aborted the media playback": "Du avbraut avspelinga.",
"A network error caused the media download to fail part-way.": "Ein nettverksfeil avbraut nedlasting av videoen.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Videoen kunne ikkje lastas ned, på grunn av ein nettverksfeil eller serverfeil, eller av di formatet ikkje er stoda.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Videoavspelinga blei broten på grunn av øydelagde data eller av di videoen ville gjera noe som nettlesaren din ikkje stodar.",
"No compatible source was found for this media.": "Fant ikke en kompatibel kilde for dette mediainnholdet."
});

View File

@ -1,26 +0,0 @@
{
"Play": "Spel",
"Pause": "Pause",
"Current Time": "Aktuell tid",
"Duration": "Varigheit",
"Remaining Time": "Tid attende",
"Stream Type": "Type straum",
"LIVE": "DIREKTE",
"Loaded": "Lasta inn",
"Progress": "Status",
"Fullscreen": "Fullskjerm",
"Non-Fullscreen": "Stenga fullskjerm",
"Mute": "Ljod av",
"Unmute": "Ljod på",
"Playback Rate": "Avspelingsrate",
"Subtitles": "Teksting på",
"subtitles off": "Teksting av",
"Captions": "Teksting for høyrselshemma på",
"captions off": "Teksting for høyrselshemma av",
"Chapters": "Kapitel",
"You aborted the media playback": "Du avbraut avspelinga.",
"A network error caused the media download to fail part-way.": "Ein nettverksfeil avbraut nedlasting av videoen.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Videoen kunne ikkje lastas ned, på grunn av ein nettverksfeil eller serverfeil, eller av di formatet ikkje er stoda.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Videoavspelinga blei broten på grunn av øydelagde data eller av di videoen ville gjera noe som nettlesaren din ikkje stodar.",
"No compatible source was found for this media.": "Fant ikke en kompatibel kilde for dette mediainnholdet."
}

View File

@ -1,87 +0,0 @@
videojs.addLanguage('oc', {
"Audio Player": "Lector àudio",
"Video Player": "Lector vidèo",
"Play": "Lectura",
"Pause": "Pausa",
"Replay": "Tornar legir",
"Current Time": "Durada passada",
"Duration": "Durada",
"Remaining Time": "Temps restant",
"Stream Type": "Tipe de difusion",
"LIVE": "DIRÈCTE",
"Seek to live, currently behind live": "Trapar lo dirècte, actualament darrièr lo dirècte",
"Seek to live, currently playing live": "Trapar lo dirècte, actualament lo dirècte es en lectura",
"Loaded": "Cargat",
"Progress": "Progression",
"Progress Bar": "Barra de progression",
"progress bar timing: currentTime={1} duration={2}": "{1} sus {2}",
"Fullscreen": "Ecran complèt",
"Non-Fullscreen": "Pas en ecran complèt",
"Mute": "Copar lo son",
"Unmute": "Restablir lo son",
"Playback Rate": "Velocitat de lectura",
"Subtitles": "Sostítols",
"subtitles off": "Sostítols desactivats",
"Captions": "Legendas",
"captions off": "Legendas desactivadas",
"Chapters": "Capítols",
"Descriptions": "Descripcions",
"descriptions off": "descripcions desactivadas",
"Audio Track": "Pista àudio",
"Volume Level": "Nivèl del volum",
"You aborted the media playback": "Avètz copat la lectura del mèdia.",
"A network error caused the media download to fail part-way.": "Una error de ret a provocat un fracàs del telecargament.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Lo mèdia a pas pogut èsser cargat, siá perque lo servidor o lo ret a fracassat siá perque lo format es pas compatible.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "La lectura del mèdia es copada a causa dun problèma de corrupcion o perque lo mèdia utiliza de foncionalitats pas suportadas pel navigador.",
"No compatible source was found for this media.": "Cap de font compatiblas pas trobada per aqueste mèdia.",
"The media is encrypted and we do not have the keys to decrypt it.": "Lo mèdia es chifrat e avèm pas las claus per lo deschifrar.",
"Play Video": "Legir la vidèo",
"Close": "Tampar",
"Close Modal Dialog": "Tampar la fenèstra",
"Modal Window": "Fenèstra",
"This is a modal window": "Aquò es una fenèstra",
"This modal can be closed by pressing the Escape key or activating the close button.": "Aquesta fenèstra pòt èsser tampada en quichar Escapar sul clavièr o en activar lo boton de tampadura.",
", opens captions settings dialog": ", dobrís la fenèstra de paramètres de legendas",
", opens subtitles settings dialog": ", dobrís la fenèstra de paramètres de sostítols",
", opens descriptions settings dialog": ", dobrís la fenèstra de paramètres de descripcions",
", selected": ", seleccionat",
"captions settings": "paramètres de legendas",
"subtitles settings": "paramètres de sostítols",
"descriptions settings": "paramètres de descripcions",
"Text": "Tèxte",
"White": "Blanc",
"Black": "Negre",
"Red": "Roge",
"Green": "Verd",
"Blue": "Blau",
"Yellow": "Jaune",
"Magenta": "Magenta",
"Cyan": "Cian",
"Background": "Rèireplan",
"Window": "Fenèstra",
"Transparent": "Transparent",
"Semi-Transparent": "Semitransparent",
"Opaque": "Opac",
"Font Size": "Talha de la polissa",
"Text Edge Style": "Estil dels contorns del tèxte",
"None": "Cap",
"Raised": "Naut",
"Depressed": "Enfonsat",
"Uniform": "Unifòrme",
"Dropshadow": "Ombrat",
"Font Family": "Familha de polissa",
"Proportional Sans-Serif": "Sans-Serif proporcionala",
"Monospace Sans-Serif": "Monospace Sans-Serif",
"Proportional Serif": "Serif proporcionala",
"Monospace Serif": "Serif proporcionala",
"Casual": "Manuscrita",
"Script": "Script",
"Small Caps": "Pichonas majusculas",
"Reset": "Reïnicializar",
"restore all settings to the default values": "O restablir tot a las valors per defaut",
"Done": "Acabat",
"Caption Settings Dialog": "Fenèstra de paramètres de legenda",
"Beginning of dialog window. Escape will cancel and close the window.": "Debuta de la fenèstra. Escapar anullarà e tamparà la fenèstra",
"End of dialog window.": "Fin de la fenèstra.",
"{1} is loading.": "{1} es a cargar."
});

View File

@ -1,87 +0,0 @@
{
"Audio Player": "Lector àudio",
"Video Player": "Lector vidèo",
"Play": "Lectura",
"Pause": "Pausa",
"Replay": "Tornar legir",
"Current Time": "Durada passada",
"Duration": "Durada",
"Remaining Time": "Temps restant",
"Stream Type": "Tipe de difusion",
"LIVE": "DIRÈCTE",
"Seek to live, currently behind live": "Trapar lo dirècte, actualament darrièr lo dirècte",
"Seek to live, currently playing live": "Trapar lo dirècte, actualament lo dirècte es en lectura",
"Loaded": "Cargat",
"Progress": "Progression",
"Progress Bar": "Barra de progression",
"progress bar timing: currentTime={1} duration={2}": "{1} sus {2}",
"Fullscreen": "Ecran complèt",
"Non-Fullscreen": "Pas en ecran complèt",
"Mute": "Copar lo son",
"Unmute": "Restablir lo son",
"Playback Rate": "Velocitat de lectura",
"Subtitles": "Sostítols",
"subtitles off": "Sostítols desactivats",
"Captions": "Legendas",
"captions off": "Legendas desactivadas",
"Chapters": "Capítols",
"Descriptions": "Descripcions",
"descriptions off": "descripcions desactivadas",
"Audio Track": "Pista àudio",
"Volume Level": "Nivèl del volum",
"You aborted the media playback": "Avètz copat la lectura del mèdia.",
"A network error caused the media download to fail part-way.": "Una error de ret a provocat un fracàs del telecargament.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Lo mèdia a pas pogut èsser cargat, siá perque lo servidor o lo ret a fracassat siá perque lo format es pas compatible.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "La lectura del mèdia es copada a causa dun problèma de corrupcion o perque lo mèdia utiliza de foncionalitats pas suportadas pel navigador.",
"No compatible source was found for this media.": "Cap de font compatiblas pas trobada per aqueste mèdia.",
"The media is encrypted and we do not have the keys to decrypt it.": "Lo mèdia es chifrat e avèm pas las claus per lo deschifrar.",
"Play Video": "Legir la vidèo",
"Close": "Tampar",
"Close Modal Dialog": "Tampar la fenèstra",
"Modal Window": "Fenèstra",
"This is a modal window": "Aquò es una fenèstra",
"This modal can be closed by pressing the Escape key or activating the close button.": "Aquesta fenèstra pòt èsser tampada en quichar Escapar sul clavièr o en activar lo boton de tampadura.",
", opens captions settings dialog": ", dobrís la fenèstra de paramètres de legendas",
", opens subtitles settings dialog": ", dobrís la fenèstra de paramètres de sostítols",
", opens descriptions settings dialog": ", dobrís la fenèstra de paramètres de descripcions",
", selected": ", seleccionat",
"captions settings": "paramètres de legendas",
"subtitles settings": "paramètres de sostítols",
"descriptions settings": "paramètres de descripcions",
"Text": "Tèxte",
"White": "Blanc",
"Black": "Negre",
"Red": "Roge",
"Green": "Verd",
"Blue": "Blau",
"Yellow": "Jaune",
"Magenta": "Magenta",
"Cyan": "Cian",
"Background": "Rèireplan",
"Window": "Fenèstra",
"Transparent": "Transparent",
"Semi-Transparent": "Semitransparent",
"Opaque": "Opac",
"Font Size": "Talha de la polissa",
"Text Edge Style": "Estil dels contorns del tèxte",
"None": "Cap",
"Raised": "Naut",
"Depressed": "Enfonsat",
"Uniform": "Unifòrme",
"Dropshadow": "Ombrat",
"Font Family": "Familha de polissa",
"Proportional Sans-Serif": "Sans-Serif proporcionala",
"Monospace Sans-Serif": "Monospace Sans-Serif",
"Proportional Serif": "Serif proporcionala",
"Monospace Serif": "Serif proporcionala",
"Casual": "Manuscrita",
"Script": "Script",
"Small Caps": "Pichonas majusculas",
"Reset": "Reïnicializar",
"restore all settings to the default values": "O restablir tot a las valors per defaut",
"Done": "Acabat",
"Caption Settings Dialog": "Fenèstra de paramètres de legenda",
"Beginning of dialog window. Escape will cancel and close the window.": "Debuta de la fenèstra. Escapar anullarà e tamparà la fenèstra",
"End of dialog window.": "Fin de la fenèstra.",
"{1} is loading.": "{1} es a cargar."
}

View File

@ -1,34 +0,0 @@
videojs.addLanguage('pl', {
"Play": "Odtwarzaj",
"Pause": "Pauza",
"Current Time": "Aktualny czas",
"Duration": "Czas trwania",
"Remaining Time": "Pozostały czas",
"Stream Type": "Typ strumienia",
"LIVE": "NA ŻYWO",
"Loaded": "Załadowany",
"Progress": "Status",
"Fullscreen": "Pełny ekran",
"Non-Fullscreen": "Pełny ekran niedostępny",
"Mute": "Wyłącz dźwięk",
"Unmute": "Włącz dźwięk",
"Playback Rate": "Szybkość odtwarzania",
"Subtitles": "Napisy",
"subtitles off": "Napisy wyłączone",
"Captions": "Transkrypcja",
"captions off": "Transkrypcja wyłączona",
"Chapters": "Rozdziały",
"You aborted the media playback": "Odtwarzanie zostało przerwane",
"A network error caused the media download to fail part-way.": "Problemy z siecią spowodowały błąd przy pobieraniu materiału wideo.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Materiał wideo nie może być załadowany, ponieważ wystąpił problem z siecią lub format nie jest obsługiwany",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Odtwarzanie materiału wideo zostało przerwane z powodu uszkodzonego pliku wideo lub z powodu błędu funkcji, które nie są wspierane przez przeglądarkę.",
"No compatible source was found for this media.": "Dla tego materiału wideo nie znaleziono kompatybilnego źródła.",
"Play Video": "Odtwarzaj wideo",
"Close": "Zamknij",
"Modal Window": "Okno Modala",
"This is a modal window": "To jest okno modala",
"This modal can be closed by pressing the Escape key or activating the close button.": "Ten modal możesz zamknąć naciskając przycisk Escape albo wybierając przycisk Zamknij.",
", opens captions settings dialog": ", otwiera okno dialogowe ustawień transkrypcji",
", opens subtitles settings dialog": ", otwiera okno dialogowe napisów",
", selected": ", zaznaczone"
});

View File

@ -1,34 +0,0 @@
{
"Play": "Odtwarzaj",
"Pause": "Pauza",
"Current Time": "Aktualny czas",
"Duration": "Czas trwania",
"Remaining Time": "Pozostały czas",
"Stream Type": "Typ strumienia",
"LIVE": "NA ŻYWO",
"Loaded": "Załadowany",
"Progress": "Status",
"Fullscreen": "Pełny ekran",
"Non-Fullscreen": "Pełny ekran niedostępny",
"Mute": "Wyłącz dźwięk",
"Unmute": "Włącz dźwięk",
"Playback Rate": "Szybkość odtwarzania",
"Subtitles": "Napisy",
"subtitles off": "Napisy wyłączone",
"Captions": "Transkrypcja",
"captions off": "Transkrypcja wyłączona",
"Chapters": "Rozdziały",
"You aborted the media playback": "Odtwarzanie zostało przerwane",
"A network error caused the media download to fail part-way.": "Problemy z siecią spowodowały błąd przy pobieraniu materiału wideo.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Materiał wideo nie może być załadowany, ponieważ wystąpił problem z siecią lub format nie jest obsługiwany",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Odtwarzanie materiału wideo zostało przerwane z powodu uszkodzonego pliku wideo lub z powodu błędu funkcji, które nie są wspierane przez przeglądarkę.",
"No compatible source was found for this media.": "Dla tego materiału wideo nie znaleziono kompatybilnego źródła.",
"Play Video": "Odtwarzaj wideo",
"Close": "Zamknij",
"Modal Window": "Okno Modala",
"This is a modal window": "To jest okno modala",
"This modal can be closed by pressing the Escape key or activating the close button.": "Ten modal możesz zamknąć naciskając przycisk Escape albo wybierając przycisk Zamknij.",
", opens captions settings dialog": ", otwiera okno dialogowe ustawień transkrypcji",
", opens subtitles settings dialog": ", otwiera okno dialogowe napisów",
", selected": ", zaznaczone"
}

Some files were not shown because too many files have changed in this diff Show More