1
0
Fork 0

Compare commits

...

No commits in common. "inline-player-demo" and "main" have entirely different histories.

442 changed files with 383229 additions and 0 deletions

25
.dockerignore Normal file
View file

@ -0,0 +1,25 @@
# generated types
.astro/
# dependencies
node_modules/
# logs
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# environment variables
.env
.env.production
# macOS-specific files
.DS_Store
# translates (not needed to function)
/src/pages/ru/*
/src/pages/en/*
/src/pages/es/*
/src/pages/fr/*
/src/pages/jp/*

0
.drone.yml Normal file
View file

25
.gitignore vendored Normal file
View file

@ -0,0 +1,25 @@
# generated types
.astro/
# dependencies
node_modules/
# logs
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# environment variables
.env
.env.production
# macOS-specific files
.DS_Store
# translates (not needed to function)
/src/pages/ru/*
/src/pages/en/*
/src/pages/es/*
/src/pages/fr/*
/src/pages/jp/*

13
Dockerfile Normal file
View file

@ -0,0 +1,13 @@
FROM codeberg.org/korbs/nodejs:alpine AS runtime
WORKDIR /app
COPY . .
RUN npm install
RUN npm run translate
RUN npm run build
ENV HOST=0.0.0.0
ENV PORT=4321
EXPOSE 4321
CMD node ./dist/server/entry.mjs

232
LICENSE Normal file
View file

@ -0,0 +1,232 @@
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright © 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for software and other kinds of works.
The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too.
When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.
Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions.
Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and modification follow.
TERMS AND CONDITIONS
0. Definitions.
“This License” refers to version 3 of the GNU General Public License.
“Copyright” also means copyright-like laws that apply to other kinds of works, such as semiconductor masks.
“The Program” refers to any copyrightable work licensed under this License. Each licensee is addressed as “you”. “Licensees” and “recipients” may be individuals or organizations.
To “modify” a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a “modified version” of the earlier work or a work “based on” the earlier work.
A “covered work” means either the unmodified Program or a work based on the Program.
To “propagate” a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well.
To “convey” a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays “Appropriate Legal Notices” to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion.
1. Source Code.
The “source code” for a work means the preferred form of the work for making modifications to it. “Object code” means any non-source form of a work.
A “Standard Interface” means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language.
The “System Libraries” of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A “Major Component”, in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it.
The “Corresponding Source” for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work.
The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source.
The Corresponding Source for a work in source code form is that same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures.
When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified it, and giving a relevant date.
b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to “keep intact all notices”.
c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so.
A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an “aggregate” if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways:
a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b.
d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d.
A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work.
A “User Product” is either (1) a “consumer product”, which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, “normally used” refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product.
“Installation Information” for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made.
If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM).
The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying.
7. Additional Terms.
“Additional permissions” are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or authors of the material; or
e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors.
All other non-permissive additional terms are considered “further restrictions” within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11).
However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice.
Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License.
An “entity transaction” is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it.
11. Patents.
A “contributor” is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's “contributor version”.
A contributor's “essential patent claims” are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, “control” includes the right to grant patent sublicenses in a manner consistent with the requirements of this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version.
In the following three paragraphs, a “patent license” is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To “grant” such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party.
If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. “Knowingly relying” means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it.
A patent license is “discriminatory” if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation.
If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program.
Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the “copyright” line and a pointer to where the full notice is found.
poke-but-in-astro
Copyright (C) 2024 Korbs
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode:
poke-but-in-astro Copyright (C) 2024 Korbs
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an “about box”.
You should also get your employer (if you work as a programmer) or school, if any, to sign a “copyright disclaimer” for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see <https://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read <https://www.gnu.org/philosophy/why-not-lgpl.html>.

110
README.md Normal file
View file

@ -0,0 +1,110 @@
# Poke, but built on Astro
![Landing Preview](https://md.sudovanilla.org/images/poke-astro-poke-32.png)
This repo is only a proof of concept to see how Poke will run in Astro. A lot of code will be used from [MinPluto](https://ark.sudovanilla.org/MinPluto/MinPluto/), as it's a YouTube frontend built on Astro and inspired by Poke.
## Todo List
- [ ] i18n
- [x] English
- [x] Japanese
- [ ] French 🚬
- [ ] Spanish
- [ ] Russian
- [x] Inline Player
- [x] Mobile Support
- [ ] Dedicated Redirect Page
- [ ] Should pull from instances list
- [ ] Search
- [ ] Revamp Experience
- [ ] Filters
- [x] Auto Complete
- [ ] Video Player
- [x] Dash Format (1080p/4K/8K)
- [ ] Mobile Gestures
- [ ] Embed Page
- [ ] Controls
- [x] Play/Pause
- [x] Volume
- [x] Fullscreen
- [x] CC
- [ ] Quality Changer
- [ ] Theater Mode
- [ ] Cast
- [ ] Video Page
- [ ] Toggle:
- [ ] Audio Only
- [ ] Autoplay
- [ ] YouTube Music
- [ ] Music Player
- [ ] Artist Page
- [ ] Album Page
- [ ] Search Experience
- [ ] Custom Embed Page
- [ ] User Settings
- [ ] Invidious Server Selection
- [ ] SafeTwitch Backend Server Selection
- [ ] Platform Selection (YouTube/Twitch)
- [ ] Video Player
- [ ] Toggle:
- [ ] Proxy
- [ ] Theme
- [ ] Preferred Language (For audio track on YouTube)
- [ ] Custom CSS/JS
- [ ] Import/Export YouTube Subscription (Use local session, no database crap)
- [ ] Import/Export Poke User Settings
- [x] Add Twitch Support, use [SafeTwitch Backend](https://codeberg.org/SafeTwitch/safetwitch-backend)
## Known Issuse
- End-user must reload page again after switch language (May be caused by ViewTransition API)
- i18n doesn't activiate after 1 or 2 seconds when launching Poke (Does it matter? Not that much, but I'll like to fix that)
- Searching from a video doesn't work. Error: `SyntaxError: Unexpected end of JSON input` (URL isn't set correctly)
## Hosting - Docker Compose (Recommended)
### Requirements
- Docker Engine
### Running
Use the Docker Compose file that is provided with Poke. Copying and pasting it into other tools like Dockge and Dokemon will work too.
Run:
```bash
docker compose up -d
```
> Using `sudo` may be required depending on your setup
## Build
> Instructions assume you're using Bun as the package manager, which is preferred for Astro projects.
### Requirements
- git
- [Bun](https://bun.sh) (NPM/NodeJS not required 😄)
### Build and Run
Clone the repository:
```bash
git clone https://codeberg.org/korbs/poke-but-in-astro.git
cd ./poke-but-in-astro/
```
Install packages:
```bash
bun install
```
Run:
```bash
bun start # or use "bunx --bun astro dev"
```
It's that easy.
## License
```
Copyright (C) 2024 SudoVanilla
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.
```

4
astro-i18next.config.mjs Normal file
View file

@ -0,0 +1,4 @@
/** @type {import('astro-i18next').AstroI18nextConfig} */
export default {
locales: ["en", "jp"],
};

39
astro.config.mjs Normal file
View file

@ -0,0 +1,39 @@
import { defineConfig, envField } from 'astro/config';
import node from "@astrojs/node";
import partytown from "@astrojs/partytown";
import sitemap from "@astrojs/sitemap";
import robotsTxt from "astro-robots-txt";
import vue from "@astrojs/vue";
import astroI18next from "astro-i18next";
export default defineConfig({
// Project Structure
publicDir: './src/public/',
// Use Server-Side Rendering
output: "server",
adapter: node({
mode: "standalone"
}),
// Security
security: {
checkOrigin: true
},
// Server Options
server: {
port: 6003,
host: true
},
// Integrations and Plugins
integrations: [
astroI18next(),
partytown(),
sitemap(),
robotsTxt(),
vue()
],
// Others
devToolbar: {enabled: false},
experimental: {
directRenderScript: true,
},
});

BIN
bun.lockb Executable file

Binary file not shown.

6
docker-compose.yml Normal file
View file

@ -0,0 +1,6 @@
services:
nginx:
image: codeberg.org/poketube/astro-experiment:amd64
restart: unless-stopped
ports:
- 6003:4321

41
package.json Normal file
View file

@ -0,0 +1,41 @@
{
"name": "poke",
"type": "module",
"version": "25.01",
"license": "GPL-3.0-or-later",
"scripts": {
"start": "astro dev",
"build": "astro build",
"translate": "astro-i18next generate",
"docker:build": "docker build -t poke ."
},
"repository": {
"url": "https://codeberg.org/korbs/poke-but-in-astro"
},
"keywords": [
"poketube",
"private",
"privacy",
"ytdl",
"youtube",
"astro",
"frontend"
],
"dependencies": {
"@astrojs/node": "^8.3.1",
"@astrojs/partytown": "^2.1.1",
"@astrojs/sitemap": "^3.1.6",
"@astrojs/vue": "^4.5.0",
"@fontsource-variable/roboto-flex": "^5.0.15",
"@iconoir/vue": "^7.7.0",
"astro": "^4.11.0",
"astro-analytics": "^2.7.0",
"astro-i18next": "^1.0.0-beta.21",
"astro-robots-txt": "^1.0.0",
"vue": "^3.4.29"
},
"devDependencies": {
"@types/bun": "^1.1.5",
"sass": "^1.77.6"
}
}

BIN
src/assets/chan/v2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

74
src/assets/poke-text.svg Normal file
View file

@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="424.99179"
height="112.56479"
viewBox="0 0 424.99179 112.56479"
version="1.1"
id="svg5"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
sodipodi:docname="drawing-1.svg"
xml:space="preserve"
inkscape:export-filename="draw2ing.svg"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
id="namedview7"
pagecolor="#505050"
bordercolor="#eeeeee"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#505050"
inkscape:document-units="px"
showgrid="false"
inkscape:zoom="0.6147115"
inkscape:cx="774.347"
inkscape:cy="251.33742"
inkscape:window-width="1920"
inkscape:window-height="1008"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" /><defs
id="defs2" /><g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-387.38205,-335.77142)"><g
id="g1157-3-2"
transform="translate(70.029334,142.05383)"
inkscape:export-filename="./g1157-3-2.svg"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"><path
d="m 456.27173,300.46899 14.34564,-101.9487 h 35.09949 q 8.22871,0 14.34563,4.07795 6.11693,4.07795 9.10257,10.99589 2.98564,6.91795 1.74769,15.29231 -1.16513,8.52 -6.18974,15.43795 -5.02462,6.84512 -12.30667,10.92307 -7.20923,4.07795 -15.21948,4.07795 h -19.95282 l -5.82564,41.14358 z m 23.0841,-56.29024 h 18.42359 q 4.29641,0 8.22872,-2.18462 3.9323,-2.18462 6.55384,-5.82564 2.69436,-3.64103 3.34975,-8.22872 0.65538,-4.58769 -1.01949,-8.22871 -1.60205,-3.71385 -4.9518,-5.82564 -3.27692,-2.18462 -7.57333,-2.18462 h -18.42358 z"
style="font-size:145.641px;font-family:Urbanist;-inkscape-font-specification:'Urbanist, @ital=1.00,wght=600';font-variation-settings:'ital' 1, 'wght' 600;fill:#ffffff;stroke-width:3.4;stroke-linecap:round;stroke-linejoin:bevel;paint-order:stroke fill markers"
id="path4685"
transform="scale(0.98720112,1.0129648)" /><path
d="m 560.98952,302.36233 q -10.04923,0 -17.62256,-5.17026 -7.50051,-5.17025 -11.21436,-13.83589 -3.64103,-8.73846 -2.18462,-19.29744 1.09231,-8.01025 4.87898,-14.9282 3.85949,-6.99077 9.6123,-12.23385 5.75282,-5.31589 12.74359,-8.30153 7.06359,-2.98564 14.5641,-2.98564 10.04923,0 17.54974,5.17025 7.57334,5.17026 11.28718,13.90872 3.71385,8.73846 2.18462,19.37025 -1.09231,7.93744 -4.9518,14.85539 -3.78666,6.91794 -9.53948,12.23384 -5.75282,5.24308 -12.74359,8.22872 -6.99077,2.98564 -14.5641,2.98564 z m 2.11179,-15.14667 q 6.04411,0 11.28718,-3.2041 5.24308,-3.2041 8.81128,-8.44718 3.64103,-5.31589 4.44205,-11.50564 0.87385,-6.33538 -1.23795,-11.65128 -2.11179,-5.31589 -6.48102,-8.44718 -4.36923,-3.2041 -10.26769,-3.2041 -5.97128,0 -11.28718,3.2041 -5.24308,3.20411 -8.81128,8.52 -3.5682,5.3159 -4.44205,11.57846 -0.87385,6.48103 1.23795,11.7241 2.18461,5.24308 6.55384,8.37436 4.36923,3.05846 10.19487,3.05846 z"
style="font-size:145.641px;font-family:Urbanist;-inkscape-font-specification:'Urbanist, @ital=1.00,wght=600';font-variation-settings:'ital' 1, 'wght' 600;fill:#ffffff;stroke-width:3.4;stroke-linecap:round;stroke-linejoin:bevel;paint-order:stroke fill markers"
id="path4687"
transform="scale(0.98720112,1.0129648)" /><path
d="m 670.72839,300.46899 h -17.47692 l -13.54461,-30.87589 -13.69026,13.98154 -2.40307,16.89435 h -15.14667 l 15.36513,-109.23075 h 15.14666 l -9.68512,68.81537 31.67692,-32.40512 h 19.80717 l -28.98256,29.63795 z"
style="font-size:145.641px;font-family:Urbanist;-inkscape-font-specification:'Urbanist, @ital=1.00,wght=600';font-variation-settings:'ital' 1, 'wght' 600;fill:#ffffff;stroke-width:3.4;stroke-linecap:round;stroke-linejoin:bevel;paint-order:stroke fill markers"
id="path4689"
transform="scale(0.98720112,1.0129648)" /><path
d="m 710.01342,302.36233 q -10.04923,0 -17.62256,-5.17026 -7.50051,-5.17025 -11.21436,-13.83589 -3.64102,-8.73846 -2.18461,-19.29744 1.09231,-8.01025 4.87897,-14.9282 3.85949,-6.99077 9.61231,-12.23385 5.75282,-5.31589 12.74359,-8.30153 7.06358,-2.98564 14.5641,-2.98564 8.37435,0 14.85538,3.49538 6.48102,3.42256 10.55897,9.53949 4.15077,6.0441 5.3159,13.98153 1.23795,7.86462 -0.94667,16.74872 h -56.07179 q 0.14565,5.02461 2.33026,9.10256 2.18462,4.00513 6.0441,6.33539 3.93231,2.33025 9.24821,2.40307 5.53435,0 10.48615,-2.76718 4.95179,-2.76718 8.52,-7.64615 l 14.85538,3.56821 q -5.75282,9.68512 -15.43795,15.87486 -9.6123,6.11693 -20.53538,6.11693 z m -14.41846,-44.56615 h 41.36205 q 0,-5.24308 -2.33026,-9.46667 -2.33025,-4.29641 -6.4082,-6.7723 -4.07795,-2.54872 -9.32103,-2.54872 -5.17025,0 -9.90358,2.4759 -4.73334,2.47589 -8.22872,6.7723 -3.49539,4.22359 -5.17026,9.53949 z"
style="font-size:145.641px;font-family:Urbanist;-inkscape-font-specification:'Urbanist, @ital=1.00,wght=600';font-variation-settings:'ital' 1, 'wght' 600;fill:#ffffff;stroke-width:3.4;stroke-linecap:round;stroke-linejoin:bevel;paint-order:stroke fill markers"
id="path4691"
transform="scale(0.98720112,1.0129648)" /><path
fill-rule="evenodd"
clip-rule="evenodd"
d="m 39.782,41.7207 c -19.9967,22.5928 -19.0962,79.3023 -0.977,79.3023 12.5877,0 14.4521,-0.235 18.6508,-0.765 1.8451,-0.233 4.1409,-0.523 7.9954,-0.874 11.8103,-1.078 8.7256,-9.687 5.4833,-18.735 -2.1148,-5.9018 -4.2966,-11.9907 -2.4568,-16.2997 1.799,-4.2134 11.2308,-3.267 21.6295,-2.2235 9.5054,0.9538 19.8188,1.9886 25.8488,-0.7624 12.626,-5.7606 11.478,-35.0342 0,-45.4033 C 104.477,25.591 56.0977,23.2867 39.782,41.7207 Z m 43.8584,26.4989 c 4.6659,0 11.377,-1.8662 11.9479,-8.398 0.0288,-0.3298 0.0587,-0.6612 0.0886,-0.9937 0.6497,-7.211 1.3445,-14.924 -7.4412,-17.6686 -11.9479,-3.7324 -17.4623,11.15 -17.4623,18.6623 0,6.5318 8.201,8.398 12.867,8.398 z"
fill="url(#paint0_linear_9_6)"
id="path1134-9-9"
style="fill:#ffffff;fill-opacity:1;stroke-width:0.758265"
transform="matrix(1.14839,0,0,1.14839,288.64294,165.19861)"
inkscape:export-filename="./path1134-90-9.svg"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" /></g></g></svg>

After

Width:  |  Height:  |  Size: 6.5 KiB

BIN
src/assets/poke.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 213 KiB

BIN
src/assets/red-tape.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 263 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 670 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1,020 KiB

View file

@ -0,0 +1,77 @@
---
// Properties
const {
ID,
Title,
Creator,
Views,
UploadDate,
Length
} = Astro.props
// i18n
import { t } from "i18next"
// Format Published Date
const DateFormat = new Date(UploadDate * 1000).toLocaleDateString()
// Format Video Length
// Thanks to "mingjunlu" for helping out with the time format
// Format Views
const ViewsConversion = Intl.NumberFormat('en', { notation: 'compact'})
const ViewsFormat = ViewsConversion.format(Views)
---
<a href={'/watch?v=' + ID} class="video-item" data-astro-reload>
<div class="video-item-thumbnail">
<img src={'https://yt.sudovanilla.org/vi/' + ID + '/hqdefault.jpg'}/>
</div>
<div class="video-item-details">
<p id="vi-title">{Title}</p>
<p id="vi-author">{t("watch.By")} {Creator}</p>
<p id="vi-viewCount">{ViewsFormat} {t("watch.Views")} - {DateFormat}</p>
</div>
</a>
<style lang="scss">
.video-item {
display: flex;
flex-direction: column;
color: white;
text-decoration: none;
.video-item-thumbnail {
img {
width: 100%;
border-radius: 6px;
aspect-ratio: 16/9;
object-fit: contain;
background: #cfcfcf;
object-fit: cover;
}
p#vi-length {
margin: -41px 8px 0px 0px;
background: rgba(0,0,0,0.75);
padding: 6px 12px;
width: max-content;
border-radius: 3rem;
position: relative;
float: right;
font-size: 14px;
}
}
.video-item-details {
display: flex;
flex-direction: column;
p {
margin: 0px;
&#vi-title {
font-weight: bold;
}
&#vi-author {
color: darkgrey;
}
}
}
}
</style>

View file

@ -0,0 +1,8 @@
---
const {
Text,
Align = "left"
} = Astro.props
---
<h1 style={'text-align: ' + Align} class="page-title">{Text}</h1>

View file

View file

@ -0,0 +1,45 @@
---
// i18n
import i18next, { t } from "i18next";
import { Trans, HeadHrefLangs } from "astro-i18next/components";
// Cookies
/// Language
//// If the user is new to the site, set English as default
if (Astro.cookies.get("Language") === undefined) {
Astro.cookies.set("Language", "EN", {path: "/",sameSite: 'strict'})
}
//// Check what language the user has set it to and switch to it
var UserLanguage = Astro.cookies.get("Language").value
if (UserLanguage === "JP") {i18next.changeLanguage("jp")}
else if (UserLanguage === "EN") {i18next.changeLanguage("en")}
// Properties
const {
Title,
Description
} = Astro.props
// Components
import { ViewTransitions } from 'astro:transitions';
import { slide } from "astro/virtual-modules/transitions.js";
---
<!DOCTYPE html>
<html>
<head>
<ViewTransitions transition:animate={slide} />
<title>{Title}</title>
<link href=/favicon.ico rel=icon>
<link rel="manifest" href="/manifest.json">
<meta charset="UTF-8">
<meta name="darkreader-lock">
<meta name="theme-color" content="#414161">
<meta http-equiv="content-language" content="en-us">
<meta name="viewport" content="width=device-1200px, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, shrink-to-fit=yes, viewport-fit=cover, width=device-width, height=device-height, target-densitydpi=device-dpi">
<meta content="▶▶ Poke - The privacy app of your dreams!" property=og:title>
<meta content="Poke is a free software YouTube front-end, search engine, translator, map app, and more!! Watch silly videos, search the internet, and do all of that and more anonymously in this all-in-one privacy app!!!" property="twitter:description">
<meta content="https://cdn.glitch.global/302c6ee0-629f-453b-9024-bad1f8d7be36/poke.png?v=1716216428745" property="og:image">
<meta content="summary_large_image" name="twitter:card" />

View file

@ -0,0 +1,286 @@
---
// i18n
import i18next, { t } from "i18next";
import { Trans, HeadHrefLangs } from "astro-i18next/components";
// Components
import { Image } from 'astro:assets';
import Dropdown from '@components/global/HeaderDropdown.astro';
import InlinePlayer from "./InlinePlayer.astro";
// Check URL
if (Astro.url.pathname.startsWith('/watch')) {
console.log('true')
var WatchPage = true
} else {
console.log('false')
var WatchPage = false
}
// Images
import Poke from '@assets/poke-text.svg'
// Icons
import {
RefreshDouble,
Search,
Menu
} from '@iconoir/vue'
---
<header id="header-desktop">
<div class="header-content">
<div class="header-start">
<a href={'/'}><Image src={Poke} alt="Poke Logo" height={24} /></a>
</div>
<div class="header-center"></div>
<div class="header-end">
<button onclick="FocusSearch()" transition:persist="searchbar">
<RefreshDouble style="display: none;" id="search-header-load"/>
<Search id="search-header-icon"/>
<form onsubmit="return Search()">
<input type="search" placeholder="Search"/>
</form>
</button>
<button onclick="ToggleHeaderDropdown()"><Menu/> Menu</button>
<div class="suggestions"></div>
</div>
<Dropdown/>
</div>
</header>
<!-- Don't use the Inline Player on video pages -->
{WatchPage ? null : <InlinePlayer/>}
<!-- Search Scripts -->
<script is:inline>
/*
@licstart The following is the entire license notice for the
JavaScript code in this page.
Copyright (C) 2024 SudoVanilla
The JavaScript code in this page is free software: you can
redistribute it and/or modify it under the terms of the GNU
General Public License (GNU GPL) as published by the Free Software
Foundation, either version 3 of the License, or (at your option)
any later version. The code is distributed WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
As additional permission under GNU GPL version 3 section 7, you
may distribute non-source (e.g., minimized or compacted) forms of
that code without the copy of the GNU GPL normally required by
section 4, provided you include this license notice and a URL
through which recipients can access the Corresponding Source.
@licend The above is the entire license notice
for the JavaScript code in this page.
*/
// Focus input
function FocusSearch() {
document.querySelector('input[type="search"]').focus()
}
// Trigger Search
function Search() {
var SearchIcon = document.getElementById('search-header-icon')
SearchIcon.style.display = 'none'
var SearchLoading = document.getElementById('search-header-load')
SearchLoading.style.display = 'inherit'
var SearchQuery = document.querySelector('input[type="search"]').value
location.href = `/search?q=${SearchQuery}`
}
///// Suggestions /////
// Dismiss when the end-user clicks else where
document.body.addEventListener("click", function (evt) {
document.querySelector('.suggestions').style.opacity = '0'
});
// When the end-user starts typing, trigget the fetch function
document.querySelector('input[type="search"]').addEventListener('input', function(e) {
if (e.target.value !== '') {
document.querySelector('.suggestions').style.opacity = '1'
GetResults()
}
else {null}
});
// Fetch
function GetResults() {
var SearchValue = document.querySelector('input[type="search"]').value
var YouTubeSuggestions = document.querySelector('.suggestions')
fetch(`https://yt.sudovanilla.org/api/v1/search/suggestions?q=${SearchValue}`)
.then(response => response.json())
.then(data => {YouTubeSuggestions.innerHTML = ListOfSuggestionsYT(data)})
}
// Create List
function ListOfSuggestionsYT(data) {
const text = data.suggestions.map(data => `<a href="/search?query=${data}">${data}</a>`).join("\n")
return `${text}`
}
</script>
<style is:global lang="scss">
@media only screen and (max-width: 820px) {
:root {
--MaxSearchbarWidth: 100% !important;
}
.content {
margin-top: 0px !important;
padding-bottom: 92px !important;
}
.landing {
margin-top: 40px !important;
img:nth-child(1) {
display: none;
}
img:nth-child(1) {
height: inherit;
width: 100%;
}
}
header {
top: inherit !important;
bottom: 18px;
padding-bottom: env(safe-area-inset-bottom);
background: transparent !important;
border: none !important;
}
.header-content {
background: rgba(0,0,0,0.5);
width: calc(100% - 96px) !important;
border-radius: 42px;
border: 1px #222 solid;
backdrop-filter: blur(22px) contrast(0.9);
}
.suggestions, .header-dropdown {
top: inherit !important;
bottom: 80px;
}
// Search
.channel {
min-width: 180px !important;
}
.tc-info {
flex-direction: column;
padding: 24px 0px 50px 0px !important;
h2 {
font-size: 14px !important;
}
p {
display: none;
}
}
}
</style>
<style lang="scss">
:root {
--MaxSearchbarWidth: 300px !important;
}
header {
position: fixed;
top: 0px;
left: 0px;
width: 100%;
background: #161616;
border-bottom: 2px #232323 solid;
z-index: 5;
.header-content {
display: flex;
justify-content: space-between;
padding: 12px 24px;
align-items: center;
margin: auto;
max-width: 1200px;
width: 100%;
position: relative;
.header-end {
display: flex;
gap: 6px;
button {
background: transparent;
color: white;
display: flex;
align-items: center;
gap: 6px;
border-radius: 3rem;
padding: 6px 12px;
border: 2px rgba(255, 255, 255, 0) solid;
backdrop-filter: blur(24px);
transition: 0.3s backdrop-filter;
svg {
width: 16px;
}
&:hover, &:focus {
backdrop-filter: blur(12px) brightness(0.8);
transition: 0.3s backdrop-filter;
}
input {
background: transparent;
color: white;
border: none;
cursor: text;
width: 54px;
transition: 1s width;
&:hover {
width: 64px;
transition: 0.3s width;
}
&:focus {
width: var(--MaxSearchbarWidth);
transition: 0.3s width;
}
}
}
button[onclick="FocusSearch()"] {
cursor: text !important;
* {
cursor: text !important;
}
}
.suggestions {
opacity: 0;
position: absolute;
right: 0px;
width: 450px;
display: grid;
gap: 2px;
top: 70px;
border-radius: 6px;
padding: 4px;
backdrop-filter: blur(24px) brightness(0.5) contrast(0.7);
.suggestions a {
text-decoration: none !important;
padding: 4px 12px !important;
border-radius: 4px !important;
&:hover {
background: #ffffff1f !important;
text-decoration: underline !important;
}
}
}
}
}
}
@keyframes SpinMeRoundBaby {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg)
}
}
#search-header-load {
animation: 1s SpinMeRoundBaby infinite linear;
}
</style>

View file

@ -0,0 +1,180 @@
---
// i18n
import i18next, { t } from "i18next";
import { Trans, HeadHrefLangs } from "astro-i18next/components";
// Icons
import {
RefreshDouble,
Search,
Menu,
LogIn,
Settings,
ProfileCircle,
CircleSpark,
Youtube,
OpenNewWindow,
ViewGrid,
Arcade,
InfoCircle,
PrivacyPolicy,
Code,
Language,
NavArrowLeft,
NavArrowRight,
List
} from '@iconoir/vue'
// Check URL
if (Astro.url.pathname.startsWith('/watch')) {
var WatchPage = true
} else {
var WatchPage = false
}
---
<div id="primary" class="header-dropdown">
<p>{t('dropdown.Options')}</p>
<a onclick="ToggleHeaderDropdown(); ToggleHeaderLanguageDropdown()" style="justify-content: space-between;"><div><Language/> {t('dropdown.Language')}</div> <NavArrowRight/></a>
<a href=""><ProfileCircle/> {t('dropdown.Account')}</a>
<a href=""><Settings/> {t('dropdown.Settings')}</a>
<a href=""><List/> {t('dropdown.Instances')}</a>
<p>{t('dropdown.Hub')}</p>
<a data-astro-prefetch href=""><ViewGrid/> {t('dropdown.Apps')}</a>
<a data-astro-prefetch href=""><Arcade/> {t('dropdown.Games')}</a>
<!-- Only show this if the end-user is watching a video -->
{WatchPage ?
<p>{t('dropdown.Openin')}</p>
<a href=""><CircleSpark/> {t('dropdown.LiteMode')}</a>
<a href=""><Youtube/> {t('dropdown.YouTube')}</a>
<a href=""><OpenNewWindow/> {t('dropdown.Invidious')}</a>
<a href=""><OpenNewWindow/> {t('dropdown.Pipe')}</a>
:
null
}
<p>{t('dropdown.Other')}</p>
<a data-astro-prefetch href="/about/"><InfoCircle/> {t('dropdown.About')}</a>
<a data-astro-prefetch href=""><PrivacyPolicy/> {t('dropdown.Privacy')}</a>
<a data-astro-prefetch href=""><Code/> {t('dropdown.SourceCode')}</a>
</div>
<div id="language" class="header-dropdown">
<p>{t('dropdown.Language')}</p>
<a onclick="ToggleHeaderDropdown(); ToggleHeaderLanguageDropdown()"><NavArrowLeft/> {t("dropdown.GoBack")}</a>
<a href="/api/language/en/">English</a>
<a href="/api/language/jp/">日本語</a>
</div>
<!-- Dropdown Scripts -->
<script is:inline>
/*
@licstart The following is the entire license notice for the
JavaScript code in this page.
Copyright (C) 2024 SudoVanilla
The JavaScript code in this page is free software: you can
redistribute it and/or modify it under the terms of the GNU
General Public License (GNU GPL) as published by the Free Software
Foundation, either version 3 of the License, or (at your option)
any later version. The code is distributed WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
As additional permission under GNU GPL version 3 section 7, you
may distribute non-source (e.g., minimized or compacted) forms of
that code without the copy of the GNU GPL normally required by
section 4, provided you include this license notice and a URL
through which recipients can access the Corresponding Source.
@licend The above is the entire license notice
for the JavaScript code in this page.
*/
// Dismiss when the end-user clicks else where
document.body.addEventListener("click", function (evt) {
document.querySelector(".header-dropdown#primary").style.display = "none";
});
// Toggle Primary Dropdown
function ToggleHeaderDropdown() {
var HeaderDropdown = document.querySelector(".header-dropdown#primary");
if (HeaderDropdown.style.display === "flex") {
setTimeout(() => {
HeaderDropdown.style.display = "none";
}, 0o100);
} else {
setTimeout(() => {
HeaderDropdown.style.display = "flex";
}, 0o100);
}
}
// Toggle Language Dropdown
function ToggleHeaderLanguageDropdown() {
var HeaderLanguageDropdown = document.querySelector(".header-dropdown#language");
if (HeaderLanguageDropdown.style.display === "flex") {
HeaderLanguageDropdown.style.display = "none";
} else {
HeaderLanguageDropdown.style.display = "flex";
}
}
</script>
<style lang="scss">
.dropdown-button {
color: white;
background: transparent;
border: none;
border-radius: 6px;
aspect-ratio: 1;
padding: 4px 6px;
&:hover {
background: rgba(255, 255, 255, 0.1);
}
svg {
width: 18px;
pointer-events: none;
}
}
.header-dropdown {
display: none;
flex-direction: column;
position: absolute;
top: 70px;
right: 24px;
background: transparent;
border-radius: 12px;
gap: 6px;
padding: 12px 6px 8px 6px;
backdrop-filter: blur(24px) brightness(0.1) contrast(0.9);
z-index: 5;
p {
margin: 0px 0px 0px 12px;
color: gray;
font-size: 12px;
}
a {
display: flex;
align-items: center;
gap: 12px;
font-size: 14px;
text-decoration: none;
padding: 6px 12px !important;
aspect-ratio: inherit !important;
min-width: 200px;
border-radius: 6px;
&:hover {
background: rgba(255, 255, 255, 0.1);
}
div {
display: flex;
align-items: center;
gap: 12px;
}
}
}
</style>

View file

@ -0,0 +1,69 @@
---
// Cookies
var VideoId = Astro.cookies.get('InlinePlayerId').value
// Icons
import { OpenNewWindow, Xmark } from "@iconoir/vue";
---
<div class="inline-player">
<div class="inline-player-content">
<div class="inline-player-actions">
<a href={'/watch?v=' + VideoId}><OpenNewWindow/></a>
<button onclick="CloseInlinePlayer()"><Xmark/></button>
</div>
<video controls autoplay transition:persist="poke-player"></video>
</div>
</div>
<script is:inline>
if(document.querySelector('.inline-player video').src === "") {
document.querySelector('.inline-player').style.display = 'none'
} else {
null
}
function CloseInlinePlayer() {
document.querySelector('.inline-player video').src = 'null'
document.querySelector('.inline-player').style.display = 'none'
}
</script>
<style is:global lang="scss">
.inline-player {
position: fixed;
bottom: 0px;
right: 0px;
z-index: 50;
margin: 32px;
width: 360px;
.inline-player-content {
padding: relative;
.inline-player-actions {
position: absolute;
right: 0px;
z-index: 15;
margin: 12px;
a, button {
color: white;
background: rgba(150,150,150,0.25);
border-radius: 3rem;
border: none;
aspect-ratio: 1;
cursor: pointer;
text-decoration: none;
}
}
video {
position: relative !important;
width: 100% !important;
height: 100% !important;
opacity: 1 !important;
z-index: 10 !important;
pointer-events: all !important;
object-fit: contain !important;
border-radius: 12px;
}
}
}
</style>

View file

@ -0,0 +1,78 @@
---
const {
Name,
Avatar,
Link,
Platform,
Banner,
Followers
} = Astro.props
---
<a href={Link} class={'search-creator'}>
<div class="search-creator-media">
<p>
{
()=> {
if (Platform === "YouTube") {
return <span>Subs: </span>
} else if (Platform === "Twitch") {
return <span>Followers: </span>
}
}
}
{Followers}
</p>
<img class="scm-banner" alt={Name + "'s banner"} src={Banner}/>
<img class="scm-avatar" alt={Name + "'s avatar"} src={Avatar}/>
</div>
<div class="search-creator-meta">
<p><strong>{Name}</strong></p>
</div>
</a>
<style lang="scss">
.search-creator {
background: #181818;
border-radius: 12px;
padding: 4px;
text-decoration: none;
* {cursor: var(--pointer-cursor) !important}
.search-creator-media {
position: relative;
p {
position: absolute;
right: 24px;
background: black;
border-radius: 1rem;
padding: 6px 12px;
}
.scm-banner {
aspect-ratio: 16/9;
width: 360px;
height: 140px;
object-fit: cover;
border-radius: 12px;
}
.scm-avatar {
position: absolute;
left: 12px;
bottom: -32px;
border-radius: 3rem;
border: 2px white solid;
width: 80px;
}
}
.search-creator-meta {
padding-left: 104px;
p {
// Truncate
max-width: 250px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
display: inherit;
}
}
}
</style>

View file

@ -0,0 +1,68 @@
---
const {
Title,
Creator,
Avatar,
Link,
Thumbnail,
Views
} = Astro.props
---
<a href={Link} class='search-stream search-stream-platfom-twitch'>
<div class="search-stream-media">
<p>{Views}</p>
<img class="ssm-banner" alt='Stream Thumbnail' src={Thumbnail}/>
</div>
<div class="search-stream-meta">
<img alt={Creator + "'s avatar"} src={Avatar}/>
<div>
<p><strong>{Title}</strong></p>
<p>{Creator}</p>
</div>
</div>
</a>
<style lang="scss">
.search-stream {
background: #181818;
border-radius: 12px;
padding: 4px;
text-decoration: none;
* {cursor: var(--pointer-cursor) !important}
.search-stream-media {
position: relative;
p {
position: absolute;
right: 24px;
background: black;
border-radius: 1rem;
padding: 6px 12px;
}
.ssm-banner {
aspect-ratio: 16/9;
height: 360px;
object-fit: cover;
border-radius: 12px;
}
}
.search-stream-meta {
display: flex;
align-items: center;
gap: 12px;
p {
// Truncate
max-width: 530px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
display: inherit;
}
img {
width: 64px;
height: 64px;
border-radius: 3rem;
}
}
}
</style>

2
src/env.d.ts vendored Normal file
View file

@ -0,0 +1,2 @@
/// <reference path="../.astro/actions.d.ts" />
/// <reference types="astro/client" />

25
src/layouts/Default.astro Normal file
View file

@ -0,0 +1,25 @@
---
// Properties
const {
Title,
Description
} = Astro.props
// Components
import Head from '@components/global/Head.astro'
import Header from '@components/global/Header.astro'
import Footer from '@components/global/Footer.astro'
// Styles
import '@styles/index.scss'
import '@fontsource-variable/roboto-flex';
---
<Head Title={Title} Description={Description}/>
<Header/>
<body>
<div class="content">
<slot/>
</div>
<Footer/>
</body>

70
src/layouts/Error.astro Normal file
View file

@ -0,0 +1,70 @@
---
// Properties
const { ErrorMessage } = Astro.props
// i18n
import i18next, { t } from "i18next";
import { Trans, HeadHrefLangs } from "astro-i18next/components";
import { EmojiSad } from "@iconoir/vue";
---
<html>
<head>
<title>Poke</title>
<meta name="darkreader-lock" />
<meta content="#111111" name="theme-color" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no, viewport-fit=cover" />
</head>
<body>
<video playsinline autoplay muted loop class="landing-background" src="/flurry-background.webm" type="video/webm"/>
<div class="error">
<h2><EmojiSad/> Something Happened!</h2>
<p>{ErrorMessage}</p>
</div>
</body>
</html>
<style lang="scss" is:inline>
body {
margin: auto;
background: #111111;
color: white;
font-family: arial;
max-width: 600px;
}
video {
filter: saturate(0);
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
z-index: -1;
opacity: .27;
pointer-events: none;
}
body::before {
background: black;
content: "";
position: fixed;
bottom: 0px;
left: 0px;
width: 100%;
height: 100%;
z-index: -1;
pointer-events: none;
transition: 1s height;
}
.error {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
text-align: center;
cursor: default;
max-width: 600px;
width: 100%;
}
</style>

5
src/pages/404.astro Normal file
View file

@ -0,0 +1,5 @@
---
import ErrorLayout from "@layouts/Error.astro";
---
<ErrorLayout ErrorMessage="Page not found."/>

10
src/pages/500.astro Normal file
View file

@ -0,0 +1,10 @@
---
import ErrorLayout from "@layouts/Error.astro";
interface Props {
error: unknown;
}
const { error } = Astro.props;
---
<ErrorLayout ErrorMessage={error}/>

6
src/pages/about.astro Normal file
View file

@ -0,0 +1,6 @@
---
// Layout
import Base from "@layouts/Default.astro";
---
<Base Title="Poke" Description="▶▶ Poke - The privacy app of your dreams!"></Base>

View file

@ -0,0 +1,8 @@
---
Astro.cookies.set("Language", "EN", {
path: "/",
sameSite: "strict"
});
return Astro.redirect("/");
---
<style is:global>body {background: black}</style>

View file

@ -0,0 +1,8 @@
---
Astro.cookies.set("Language", "JP", {
path: "/",
sameSite: "strict"
});
return Astro.redirect("/");
---
<style is:global>body {background: black}</style>

278
src/pages/index.astro Normal file
View file

@ -0,0 +1,278 @@
---
// Layout
import Base from "@layouts/Default.astro";
// i18n
import i18next, { t } from "i18next";
import { Trans, HeadHrefLangs } from "astro-i18next/components";
// Components
import { Image } from 'astro:assets';
// Images
import WebScreenshot from '@assets/screenshots/web.png'
import MobileScreenshot from '@assets/screenshots/mobile.jpg'
import Chan from '@assets/chan/v2.png'
---
<Base Title="Poke" Description="▶▶ Poke - The privacy app of your dreams!">
<video playsinline autoplay muted loop class="landing-background" src="/flurry-background.webm" type="video/webm"/>
<div class="landing">
<h1><span style="-webkit-text-stroke: 1px white; color: transparent;">{t("landing.heading1")}</span> {t("landing.heading2")}</h1>
<p style="max-width: 800px;">{t("landing.description")}</p>
<div style="display: flex; gap: 12px;">
<Image src={WebScreenshot} alt="Web screenshot"/>
<Image src={MobileScreenshot} alt="Web screenshot"/>
<Image id="chan" src={Chan} alt="Poke-Chan"/>
</div>
<!-- Icons are from Iconoir -->
<h1 style="margin-left: auto;margin-right: auto;text-align: center;margin-bottom: -1em;margin-top: 1em;"> {t("landing.why")} </h1>
<div class="new-feature-set">
<div class="feature-set">
<div class="feature-set-title">
<?xml version="1.0" encoding="UTF-8"?><svg style="background: #ea6d6d;" width="24px" height="24px" viewBox="0 0 24 24" stroke-width="1.5" fill="none" xmlns="http://www.w3.org/2000/svg" color="#ffffff" style="--darkreader-inline-color: #e8e6e3;" data-darkreader-inline-color=""><path d="M19.5 16L17.0248 12.6038" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" style="--darkreader-inline-stroke: #ffffff;" data-darkreader-inline-stroke=""></path><path d="M12 17.5V14" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" style="--darkreader-inline-stroke: #ffffff;" data-darkreader-inline-stroke=""></path><path d="M4.5 16L6.96895 12.6124" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" style="--darkreader-inline-stroke: #ffffff;" data-darkreader-inline-stroke=""></path><path d="M3 8C6.6 16 17.4 16 21 8" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" style="--darkreader-inline-stroke: #ffffff;" data-darkreader-inline-stroke=""></path></svg>
<h2>{t("landing.Card1Title")}</h2>
</div>
<p>{t("landing.Card1Description")}</p>
</div>
<div class="feature-set">
<div class="feature-set-title">
<?xml version="1.0" encoding="UTF-8"?><svg style="background: #6d8cea;" width="24px" height="24px" stroke-width="1.5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" color="#ffffff" style="--darkreader-inline-color: #e8e6e3;" data-darkreader-inline-color=""><path d="M15 7C16.1046 7 17 6.10457 17 5C17 3.89543 16.1046 3 15 3C13.8954 3 13 3.89543 13 5C13 6.10457 13.8954 7 15 7Z" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" style="--darkreader-inline-stroke: #ffffff;" data-darkreader-inline-stroke=""></path><path d="M12.6133 8.26691L9.30505 12.4021L13.4403 16.5374L11.3727 21.0861" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" style="--darkreader-inline-stroke: #ffffff;" data-darkreader-inline-stroke=""></path><path d="M6.4104 9.5075L9.79728 6.19931L12.6132 8.26692L15.508 11.5752H19.2297" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" style="--darkreader-inline-stroke: #ffffff;" data-darkreader-inline-stroke=""></path><path d="M8.89152 15.7103L7.65095 16.5374H4.34277" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" style="--darkreader-inline-stroke: #ffffff;" data-darkreader-inline-stroke=""></path></svg>
<h2>{t("landing.Card2Title")}</h2>
</div>
<p>{t("landing.Card2Description")}</p>
</div>
<div class="feature-set">
<div class="feature-set-title">
<?xml version="1.0" encoding="UTF-8"?><svg style="background: #519355;" width="24px" height="24px" stroke-width="1.5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" color="#ffffff" style="--darkreader-inline-color: #e8e6e3;" data-darkreader-inline-color=""><path d="M12 8V16M12 16L15.5 12.5M12 16L8.5 12.5" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" style="--darkreader-inline-stroke: #ffffff;" data-darkreader-inline-stroke=""></path><path d="M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" style="--darkreader-inline-stroke: #ffffff;" data-darkreader-inline-stroke=""></path></svg>
<h2>{t("landing.Card3Title")}</h2>
</div>
<p>{t("landing.Card3Description")}</p>
</div>
<div class="feature-set">
<div class="feature-set-title">
<?xml version="1.0" encoding="UTF-8"?><svg style="background: #ea6ddc;" width="24px" height="24px" stroke-width="1.5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" color="#ffffff" style="--darkreader-inline-color: #e8e6e3;" data-darkreader-inline-color=""><path d="M21 12V10C21 7.23858 18.7614 5 16 5H8C5.23858 5 3 7.23858 3 10V10C3 12.7614 5.23858 15 8 15H12" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" style="--darkreader-inline-stroke: #ffffff;" data-darkreader-inline-stroke=""></path><path d="M20.1241 19.1185C20.6654 18.5758 21 17.827 21 17C21 15.3431 19.6569 14 18 14C16.3431 14 15 15.3431 15 17C15 18.6569 16.3431 20 18 20C18.8299 20 19.581 19.663 20.1241 19.1185ZM20.1241 19.1185L22 21" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" style="--darkreader-inline-stroke: #ffffff;" data-darkreader-inline-stroke=""></path></svg>
<h2>{t("landing.Card4Title")}</h2>
</div>
<p>{t("landing.Card4Description")}</p>
</div>
<div class="feature-set">
<div class="feature-set-title">
<?xml version="1.0" encoding="UTF-8"?><svg style="background: #b7a358;" width="24px" height="24px" stroke-width="1.5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" color="#ffffff" style="--darkreader-inline-color: #e8e6e3;" data-darkreader-inline-color=""><path d="M4.62323 5.24841C2.99408 7.02743 2 9.39765 2 12C2 17.5229 6.47715 22 12 22C14.5361 22 16.8517 21.0559 18.6146 19.5" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" style="--darkreader-inline-stroke: #ffffff;" data-darkreader-inline-stroke=""></path><path d="M21.3021 15.6775C21.7525 14.5392 22 13.2985 22 12C22 6.47715 17.5228 2 12 2C10.7687 2 9.58934 2.22255 8.5 2.62961" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" style="--darkreader-inline-stroke: #ffffff;" data-darkreader-inline-stroke=""></path><path d="M9 15C9.64448 15.8593 10.8428 16.3494 12 16.391C13.1141 16.431 14.1901 16.0554 14.6973 15.1933" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" style="--darkreader-inline-stroke: #ffffff;" data-darkreader-inline-stroke=""></path><path d="M12 16.391V18.5" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" style="--darkreader-inline-stroke: #ffffff;" data-darkreader-inline-stroke=""></path><path d="M9.5 9.5C9.5 10.6811 10.3525 11.1647 11.3862 11.5" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" style="--darkreader-inline-stroke: #ffffff;" data-darkreader-inline-stroke=""></path><path d="M15 8.5C14.315 7.81501 13.1087 7.33855 12 7.30872V5.5" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" style="--darkreader-inline-stroke: #ffffff;" data-darkreader-inline-stroke=""></path><path d="M3 3L21 21" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" style="--darkreader-inline-stroke: #ffffff;" data-darkreader-inline-stroke=""></path></svg>
<h2>{t("landing.Card5Title")}</h2>
</div>
<p>{t("landing.Card5Description")}</p>
</div>
<div class="feature-set">
<div class="feature-set-title">
<?xml version="1.0" encoding="UTF-8"?><svg style="background: #886dea;" width="24px" height="24px" viewBox="0 0 24 24" stroke-width="1.5" fill="none" xmlns="http://www.w3.org/2000/svg" color="#ffffff"><path d="M17.5 17.5C20 21 23.9486 18.4151 23 15C21.5753 9.87113 20.8001 7.01556 20.3969 5.50793C20.1597 4.62136 19.3562 4 18.4384 4L5.56155 4C4.64382 4 3.844 4.62481 3.62085 5.515C2.7815 8.86349 2.0326 11.8016 1.14415 15C0.195501 18.4151 4.14415 21 6.64415 17.5" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M16 4V6C16 7.10457 15.1046 8 14 8H10C8.89543 8 8 7.10457 8 6L8 4" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M8 16C9.10457 16 10 15.1046 10 14C10 12.8954 9.10457 12 8 12C6.89543 12 6 12.8954 6 14C6 15.1046 6.89543 16 8 16Z" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M16 16C17.1046 16 18 15.1046 18 14C18 12.8954 17.1046 12 16 12C14.8954 12 14 12.8954 14 14C14 15.1046 14.8954 16 16 16Z" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg>
<h2>{t("landing.Card6Title")}</h2>
</div>
<p>{t("landing.Card6Description")}</p>
</div>
</div>
<div class="adaptive-grid">
<div class="card">
<div class="card-title">
<h2>Join Us</h2>
<br/>
<p>join our community if you want to! :3</p>
</div>
<div class="card-actions">
<a class="card-secondary" href="https://discord.poketube.fun"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M524.5 69.8a1.5 1.5 0 0 0 -.8-.7A485.1 485.1 0 0 0 404.1 32a1.8 1.8 0 0 0 -1.9 .9 337.5 337.5 0 0 0 -14.9 30.6 447.8 447.8 0 0 0 -134.4 0 309.5 309.5 0 0 0 -15.1-30.6 1.9 1.9 0 0 0 -1.9-.9A483.7 483.7 0 0 0 116.1 69.1a1.7 1.7 0 0 0 -.8 .7C39.1 183.7 18.2 294.7 28.4 404.4a2 2 0 0 0 .8 1.4A487.7 487.7 0 0 0 176 479.9a1.9 1.9 0 0 0 2.1-.7A348.2 348.2 0 0 0 208.1 430.4a1.9 1.9 0 0 0 -1-2.6 321.2 321.2 0 0 1 -45.9-21.9 1.9 1.9 0 0 1 -.2-3.1c3.1-2.3 6.2-4.7 9.1-7.1a1.8 1.8 0 0 1 1.9-.3c96.2 43.9 200.4 43.9 295.5 0a1.8 1.8 0 0 1 1.9 .2c2.9 2.4 6 4.9 9.1 7.2a1.9 1.9 0 0 1 -.2 3.1 301.4 301.4 0 0 1 -45.9 21.8 1.9 1.9 0 0 0 -1 2.6 391.1 391.1 0 0 0 30 48.8 1.9 1.9 0 0 0 2.1 .7A486 486 0 0 0 610.7 405.7a1.9 1.9 0 0 0 .8-1.4C623.7 277.6 590.9 167.5 524.5 69.8zM222.5 337.6c-29 0-52.8-26.6-52.8-59.2S193.1 219.1 222.5 219.1c29.7 0 53.3 26.8 52.8 59.2C275.3 311 251.9 337.6 222.5 337.6zm195.4 0c-29 0-52.8-26.6-52.8-59.2S388.4 219.1 417.9 219.1c29.7 0 53.3 26.8 52.8 59.2C470.7 311 447.5 337.6 417.9 337.6z"/></svg> Discord</a>
<a class="card-primary" href="https://matrix.to/#/%23poke:vern.cc"><svg version="1.1" viewBox="0 0 27.9 32" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><g transform="translate(-.095 .005)" fill="#040404"><path d="m27.1 31.2v-30.5h-2.19v-0.732h3.04v32h-3.04v-0.732z"/><path d="m8.23 10.4v1.54h0.044c0.385-0.564 0.893-1.03 1.49-1.37 0.58-0.323 1.25-0.485 1.99-0.485 0.72 0 1.38 0.14 1.97 0.42 0.595 0.279 1.05 0.771 1.36 1.48 0.338-0.5 0.796-0.941 1.38-1.32 0.58-0.383 1.27-0.574 2.06-0.574 0.602 0 1.16 0.074 1.67 0.22 0.514 0.148 0.954 0.383 .32 0.707 0.366 0.323 0.653 0.746 0.859 1.27 0.205 0.522 0.308 1.15 0.308 1.89v7.63h-3.13v-6.46c0-0.383-0.015-0.743-0.044-1.08-0.0209-0.307-0.103-0.607-0.242-0.882-0.133-0.251-0.336-0.458-0.584-0.596-0.257-0.146-0.606-0.22-1.05-0.22-0.44 0-0.796 0.085-1.07 0.253-0.272 0.17-0.485 0.39-0.639 0.662-0.159 0.287-0.264 0.602-0.308 0.927-0.052 0.347-0.078 0.697-0.078 1.05v6.35h-3.13v-6.4c0-0.338-7e-3 -0.673-0.021-1-0.0114-0.314-0.0749-0.623-0.188-0.916-0.108-0.277-0.3-0.512-0.55-0.673-0.258-0.168-0.636-0.253-1.14-0.253-0.198 0.0083-0.394 0.042-0.584 0.1-0.258 0.0745-0.498 0.202-0.705 0.374-0.228 0.184-0.422 0.449-0.584 0.794-0.161 0.346-0.242 0.798-0.242 1.36v6.62h-3.13v-11.4z"/><path d="m0.936 0.732v30.5h2.19v0.732h-3.04v-32h3.03v0.732z"/></g></svg> Matrix</a>
</div>
</div>
<div class="card">
<div class="card-title">
<h2>Free and libre</h2>
<br/>
<p>Poke is free and libre software! u can view, edit and redistribute under GNU GPL 3 or later :3</p>
</div>
<div class="card-actions">
<a class="card-secondary" href="https://github.com/ashley0143/poke"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3 .3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5 .3-6.2 2.3zm44.2-1.7c-2.9 .7-4.9 2.6-4.6 4.9 .3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3 .7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3 .3 2.9 2.3 3.9 1.6 1 3.6 .7 4.3-.7 .7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3 .7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3 .7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg> GitHub</a>
<a class="card-primary" href="https://codeberg.org/ashley/poke"><svg xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="svg1468" version="1.1" viewBox="0 0 4.233 4.233"><title id="title16">Codeberg logo</title><defs id="defs1462"><linearGradient id="linearGradient6918" x1="42519.285" x2="42575.336" y1="-7078.789" y2="-6966.931" gradientUnits="userSpaceOnUse" xlink:href="#linearGradient6924"></linearGradient><linearGradient id="linearGradient6924"><stop style="stop-color:#2185d0;stop-opacity:0" id="stop6920" offset="0"></stop><stop id="stop6926" offset=".495" style="stop-color:#000000;stop-opacity:.48923996"></stop><stop style="stop-color:#000000;stop-opacity:.63279623" id="stop6922" offset="1"></stop></linearGradient><linearGradient id="linearGradient6918-3" x1="42519.285" x2="42575.336" y1="-7078.789" y2="-6966.931" gradientUnits="userSpaceOnUse" xlink:href="#linearGradient6924-6"></linearGradient><linearGradient id="linearGradient6924-6"><stop style="stop-color:#000000;stop-opacity:0" id="stop6920-7" offset="0"></stop><stop id="stop6926-5" offset=".495" style="stop-color:#000000;stop-opacity:.30000001"></stop><stop style="stop-color:#000000;stop-opacity:.30000001" id="stop6922-3" offset="1"></stop></linearGradient></defs><metadata id="metadata1465"></metadata><g id="g370484" transform="matrix(0.06551432,0,0,0.06551432,-2.232417,-1.431776)"><path id="path6733-5" style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:url(#linearGradient6918-3);fill-opacity:1;stroke:none;stroke-width:3.67846;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000;stop-opacity:1" d="m 42519.285,-7078.7891 a 0.76086879,0.56791688 0 0 0 -0.738,0.6739 l 33.586,125.8886 a 87.182358,87.182358 0 0 0 39.381,-33.7636 l -71.565,-92.5196 a 0.76086879,0.56791688 0 0 0 -0.664,-0.2793 z" transform="matrix(0.37058478,0,0,0.37058478,-15690.065,2662.0533)"></path><path id="path360787" style="opacity:1;fill:#000000;fill-opacity:1;stroke-width:17.0055;paint-order:markers fill stroke;stop-color:#000" d="m 11249.461,-1883.6961 c -12.74,0 -23.067,10.3275 -23.067,23.0671 0,4.3335 1.22,8.5795 3.522,12.2514 l 19.232,-24.8636 c 0.138,-0.1796 0.486,-0.1796 0.624,0 l 19.233,24.8646 c 2.302,-3.6721 3.523,-7.9185 3.523,-12.2524 0,-12.7396 -10.327,-23.0671 -23.067,-23.0671 z" transform="matrix(1.4006354,0,0,1.4006354,-15690.065,2662.0533)"></path></g></svg> Codeberg</a>
</div>
</div>
</div>
</div>
</Base>
<style lang="scss" is:global>
header {
background: transparent !important;
border: none !important;
backdrop-filter: blur(1px);
}
video {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
z-index: -1;
opacity: .27;
pointer-events: none;
}
.inline-it {
position: fixed;
top: 64px;
left: inherit;
width: 404px !important;
height: max-content;
object-fit: cover;
z-index: 1;
opacity: 1;
border-radius: 14px;
}
.landing {
margin: auto;
position: relative;
margin-top: 240px;
max-width: 1200px;
h1 {
font-size: xxx-large;
font-stretch: ultra-expanded;
font-weight: 1000;
}
img {
margin-top: 48px;
height: 503px;
object-fit: cover;
object-position: top;
mask-image: linear-gradient(#5315ff,#0000);
border-top-left-radius: 1em;
border-top-right-radius: 1em;
pointer-events: none;
-webkit-mask-image: linear-gradient(#5315ff,#0000);
}
#chan {
height: 400px;
width: 369px;
mask-image: none;
z-index: -1;
transform: scaleX(1);
float: right;
display: flex;
position: absolute;
right: 10px;
margin: -237px -60px 0 0;
-webkit-mask-image: linear-gradient(#5315ff,#0000);
}
}
.new-feature-set {
display: grid;
margin: 54px 0 24px 0;
max-width: 1200px;
grid-template-columns: repeat(auto-fit,minmax(350px,1fr));
text-align: left;
.feature-set {
padding: 32px;
.feature-set-title {
display: flex;
align-items: center;
gap: 12px;
justify-content: left;
h2 {
font-stretch: ultra-expanded;
font-weight: 1000;
margin: 0;
}
svg {
width: 32px;
height: 32px;
border-radius: 5rem;
padding: 6px;
}
}
p {
text-align: left;
}
}
}
p {
display: block;
margin-block-start: 1em;
margin-block-end: 1em;
margin-inline-start: 0;
margin-inline-end: 0;
}
.adaptive-grid {
display: grid;
grid-template-columns: repeat(auto-fit,minmax(350px,1fr));
max-width: 1200px;
margin: auto;
grid-gap: 12px;
}
.card {
padding: 24px;
.card-title {
display: flex;
flex-direction: column;
svg {
width: 32px;
height: 32px;
margin-right: 12px;
}
h2 {
font-stretch: ultra-expanded;
font-weight: 1000;
margin: 0px;
}
}
.card-actions {
display: flex;
align-items: center;
justify-content: right;
gap: 12px;
svg {
width: 24px !important;
height: 24px !important;
margin-right: 6px;
}
a {
color: white;
border: 2px white solid;
border-radius: 3rem;
padding: 12px 24px 12px 12px;
display: flex;
align-items: center;
text-decoration: none;
&:hover, &:focus {
filter: brightness(0.8);
text-decoration: nones;
}
}
.card-primary {
background: white;
color: black;
svg {
fill: black;
}
}
.card-secondary {
svg {
fill: white;
}
}
}
}
</style>

35
src/pages/live.astro Normal file
View file

@ -0,0 +1,35 @@
---
// Layout
import Base from "@layouts/Default.astro";
// Environment Variables
const DEFAULT_SAFETWITCH_BACKEND = import.meta.env.DEFAULT_SAFETWITCH_BACKEND
// Components
// Fetch
const Channel = Astro.url.href.split("live?=").pop();
const video = await fetch('https://' + DEFAULT_SAFETWITCH_BACKEND + "/api/v1/videos/" + Channel).then((response) => response.json());
const comments = await fetch('https://' + DEFAULT_SAFETWITCH_BACKEND + "/api/v1/comments/" + Channel).then((response) => response.json());
---
<Base Title={video.title}>
<noscript>
<p>In order to watch a live stream on Poke, you'll need JavaScript enabled.</p>
</noscript>
<div class="video-container">
<video id="my_video_1" class="video-js vjs-fluid vjs-default-skin" controls preload="auto"
data-setup='{}'>
<source src={'https://' + DEFAULT_SAFETWITCH_BACKEND + '/proxy/stream/' + Channel + '/hls.m3u8'} type="application/x-mpegURL">
</video>
</div>
</Base>
<link href="/twitch/video.js/video-js.css" rel="stylesheet">
<script is:inline src="/twitch/video.js/video.js"></script>
<script src="https://unpkg.com/videojs-contrib-hls/dist/videojs-contrib-hls.js"></script>
<script is:inline>
var player = videojs('my_video_1');
player.play();
</script>

194
src/pages/search.astro Normal file
View file

@ -0,0 +1,194 @@
---
// Layout
import Base from '@layouts/Default.astro'
// Components
import Video from '@components/common/VideoItem.astro'
import Creator from '@components/search/Creator.astro'
import Stream from '@components/search/Stream.astro'
// Environment Variables
const DEFAULT_INVIDIOUS_INSTANCE = import.meta.env.DEFAULT_INVIDIOUS_INSTANCE
const DEFAULT_SAFETWITCH_BACKEND = import.meta.env.DEFAULT_SAFETWITCH_BACKEND
// Fetch
const Query = Astro.url.href.split("search?q=").pop()
const InvidiousVideosResponse = await fetch('https://' + DEFAULT_INVIDIOUS_INSTANCE + "/api/v1/search?q=" + Query + '&type=video')
.catch((error) => {
console.log(error)
})
const InvidiousChannelsResponse = await fetch('https://' + DEFAULT_INVIDIOUS_INSTANCE + "/api/v1/search?q=" + Query + '&type=channel')
.catch((error) => {
console.log(error)
})
const TwitchResponse = await fetch('https://' + DEFAULT_SAFETWITCH_BACKEND + "/api/search/?query=" + Query)
.catch((error) => {
console.log(error)
})
const InvidiousVideosData = await InvidiousVideosResponse.json()
const InvidiousChannelsData = await InvidiousChannelsResponse.json()
const TwitchData = await TwitchResponse.json()
---
<Base Title="Poke Search">
<div class="page-title">
<h2>Search</h2>
</div>
<p>YouTube creators related to "{Query}"</p>
<div class="twitch-channels">
{InvidiousChannelsData.map((channel) =>
<Creator
Name={channel.author}
Avatar={channel.authorThumbnails[1].url}
Link={'/channel/youtube/' + channel.authorId}
Platform="YouTube"
Banner={channel.authorThumbnails[1].url}
Followers={channel.subCount}
/>
)}
</div>
<p>Twitch creators related to "{Query}"</p>
<div class="twitch-channels">
{TwitchData.data.channels.map((channel) =>
<Creator
Name={channel.username}
Avatar={channel.pfp}
Link={'/channel/twitch/' + channel.username}
Platform="Twitch"
Banner={channel.pfp}
Followers={channel.followers}
/>
)}
</div>
<p>Twitch Live streams with the tag "{Query}"</p>
<div class="twitch-channels">
{TwitchData.data.relatedChannels.map((channel) =>
<Stream
Title={channel.stream.title}
Creator={channel.username}
Avatar={channel.pfp}
Link={'/channel/twitch/' + channel.username}
Thumbnail={channel.stream.preview}
View={channel.stream.viewers}
/>
)}
</div>
<p>YouTube Videos</p>
<div class="video-grid">
{InvidiousVideosData.map((data) =>
<Video
ID={data.videoId}
Title={data.title}
Creator={data.author}
Views={data.viewCount}
UploadDate={data.published}
Length={data.lengthSeconds}
/>
)}
</div>
</Base>
<style>
body {
max-width: 2000px;
}
.video-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
grid-gap: 24px;
margin: auto;
padding: 0px 24px;
}
</style>
<style lang="scss">
.video-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
grid-gap: 24px;
margin: auto;
padding: 0px 24px;
}
.twitch-channels {
display: flex;
gap: 12px;
overflow-x: scroll;
overflow-y: hidden;
padding-bottom: 12px;
}
.channel-stream {
flex-direction: column;
position: relative;
padding: 0px !important;
.stream-preview {
border-radius: 12px !important;
width: 100% !important;
height: 100% !important;
}
.channel-info {
flex-direction: row !important;
position: absolute;
bottom: 0px;
background: linear-gradient(#0000,#282828);
border-radius: 0px 0px 12px 12px;
width: 100%;
img {
margin-left: 12px;
position: absolute;
}
div {
padding: 0px 6px 18px 96px;
position: relative
}
}
}
.channel, .channel-stream {
text-decoration: none;
background: transparent;
border: 2px transparent solid;
border-radius: 12px;
align-items: center;
width: 100%;
min-width: 500px;
position: relative;
&:hover {
border-color: #333;
}
img {
border-radius: 5rem;
width: 64px;
height: 64px;
object-fit: cover;
}
#backgound {
position: absolute;
top: 0px;
left: 0px;
width: 100%;
height: 100%;
border-radius: 12px;
z-index: -1;
object-fit: unset;
}
h2, p {
margin: 0px;
}
.tc-info {
display: flex;
align-items: center;
gap: 24px;
padding: 24px 12px;
border-radius: 8px;
height: 80px;
backdrop-filter: blur(20px) brightness(0.2);
}
}
</style>

517
src/pages/watch.astro Normal file

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

BIN
src/public/cursor.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
src/public/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

View file

@ -0,0 +1,47 @@
{
"header": {
"search": "Search"
},
"dropdown": {
"Options": "Options",
"Language": "Language",
"Account": "Account",
"Settings": "Settings",
"Instances": "Instances",
"Hub": "Hub",
"Apps": "Apps",
"Games": "Games",
"Openin": "Open in",
"LiteMode": "Lite Mode",
"YouTube": "YouTube",
"Invidious": "Invidious",
"Pipe": "Pipe",
"Other": "Other",
"About": "About",
"Privacy": "Privacy",
"SourceCode": "Source Code",
"GoBack": "Go Back"
},
"landing": {
"heading1": "PRIVACY APP",
"heading2": "OF YOUR DREAMS",
"description": "Poke is a free software youtube front-end, search engine, translator, map app and even more!!1!! Watch silly videos, search stuff on the internet and do all of that and more anonymously in this all-in-one privacy app!!!1! :3",
"why": "Why Choose Poke?",
"Card1Title": "No Tracking and Ads",
"Card1Description": " Poke Has no Trackers or ads - we dont and we wont see the vids ur watching :3",
"Card2Title": "Very Fast",
"Card2Description": " Poke is really ligthweight (both on server and client :3) so you can still use it on poor connections :3",
"Card3Title": "Downloader",
"Card3Description": "You wouldnt download a car - welp i would :D u can download videos from poke for 0$!",
"Card4Title": "Web Search",
"Card4Description": "u can search the interwebs for anything that u wan!! (ik wha ur gonna search :p) ",
"Card5Title": "DRM Free",
"Card5Description": " Poke comes without digital restrictions management - poke is free software :3",
"Card6Title": "Games Included",
"Card6Description": " U can play funnie games on poke! "
},
"watch": {
"By": "By",
"Views": "View"
}
}

View file

@ -0,0 +1,43 @@
{
"header": {
"search": "検索"
},
"dropdown": {
"Options": "オプション",
"Language": "言語",
"Account": "アカウント",
"Settings": "設定",
"Instances": "インスタンス",
"Hub": "ハブ",
"Apps": "アプリ",
"Games": "ゲーム",
"Openin": "で開く",
"LiteMode": "ライトモード",
"YouTube": "YouTube",
"Invidious": "Invidious",
"Pipe": "Pipe",
"Other": "他の",
"About": "について",
"Privacy": "プライバシー",
"SourceCode": "ソースコード",
"GoBack": "戻る"
},
"landing": {
"heading1": "のプライバシーアプリ",
"heading2": "君の夢の",
"description": "Pokeは、無料のソフトウェアyoutubeフロントエンド、検索エンジン、翻訳者、マップアプリなどです!!1!! サイレント動画を見ると、インターネット上のものを検索し、このオールインワンのプライバシーアプリで、そのすべてを匿名で行います!",
"why": "ポケモンを選ぶ理由?",
"Card1Title": "追跡および広告無し",
"Card1Description": " ポークはトラッカーや広告はありません - 私たちは、あなたが見ているビデオを見ることができません",
"Card2Title": "非常に高速",
"Card2Description": " Poke は本当に軽量です (サーバーとクライアントの :3) ので、接続が悪いままに使用できます。 :3",
"Card3Title": "ダウンロード",
"Card3Description": "あなたは車をダウンロードしたい - よく私は:D u は 0$ のポケモンからビデオをダウンロードすることができます!",
"Card4Title": "ウェブ検索",
"Card4Description": "U wan の web を検索できます。!",
"Card5Title": "DRMの 無料",
"Card5Description": " ポケモンはデジタル制限管理なしで来ます - ポケモンはフリーソフトウェアです:3",
"Card6Title": "含まれているゲーム",
"Card6Description": "楽しく遊べます! "
}
}

37
src/public/manifest.json Normal file
View file

@ -0,0 +1,37 @@
{
"name": "Poke",
"short_name": "Poke",
"description": "The Ultimate Privacy App!",
"start_url": "/",
"display": "standalone",
"display_override": [
"window-controls-overlay"
],
"background_color": "#080808",
"theme_color": "#612153",
"categories": [
"entertainment",
"music"
],
"icons": [
{
"src": "/css/pt.png",
"sizes": "512x512",
"type": "image/png"
}
],
"screenshots": [
{
"src": "/css/pwa-desktop.png",
"type": "image/png",
"sizes": "1695x1445",
"form_factor": "wide"
},
{
"src": "/css/pwa-mobile.jpg",
"type": "image/jpg",
"sizes": "1080x2412",
"form_factor": "narrow"
}
]
}

63
src/public/offline.html Normal file
View file

@ -0,0 +1,63 @@
<!--
This Source Code Form is subject to the terms of the GNU General Public License:
Copyright (C) 2021-2023 POKETUBE (https://codeberg.org/Ashley/poketube)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see https://www.gnu.org/licenses/.
-->
<!DOCTYPE html>
<html><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Poke - No interenet!1!1!1!111!</title>
</head>
<body>
<div id="error-page">
<div id="error-page-content" align="center">
<h1 style="color:#fff;font-family:'PokeTube Flex',sans-serif;font-weight:900;white-space:yes;font-style: italic;font-size: 45px;" align="center">Oh nyo &gt;~&lt;</h1>
<h3 style="font-family: sans-serif;">Connectivity to the server has been lost qwq <br> Seems like you're offline - u check your internet connection and try again</h3><br>
<p>or u can just view poke!'s <a href="https://status.poketube.fun">status page</a> yk~ </p>
</div>
</div>
<style>
.downnav {
position: fixed;
padding:10px;
bottom: 0;
left: 0;
width: 100%;
margin: auto;
overflow: hidden;
z-index: 1;
color:#fff;
background-color: #0f0f0f;
}
body{
background:#111;
margin: auto;
transform: translateY(13em)
}
p,a,h3{
text-align:center;
font-family: sans-serif;
color:#fff;
}
nav,error-page,div{
justify-content: center;
background: #111
}
</style></body></html>

9
src/public/robots.txt Normal file
View file

@ -0,0 +1,9 @@
User-agent: Applebot
User-agent: Googlebot
User-agent: bingbot
User-agent: Yandex
User-agent: Yeti
User-agent: Baiduspider
User-agent: 360Spider
User-agent: *
Disallow: /

View file

@ -0,0 +1,38 @@
// @license magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&dn=gpl-3.0.txt GPL-3.0-or-later
'use strict';
var cacheVersion = 1;
var currentCache = {
offline: 'offline-cache' + cacheVersion
};
const offlineUrl = 'offline';
this.addEventListener('install', event => {
event.waitUntil(
caches.open(currentCache.offline).then(function (cache) {
return cache.addAll([
offlineUrl
]);
})
);
});
this.addEventListener('fetch', event => {
if (event.request.mode === 'navigate' || (event.request.method === 'GET' && event.request.headers.get('accept').includes('text/html'))) {
event.respondWith(
fetch(event.request.url).catch(error => {
return caches.match(offlineUrl);
})
);
}
else {
event.respondWith(caches.match(event.request)
.then(function (response) {
return response || fetch(event.request);
})
);
}
});
// @license-end

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 one or more lines are too long

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 one or more lines are too long

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 one or more lines are too long

View file

@ -0,0 +1,330 @@
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

@ -0,0 +1,334 @@
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

@ -0,0 +1,326 @@
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

@ -0,0 +1,356 @@
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

@ -0,0 +1,349 @@
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

@ -0,0 +1,44 @@
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

@ -0,0 +1,280 @@
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 briefly illumiates.
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

@ -0,0 +1,41 @@
<!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

@ -0,0 +1,18 @@
<!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

@ -0,0 +1,41 @@
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

@ -0,0 +1,23 @@
<!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

@ -0,0 +1,150 @@
<?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="spinner"
unicode="&#xF10A;"
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="&#xF10B;"
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="&#xF10C;"
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="hd"
unicode="&#xF10D;"
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="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="downloading"
unicode="&#xF10F;"
horiz-adv-x="1792" d=" M815.7183999999999 140Q671.9999999999999 153.0816000000002 547.8591999999999 217.4592Q423.7183999999999 281.8816000000002 332.2815999999999 384.5184Q240.8 487.2 189.4592 618.7775999999999Q138.1184 750.3999999999999 138.1184 897.8815999999999Q138.1184 1192.8 332.2815999999999 1409.3183999999999Q526.4 1625.8816 817.5999999999999 1655.7184V1513.8816Q586.1184 1480.2815999999998 433.0816 1305.7408Q280 1131.2 280 897.8816000000002Q280 664.5184000000002 432.1408 490.0224000000003Q584.2816 315.4816000000001 815.7183999999999 281.8816000000002zM896 518.9184L517.0816 896L610.4 989.3184L830.6816 769.0816V1273.0816H961.3184V769.0816L1179.7184 989.3184L1273.0816 896zM976.2816 140V281.8816000000002Q1058.3999999999999 293.0816000000002 1134.9184 324.8000000000002Q1211.4816 356.5184 1276.8 408.8000000000002L1381.3183999999999 306.1184000000001Q1293.6 235.2000000000001 1190.9183999999998 192.2816000000003Q1088.2815999999998 149.3184000000001 976.2815999999998 140zM1280.5184 1385.0816Q1211.4816 1435.4816 1134.9184 1468.1408000000001Q1058.4 1500.8000000000002 976.2816 1513.8816000000002V1655.7184Q1088.2816 1644.5184 1189.9776 1601.6Q1291.7184 1558.6816 1381.3184 1489.6zM1485.8816 418.1184000000001L1385.0816 518.9184000000002Q1437.3183999999999 586.1184000000001 1468.1408 662.6816000000001Q1498.9183999999998 739.2 1510.1183999999998 821.3184000000001H1653.8816Q1640.8 709.3184000000001 1598.8224 606.6816000000001Q1556.8 504 1485.8816 418.1184000000001zM1510.1183999999998 974.4Q1497.0816 1056.5184 1467.1999999999998 1133.9776000000002Q1437.3183999999999 1211.4816 1385.0816 1276.8000000000002L1491.4816 1375.7184Q1560.5184 1289.8816000000002 1601.6 1187.2Q1642.6816 1084.5184 1653.8816 974.4z" />
<glyph glyph-name="file-download"
unicode="&#xF110;"
horiz-adv-x="1792" d=" M403.2000000000001 278.1333333333335Q352.8000000000001 278.1333333333335 314.5333333333334 315.4666666666667T276.2666666666667 405.0666666666666V692.5333333333333H403.2000000000001V405.0666666666666H1386.9333333333336V692.5333333333333H1513.866666666667V405.0666666666666Q1513.866666666667 352.8 1476.5333333333335 315.4666666666667T1386.9333333333336 278.1333333333335zM896 593.5999999999999L518.9333333333334 968.8L610.4000000000001 1060.2666666666664L832.5333333333334 838.1333333333332V1525.0666666666666H959.4666666666666V838.1333333333333L1181.6 1060.2666666666667L1273.0666666666668 968.8z" />
<glyph glyph-name="file-download-done"
unicode="&#xF111;"
horiz-adv-x="1792" d=" M365.8666666666668 280V408.8H1426.1333333333334V280zM709.3333333333334 617.8666666666666L276.2666666666667 1050.9333333333334L367.7333333333334 1138.6666666666665L709.3333333333334 797.0666666666666L1426.1333333333334 1513.8666666666668L1515.7333333333336 1424.2666666666667z" />
<glyph glyph-name="file-download-off"
unicode="&#xF112;"
horiz-adv-x="1792" d=" M182.9333333333334 1614.6666666666667L1614.6666666666667 182.9333333333332L1530.6666666666667 100.8L1353.3333333333335 278.1333333333335Q1351.466666666667 276.2666666666669 1350.5333333333333 277.2000000000001Q1349.6000000000001 278.1333333333335 1347.7333333333331 278.1333333333335H403.2000000000001Q352.8000000000001 278.1333333333335 314.5333333333334 315.4666666666667T276.2666666666667 405.0666666666666V692.5333333333333H403.2000000000001V405.0666666666666H1226.4L965.0666666666668 666.4000000000001L896 599.2L518.9333333333334 974.4L588 1043.4666666666667L100.8 1530.6666666666665zM1181.6 1065.8666666666668L1273.0666666666668 974.4L1133.0666666666668 832.5333333333333L1041.6000000000001 925.8666666666666zM959.4666666666666 1525.0666666666666V1004.2666666666667L832.5333333333334 1133.0666666666666V1525.0666666666666z" />
<glyph glyph-name="share"
unicode="&#xF113;"
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="&#xF114;"
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="square"
unicode="&#xF115;"
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="circle"
unicode="&#xF116;"
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="&#xF117;"
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="&#xF118;"
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="cancel"
unicode="&#xF119;"
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="repeat"
unicode="&#xF11A;"
horiz-adv-x="1792" d=" M522.6666666666667 1269.3333333333333H1269.3333333333335V1045.3333333333333L1568 1344L1269.3333333333335 1642.6666666666667V1418.6666666666665H373.3333333333334V970.6666666666666H522.6666666666667V1269.3333333333333zM1269.3333333333335 522.6666666666665H522.6666666666667V746.6666666666665L224 448L522.6666666666667 149.3333333333333V373.3333333333333H1418.6666666666667V821.3333333333333H1269.3333333333335V522.6666666666665z" />
<glyph glyph-name="replay"
unicode="&#xF11B;"
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="replay-5"
unicode="&#xF11C;"
horiz-adv-x="1792" d=" M660.3714133333334 1717.3333333333333L335.7084266666667 1392.6703466666665L660.3714133333334 1068.0069866666663L753.2063466666667 1160.7556799999998L591.9532266666668 1322.0088H640.5276266666667C824.5865600000001 1322.0088 979.1965866666668 1257.7249066666666 1104.3565866666668 1129.1780266666667C1229.5169600000002 1000.6311466666668 1292.09696 844.0435733333334 1292.09696 659.3958933333333H1424.6198400000003C1424.6198400000003 769.8312533333333 1403.987946666667 873.2897599999998 1362.7585066666668 969.736693333333C1321.5294400000002 1066.1836266666664 1264.85632 1150.4654933333334 1192.7051733333333 1222.61664C1120.5540266666667 1294.7677866666668 1036.27216 1351.4409066666665 939.8252266666668 1392.6703466666665C843.3782933333333 1433.899413333333 739.9194133333334 1454.5313066666663 629.4840533333335 1454.5313066666663H578.6666666666667L750.9629866666667 1626.8279999999995zM358.7445866666667 908.7385066666668V391.2447466666668H782.7134933333334V204.2809066666669H358.7445866666667V37.3333333333333H832.8405866666668C864.0012266666668 37.3333333333333 890.7352533333335 48.4653866666667 912.9926400000002 70.7227733333334C935.2504000000002 92.9805333333338 946.38208 119.6279466666665 946.38208 150.788586666667V441.2856000000004C946.38208 472.4462400000009 935.2504000000002 499.1802666666667 912.9926400000002 521.4376533333336C890.7352533333335 543.6950400000005 864.0012266666668 554.8270933333338 832.8405866666668 554.8270933333338H525.6921600000001V745.0695466666673H946.38208V908.7385066666671z" />
<glyph glyph-name="replay-10"
unicode="&#xF11D;"
horiz-adv-x="1792" d=" M1579.7522346666667 685.8215466666668C1579.7522346666667 872.3672533333332 1516.5291306666668 1030.5743466666665 1390.0825493333332 1160.4420799999998C1263.635968 1290.3101866666666 1107.4374453333332 1355.2440533333333 921.4866453333332 1355.2440533333333H872.395328L1035.2882399999999 1192.3512533333333L941.5690666666663 1098.6318933333332L613.5519039999998 1426.6496533333334L941.5690666666668 1754.6666666666667L1033.0569013333334 1663.17872L859.0069226666667 1489.1288533333336H910.3295786666667C1021.8998346666668 1489.1288533333336 1126.4041973333335 1468.3024533333335 1223.8426293333337 1426.6496533333334C1321.2807253333335 1384.9964799999998 1406.4460480000002 1327.7234133333332 1479.3390453333336 1254.8308266666668C1552.2316693333335 1181.9382400000004 1609.5045493333337 1096.7726933333336 1651.1573120000003 999.3345600000002C1692.8104480000004 901.896426666667 1713.6369973333335 797.3922133333334 1713.6369973333335 685.8215466666668zM305.4965498666667 74.6666666666665V808.5194133333331H118.5717866666667V978.1359466666667H478.5748426666667V74.6666666666665zM814.3472586666667 74.6666666666665C771.1928 74.6666666666665 734.9617333333334 89.3203733333328 705.654096 118.6285333333331C676.5766186666667 147.7056 662.0380853333335 183.8214933333331 662.0380853333335 226.9754666666668V825.8267733333334C662.0380853333335 868.9814933333333 676.6923146666668 905.2123733333336 705.9999520000001 934.5205333333334C735.0773920000001 963.5976000000002 771.1928000000001 978.135946666667 814.3472586666667 978.135946666667H1101.657648C1144.8117706666667 978.135946666667 1181.0428000000002 963.4822400000002 1210.3508480000003 934.1740800000003C1239.4279146666668 905.0966400000005 1253.9664480000004 868.9814933333339 1253.9664480000004 825.826773333334V226.9754666666677C1253.9664480000004 183.8214933333343 1239.3126293333335 147.5902400000016 1210.004618666667 118.2824533333346C1180.9275146666669 89.2053866666679 1144.811770666667 74.6666666666677 1101.6576480000003 74.6666666666677zM835.1163893333334 247.7451200000001H1080.888144V808.5194133333335H835.1163893333334z" />
<glyph glyph-name="replay-30"
unicode="&#xF11E;"
horiz-adv-x="1792" d=" M972.4166666666669 1754.6666666666667L646.4062453333333 1428.6563199999998L972.4166666666669 1102.645973333333L1065.604176 1195.7605333333331L903.7291573333334 1357.7084266666664H952.5104213333334C1137.3383840000001 1357.7084266666664 1292.5460426666668 1293.1251199999997 1418.2291573333334 1164.0417599999996C1543.9119733333334 1034.9580266666665 1606.7916480000001 877.7630399999995 1606.7916480000001 692.3436799999995H1739.8645973333334C1739.8645973333334 803.2404799999996 1719.1409386666667 907.0670933333328 1677.7395786666668 1003.9164799999994C1636.3382186666668 1100.7662399999992 1579.4214240000001 1185.4330133333326 1506.968736 1257.8854399999993C1434.516384 1330.3378666666663 1349.8497226666668 1387.2547733333327 1253 1428.6563199999991C1156.15024 1470.0578666666659 1052.323552 1490.781226666666 941.427088 1490.781226666666H890.3854026666668L1063.4166666666667 1663.8126399999996zM95.375 988.1666666666666V813.1666666666666H479.791648V617.1666666666665H219.2604176V442.1666666666665H479.7916480000001V249.6666666666665H95.375V74.6666666666665H498.822912C538.4290986666667 74.6666666666665 571.6348213333334 89.4114666666665 598.427088 118.9272000000001C625.2193546666666 148.4425600000004 638.604176 185.1079999999997 638.604176 228.7394666666665V834.1666666666666C638.604176 877.7981333333333 625.2193546666666 914.3907733333332 598.427088 943.906133333333C571.6348213333333 973.4214933333328 538.4290986666667 988.1666666666666 498.822912 988.1666666666666zM934.7187360000001 982.9164799999998C891.8251253333334 982.9164799999998 855.9225546666668 968.3598399999998 827.0208426666667 939.4582399999998C797.8899413333334 910.3274133333332 783.2708426666667 874.3619733333329 783.2708426666667 831.4685866666665V236.2498133333327C783.2708426666667 193.3567999999991 797.7549066666667 157.4540799999991 826.6562453333333 128.5521066666661C855.78752 99.4212799999991 891.8251253333334 84.8019199999999 934.7187360000001 84.8019199999999H1220.2604213333334C1263.1540320000001 84.8019199999999 1299.05664 99.285386666666 1327.9583146666669 128.1873600000004C1357.0892906666668 157.3181866666673 1371.6354026666668 193.3568000000003 1371.6354026666668 236.2498133333338V831.468586666667C1371.6354026666668 874.3619733333334 1357.2242506666669 910.2646933333336 1328.322912 939.1666666666672C1299.1919733333334 968.2974933333336 1263.1540320000001 982.9164800000004 1220.2604213333334 982.9164800000004zM955.354176 814.260533333333H1199.6979306666667V256.8854399999994H955.354176z" />
<glyph glyph-name="forward-5"
unicode="&#xF11F;"
horiz-adv-x="1792" d=" M1101.6480533333333 1754.6666666666667L1010.856 1663.9608533333333L1183.5338666666667 1491.2829866666668H1132.6037333333334C1021.92384 1491.2829866666668 918.23648 1470.6055466666667 821.576 1429.2850133333336C724.91552 1387.96448 640.4469866666666 1331.1659200000004 568.1360533333333 1258.8553600000005C495.8254933333333 1186.5444266666675 439.0269333333333 1102.075893333334 397.7064 1005.4154133333342C356.3858666666667 908.7553066666674 335.7084266666667 805.067573333334 335.7084266666667 694.3876800000012H468.5243733333334C468.5243733333334 879.4441600000009 531.24288 1036.3785600000012 656.6802666666666 1165.2095466666678C782.1172799999999 1294.0409066666678 937.06928 1358.4670400000014 1121.5358933333334 1358.4670400000014H1170.2178133333334L1008.6940266666666 1196.857386666668L1101.6480533333333 1103.9033600000014L1427.0297066666665 1429.2850133333347zM736.4041066666667 947.9138666666668V429.3613333333338H1161.3112V241.9834666666673H736.4041066666667V74.6666666666665H1211.5495466666666C1242.7792533333331 74.6666666666665 1269.4856533333332 85.8233600000003 1291.7926933333333 108.1300266666669C1314.0993599999997 130.4370666666669 1325.2560533333333 157.1434666666669 1325.2560533333333 188.3728000000003V479.5130666666664C1325.2560533333333 510.7427733333334 1314.09936 537.5357866666666 1291.7926933333333 559.8424533333332C1269.4856533333332 582.1491199999996 1242.7792533333331 593.3058133333334 1211.5495466666666 593.3058133333334H903.72128V783.969386666667H1325.2560533333333V947.9138666666668z" />
<glyph glyph-name="forward-10"
unicode="&#xF120;"
horiz-adv-x="1792" d=" M863.1064586666666 1754.6666666666667L774.038048 1665.6830400000001L943.437712 1496.2834133333333H893.4745866666667C784.8960373333334 1496.2834133333333 683.1768906666667 1475.9983466666665 588.3516426666667 1435.46256C493.5263573333334 1394.9263999999998 410.6614773333334 1339.2064 339.7235146666668 1268.2682133333333C268.7855146666667 1197.3303999999998 213.065328 1114.465333333333 172.5293546666667 1019.64016C131.9933813333334 924.814986666667 111.7083520000001 823.0958400000002 111.7083520000001 714.5170666666668H242.0027306666668C242.0027306666668 896.0604800000001 303.5307146666667 1050.0153066666667 426.5864213333334 1176.400586666667C549.6420906666668 1302.7858666666666 701.6524853333334 1365.9889600000004 882.6167093333335 1365.9889600000004H930.3743306666668L771.9173653333336 1207.4473600000001L863.1064586666668 1116.25808L1182.3107146666669 1435.4625600000004zM507.681104 953.8991466666668V788.8257066666666H689.5503253333334V74.6666666666665H858.0168426666667V953.8991466666668zM1184.7706826666667 953.8991466666668C1142.7737066666666 953.8991466666668 1107.6280693333333 939.7830399999998 1079.3306346666666 911.4854933333332C1050.80864 882.963573333333 1036.4929866666666 847.7033599999999 1036.4929866666666 805.7063466666664V222.8594666666663C1036.4929866666666 180.862453333333 1050.6939146666666 145.7172266666669 1078.9913493333333 117.4196800000002C1107.5133813333332 88.8977600000001 1142.7737066666666 74.6666666666665 1184.7706826666667 74.6666666666665H1464.3608C1506.3578133333333 74.6666666666665 1541.5034133333331 88.7827733333329 1569.8005866666667 117.0803199999996C1598.32288 145.6022399999997 1612.5536 180.862453333333 1612.5536 222.8594666666663V805.7063466666664C1612.5536 847.7033599999999 1598.4374933333334 882.8489599999999 1570.1399466666667 911.1465066666666C1541.6180266666668 939.6684266666668 1506.3578133333333 953.8991466666668 1464.3608 953.8991466666668zM1204.9595413333332 788.8257066666666H1444.17168V243.1333333333328H1204.9595413333332z" />
<glyph glyph-name="forward-30"
unicode="&#xF121;"
horiz-adv-x="1792" d=" M953.8155573333333 1754.6666666666667L862.8455360000002 1663.7831466666664L1035.861904 1490.7670399999997H984.8320533333334C873.935328 1490.7670399999997 770.044464 1470.0489066666662 673.1947040000001 1428.6473599999995C576.3449066666667 1387.245813333333 491.7108000000001 1330.3359999999993 419.2583360000001 1257.883573333333C346.8057973333335 1185.4311466666663 289.8959840000001 1100.7972266666661 248.4945493333334 1003.9470933333334C207.0931146666668 907.0973333333334 186.3750186666668 803.2065066666665 186.3750186666668 692.31008H319.4511786666668C319.4511786666668 877.729066666667 382.2928106666668 1034.97072 507.9757760000002 1164.0544533333334C633.6587040000002 1293.1381866666666 788.9145226666668 1357.69088 973.7423733333334 1357.69088H1022.5196426666668L860.6795680000001 1195.7638933333335L953.8155573333333 1102.6280533333336L1279.834864 1428.6473600000002zM522.53096 988.1789866666668V813.1700266666666H906.9443413333335V617.1946666666665H646.4234933333333V442.1857066666662H906.9443413333335V249.6756266666662H522.53096V74.6666666666665H926.0047253333335C965.6108746666667 74.6666666666665 998.759552 89.4234133333337 1025.5519306666667 118.9387733333329C1052.3443093333335 148.4541333333332 1065.7520533333336 185.0777599999997 1065.7520533333336 228.7092266666664V834.1364266666666C1065.7520533333336 877.7678933333333 1052.3443093333335 914.3915200000002 1025.5519306666667 943.90688C998.7595520000002 973.4222399999998 965.6108746666667 988.1789866666668 926.0047253333335 988.1789866666668zM1313.017290666667 981.9413333333335C1270.1236426666667 981.9413333333335 1234.2276800000002 967.4369600000005 1205.3260800000003 938.53536C1176.1951040000001 909.4045333333336 1161.5738400000002 873.3913066666669 1161.5738400000002 830.4975466666665V235.2937066666659C1161.5738400000002 192.3999466666655 1176.0779146666669 156.5043199999991 1204.9795146666668 127.6027199999994C1234.1104906666667 98.4718933333325 1270.1236426666667 83.9369066666657 1313.017290666667 83.9369066666657H1598.5763733333335C1641.4701333333337 83.9369066666657 1677.3661333333334 98.3546666666657 1706.2677333333338 127.2558933333319C1735.3985600000005 156.3870933333324 1749.9331733333338 192.3999466666655 1749.9331733333338 235.293706666665V830.4975466666649C1749.9331733333338 873.3913066666647 1735.5157866666668 909.2873066666648 1706.614186666667 938.188906666665C1677.4833600000002 967.3197333333314 1641.4701333333335 981.941333333332 1598.5763733333335 981.941333333332zM1333.6371253333336 813.3432533333336H1577.8701866666668V255.913653333334H1333.6371253333336z" />
<glyph glyph-name="audio"
unicode="&#xF122;"
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="&#xF123;"
horiz-adv-x="1792" d=" M448 448L1082.6666666666667 896L448 1344V448zM1194.6666666666667 1344V448H1344V1344H1194.6666666666667z" />
<glyph glyph-name="previous-item"
unicode="&#xF124;"
horiz-adv-x="1792" d=" M448 1344H597.3333333333334V448H448zM709.3333333333334 896L1344 448V1344z" />
<glyph glyph-name="shuffle"
unicode="&#xF125;"
horiz-adv-x="1792" d=" M790.3466666666668 1107.3066666666666L404.3200000000001 1493.3333333333333L298.6666666666667 1387.6799999999998L684.6933333333334 1001.6533333333332L790.3466666666668 1107.3066666666664zM1082.6666666666667 1493.3333333333333L1235.3600000000001 1340.6399999999999L298.6666666666667 404.32L404.3200000000001 298.6666666666665L1341.0133333333335 1235.3600000000001L1493.3333333333335 1082.6666666666665V1493.3333333333333H1082.6666666666667zM1107.3066666666668 790.3466666666667L1001.6533333333334 684.6933333333334L1235.36 450.9866666666667L1082.6666666666667 298.6666666666665H1493.3333333333335V709.3333333333333L1340.6399999999999 556.6399999999999L1107.3066666666666 790.3466666666664z" />
<glyph glyph-name="cast"
unicode="&#xF126;"
horiz-adv-x="1792" d=" M1568 1568H224C141.4933333333334 1568 74.6666666666667 1501.1733333333332 74.6666666666667 1418.6666666666665V1194.6666666666665H224V1418.6666666666665H1568V373.3333333333333H1045.3333333333335V224H1568C1650.506666666667 224 1717.3333333333335 290.8266666666666 1717.3333333333335 373.3333333333333V1418.6666666666665C1717.3333333333335 1501.1733333333332 1650.506666666667 1568 1568 1568zM74.6666666666667 448V224H298.6666666666667C298.6666666666667 347.5733333333333 198.2400000000001 448 74.6666666666667 448zM74.6666666666667 746.6666666666665V597.3333333333333C280.7466666666667 597.3333333333333 448 430.0799999999997 448 224H597.3333333333334C597.3333333333334 512.5866666666668 363.2533333333334 746.6666666666665 74.6666666666667 746.6666666666665zM74.6666666666667 1045.3333333333333V896C445.76 896 746.6666666666667 595.0933333333332 746.6666666666667 224H896C896 677.5999999999999 528.2666666666668 1045.3333333333333 74.6666666666667 1045.3333333333333z" />
<glyph glyph-name="picture-in-picture-enter"
unicode="&#xF127;"
horiz-adv-x="1792" d=" M1418.6666666666667 970.6666666666666H821.3333333333334V523.0399999999997H1418.6666666666667V970.6666666666666zM1717.3333333333335 373.3333333333333V1420.1599999999999C1717.3333333333335 1502.2933333333333 1650.1333333333334 1568 1568 1568H224C141.8666666666667 1568 74.6666666666667 1502.2933333333333 74.6666666666667 1420.1599999999999V373.3333333333333C74.6666666666667 291.1999999999998 141.8666666666667 224 224 224H1568C1650.1333333333334 224 1717.3333333333335 291.1999999999998 1717.3333333333335 373.3333333333333zM1568 371.8399999999999H224V1420.9066666666668H1568V371.8399999999999z" />
<glyph glyph-name="picture-in-picture-exit"
unicode="&#xF128;"
horiz-adv-x="2190.222222222222" d=" M1792 1393.7777777777778H398.2222222222223V398.2222222222222H1792V1393.7777777777778zM2190.222222222222 199.1111111111111V1594.88C2190.222222222222 1704.391111111111 2100.6222222222223 1792 1991.1111111111113 1792H199.1111111111111C89.6 1792 0 1704.391111111111 0 1594.88V199.1111111111111C0 89.5999999999999 89.6 0 199.1111111111111 0H1991.1111111111113C2100.6222222222223 0 2190.222222222222 89.5999999999999 2190.222222222222 199.1111111111111zM1991.1111111111113 197.1200000000001H199.1111111111111V1595.8755555555556H1991.1111111111113V197.1200000000001z" />
<glyph glyph-name="facebook"
unicode="&#xF129;"
horiz-adv-x="1792" d=" M1343 1780V1516H1186Q1100 1516 1070 1480T1040 1372V1183H1333L1294 887H1040V128H734V887H479V1183H734V1401Q734 1587 838 1689.5T1115 1792Q1262 1792 1343 1780z" />
<glyph glyph-name="linkedin"
unicode="&#xF12A;"
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="&#xF12B;"
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="&#xF12C;"
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="&#xF12D;"
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="&#xF12E;"
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" />
</font>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,96 @@
videojs.addLanguage('ar', {
"Play": "تشغيل",
"Pause": "إيقاف",
"Current Time": "الوقت الحالي",
"Duration": "مدة",
"Remaining Time": "الوقت المتبقي",
"Stream Type": "نوع التيار",
"LIVE": "مباشر",
"Loaded": "تم التحميل",
"Progress": "التقدم",
"Fullscreen": "ملء الشاشة",
"Exit 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": ", مختار",
"Audio Player": "مشغل الصوت",
"Video Player": "مشغل الفيديو",
"Replay": "إعادة التشغيل",
"Seek to live, currently behind live": "ذهاب إلى نقطة البث المباشر، متأخر عن البث المباشر حاليًا",
"Seek to live, currently playing live": "ذهاب إلى نقطة البث المباشر، البث المباشر قيد التشغيل حاليًا",
"Progress Bar": "شريط التقدم",
"progress bar timing: currentTime={1} duration={2}": "{1} من {2}",
"Descriptions": "الأوصاف",
"descriptions off": "إخفاء الأوصاف",
"Audio Track": "المسار الصوتي",
"Volume Level": "مستوى الصوت",
"The media is encrypted and we do not have the keys to decrypt it.": "الوسائط مشفرة وليس لدينا الرموز اللازمة لفك شفرتها.",
"Close Modal Dialog": "إغلاق مربع الحوار المشروط",
", opens descriptions settings dialog": "، يفتح مربع حوار إعدادات الأوصاف",
"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": "منتظم",
"Drop shadow": "ظل خلفي",
"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": "إعادة الضبط",
"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.": "نهاية نافذة مربع حوار.",
"{1} is loading.": "{1} قيد التحميل.",
"Exit Picture-in-Picture": "خرج من وضع صورة داخل صورة",
"Picture-in-Picture": "صورة داخل صورة",
"No content": "لا يوجد محتوى",
"Color": "اللون",
"Opacity": "معدل الشفافية",
"Text Background": "خلفية النص",
"Caption Area Background": "خلفية منطقة التسمية التوضيحية",
"Skip forward {1} seconds": "التخطي للأمام {1}",
"Skip backward {1} seconds": "الرجوع للخلف {1}"
});

View file

@ -0,0 +1,96 @@
{
"Play": "تشغيل",
"Pause": "إيقاف",
"Current Time": "الوقت الحالي",
"Duration": "مدة",
"Remaining Time": "الوقت المتبقي",
"Stream Type": "نوع التيار",
"LIVE": "مباشر",
"Loaded": "تم التحميل",
"Progress": "التقدم",
"Fullscreen": "ملء الشاشة",
"Exit 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": ", مختار",
"Audio Player": "مشغل الصوت",
"Video Player": "مشغل الفيديو",
"Replay": "إعادة التشغيل",
"Seek to live, currently behind live": "ذهاب إلى نقطة البث المباشر، متأخر عن البث المباشر حاليًا",
"Seek to live, currently playing live": "ذهاب إلى نقطة البث المباشر، البث المباشر قيد التشغيل حاليًا",
"Progress Bar": "شريط التقدم",
"progress bar timing: currentTime={1} duration={2}": "{1} من {2}",
"Descriptions": "الأوصاف",
"descriptions off": "إخفاء الأوصاف",
"Audio Track": "المسار الصوتي",
"Volume Level": "مستوى الصوت",
"The media is encrypted and we do not have the keys to decrypt it.": "الوسائط مشفرة وليس لدينا الرموز اللازمة لفك شفرتها.",
"Close Modal Dialog": "إغلاق مربع الحوار المشروط",
", opens descriptions settings dialog": "، يفتح مربع حوار إعدادات الأوصاف",
"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": "منتظم",
"Drop shadow": "ظل خلفي",
"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": "إعادة الضبط",
"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.": "نهاية نافذة مربع حوار.",
"{1} is loading.": "{1} قيد التحميل.",
"Exit Picture-in-Picture": "خرج من وضع صورة داخل صورة",
"Picture-in-Picture": "صورة داخل صورة",
"No content": "لا يوجد محتوى",
"Color": "اللون",
"Opacity": "معدل الشفافية",
"Text Background": "خلفية النص",
"Caption Area Background": "خلفية منطقة التسمية التوضيحية",
"Skip forward {1} seconds": "التخطي للأمام {1}",
"Skip backward {1} seconds": "الرجوع للخلف {1}"
}

View file

@ -0,0 +1,97 @@
videojs.addLanguage('az', {
"Audio Player": "Audiopleyer",
"Video Player": "Videopleyer",
"Play": "Oynat",
"Pause": "Pauza",
"Replay": "Yenidən oynat",
"Current Time": "Cari Vaxt",
"Duration": "Müddət",
"Remaining Time": "Qalan vaxt",
"Stream Type": "Yayım növü",
"LIVE": "CANLI",
"Seek to live, currently behind live": "Canlı yayım axtarışı, hal-hazırda canlı yayımdan geridədir",
"Seek to live, currently playing live": "Canlı yayım axtarışı, hal-hazırda canlı yayım göstərilir",
"Loaded": "Yükləndi",
"Progress": "Yüklənmə",
"Progress Bar": "Yüklənmə göstəricisi",
"progress bar timing: currentTime={1} duration={2}": "{1} / {2}",
"Fullscreen": "Tam ekran",
"Exit Fullscreen": "Tam ekrandan çıx",
"Mute": "Səssizi qoş",
"Unmute": "Səssizi söndür",
"Playback Rate": "Oynatma sürəti",
"Subtitles": "Alt yazılar",
"subtitles off": "Alt yazıları söndür",
"Captions": "Başlıqlar",
"captions off": "Başlıqları söndür",
"Chapters": "Fəsillər",
"Descriptions": "Təsvirlər",
"descriptions off": "Təsvirləri söndür",
"Audio Track": "Audio Trek",
"Volume Level": "Səs Səviyyəsi",
"You aborted the media playback": "Siz medianın oxudulmasını dayandırdınız",
"A network error caused the media download to fail part-way.": "Şəbəkə xətası səbəbindən medianın endirilməsi yarıda qaldı.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Yükləmə xətası.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Media faylının korlanması səbəbilə və ya media faylın brauzerinizin dəstəkləmədiyi funksiyalardan istifadə etdiyinə görə medianın oxudulması dayandırılıb.",
"No compatible source was found for this media.": "Bu media üçün uyğun mənbə tapılmadı.",
"The media is encrypted and we do not have the keys to decrypt it.": "Media faylı şifrələnib və onun şifrəsini açmaq üçün açarlar yoxdur.",
"Play Video": "Videonu oynat",
"Close": "Bağla",
"Close Modal Dialog": "Modal dialoqunu bağla",
"Modal Window": "Modal pəncərəsi",
"This is a modal window": "Bu modal pəncərəsidir",
"This modal can be closed by pressing the Escape key or activating the close button.": "Bu modal Escape düyməsini basmaqla və ya bağlama düyməsini sıxmaqla bağlana bilər.",
", opens captions settings dialog": ", başlıq parametrləri dialoqunu açır",
", opens subtitles settings dialog": ", altyazı parametrləri dialoqunu açır",
", opens descriptions settings dialog": ", təsvir parametrləri dialoqunu açır",
", selected": ", seçilmiş",
"captions settings": "başlıq parametrləri",
"subtitles settings": "altyazı parametrləri",
"descriptions settings": "təsvir parametrləri",
"Text": "Tekst",
"White": "Ağ",
"Black": "Qara",
"Red": "Qırmızı",
"Green": "Yaşıl",
"Blue": "Göy",
"Yellow": "Sarı",
"Magenta": "Bənövşəyi",
"Cyan": "Mavi",
"Background": "Fon",
"Window": "Pəncərə",
"Transparent": "Şəffaf",
"Semi-Transparent": "Yarım-Şəffaf",
"Opaque": "Qeyri-şəffaf",
"Font Size": "Şrift Ölçüsü",
"Text Edge Style": "Mətnin kənarlarının üslubu",
"None": "Heç biri",
"Raised": "Artırılmış",
"Depressed": "Azaldılmış",
"Uniform": "Ümumiləşdirilmiş",
"Drop shadow": "Arxa kölgə",
"Font Family": "Şrift Ailəsi",
"Proportional Sans-Serif": "Proporsional Sans-Serif",
"Monospace Sans-Serif": "Birenli Sans-Serif",
"Proportional Serif": "Proporsional Serif",
"Monospace Serif": "Birenli Serif",
"Casual": "Gündəlik",
"Script": "Skript",
"Small Caps": "Kiçik böyük hərflər",
"Reset": "Sıfırla",
"restore all settings to the default values": "bütün parametrləri susmaya görə bərpa edin",
"Done": "Bitdi",
"Caption Settings Dialog": "Başlıq Parametrləri Dialoqu",
"Beginning of dialog window. Escape will cancel and close the window.": "Dialoq pəncərəsinin başlanğıcı. Escape düyməsi ləğv edəcək və pəncərəni bağlayacaq.",
"End of dialog window.": "Dialoq pəncərəsinin sonu.",
"{1} is loading.": "{1} yüklənir.",
"Exit Picture-in-Picture": "Şəkil içində şəkil rejimindən çıxın",
"Picture-in-Picture": "Şəkil içində şəkil rejimi",
"No content": "Məzmun yoxdur",
"Color": "Rəng",
"Opacity": "Qeyri-şəffaflıq",
"Text Background": "Tekst Fonu",
"Caption Area Background": "Başlıq Sahəsinin Fonu",
"Playing in Picture-in-Picture": "Şəkil içində şəkil rejimində oynayır",
"Skip backward {1} seconds": "{1} saniyə geriyə keçin",
"Skip forward {1} seconds": "{1} saniyə qabağa keçin"
});

View file

@ -0,0 +1,97 @@
{
"Audio Player": "Audiopleyer",
"Video Player": "Videopleyer",
"Play": "Oynat",
"Pause": "Pauza",
"Replay": "Yenidən oynat",
"Current Time": "Cari Vaxt",
"Duration": "Müddət",
"Remaining Time": "Qalan vaxt",
"Stream Type": "Yayım növü",
"LIVE": "CANLI",
"Seek to live, currently behind live": "Canlı yayım axtarışı, hal-hazırda canlı yayımdan geridədir",
"Seek to live, currently playing live": "Canlı yayım axtarışı, hal-hazırda canlı yayım göstərilir",
"Loaded": "Yükləndi",
"Progress": "Yüklənmə",
"Progress Bar": "Yüklənmə göstəricisi",
"progress bar timing: currentTime={1} duration={2}": "{1} / {2}",
"Fullscreen": "Tam ekran",
"Exit Fullscreen": "Tam ekrandan çıx",
"Mute": "Səssizi qoş",
"Unmute": "Səssizi söndür",
"Playback Rate": "Oynatma sürəti",
"Subtitles": "Alt yazılar",
"subtitles off": "Alt yazıları söndür",
"Captions": "Başlıqlar",
"captions off": "Başlıqları söndür",
"Chapters": "Fəsillər",
"Descriptions": "Təsvirlər",
"descriptions off": "Təsvirləri söndür",
"Audio Track": "Audio Trek",
"Volume Level": "Səs Səviyyəsi",
"You aborted the media playback": "Siz medianın oxudulmasını dayandırdınız",
"A network error caused the media download to fail part-way.": "Şəbəkə xətası səbəbindən medianın endirilməsi yarıda qaldı.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Yükləmə xətası.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Media faylının korlanması səbəbilə və ya media faylın brauzerinizin dəstəkləmədiyi funksiyalardan istifadə etdiyinə görə medianın oxudulması dayandırılıb.",
"No compatible source was found for this media.": "Bu media üçün uyğun mənbə tapılmadı.",
"The media is encrypted and we do not have the keys to decrypt it.": "Media faylı şifrələnib və onun şifrəsini açmaq üçün açarlar yoxdur.",
"Play Video": "Videonu oynat",
"Close": "Bağla",
"Close Modal Dialog": "Modal dialoqunu bağla",
"Modal Window": "Modal pəncərəsi",
"This is a modal window": "Bu modal pəncərəsidir",
"This modal can be closed by pressing the Escape key or activating the close button.": "Bu modal Escape düyməsini basmaqla və ya bağlama düyməsini sıxmaqla bağlana bilər.",
", opens captions settings dialog": ", başlıq parametrləri dialoqunu açır",
", opens subtitles settings dialog": ", altyazı parametrləri dialoqunu açır",
", opens descriptions settings dialog": ", təsvir parametrləri dialoqunu açır",
", selected": ", seçilmiş",
"captions settings": "başlıq parametrləri",
"subtitles settings": "altyazı parametrləri",
"descriptions settings": "təsvir parametrləri",
"Text": "Tekst",
"White": "Ağ",
"Black": "Qara",
"Red": "Qırmızı",
"Green": "Yaşıl",
"Blue": "Göy",
"Yellow": "Sarı",
"Magenta": "Bənövşəyi",
"Cyan": "Mavi",
"Background": "Fon",
"Window": "Pəncərə",
"Transparent": "Şəffaf",
"Semi-Transparent": "Yarım-Şəffaf",
"Opaque": "Qeyri-şəffaf",
"Font Size": "Şrift Ölçüsü",
"Text Edge Style": "Mətnin kənarlarının üslubu",
"None": "Heç biri",
"Raised": "Artırılmış",
"Depressed": "Azaldılmış",
"Uniform": "Ümumiləşdirilmiş",
"Drop shadow": "Arxa kölgə",
"Font Family": "Şrift Ailəsi",
"Proportional Sans-Serif": "Proporsional Sans-Serif",
"Monospace Sans-Serif": "Birenli Sans-Serif",
"Proportional Serif": "Proporsional Serif",
"Monospace Serif": "Birenli Serif",
"Casual": "Gündəlik",
"Script": "Skript",
"Small Caps": "Kiçik böyük hərflər",
"Reset": "Sıfırla",
"restore all settings to the default values": "bütün parametrləri susmaya görə bərpa edin",
"Done": "Bitdi",
"Caption Settings Dialog": "Başlıq Parametrləri Dialoqu",
"Beginning of dialog window. Escape will cancel and close the window.": "Dialoq pəncərəsinin başlanğıcı. Escape düyməsi ləğv edəcək və pəncərəni bağlayacaq.",
"End of dialog window.": "Dialoq pəncərəsinin sonu.",
"{1} is loading.": "{1} yüklənir.",
"Exit Picture-in-Picture": "Şəkil içində şəkil rejimindən çıxın",
"Picture-in-Picture": "Şəkil içində şəkil rejimi",
"No content": "Məzmun yoxdur",
"Color": "Rəng",
"Opacity": "Qeyri-şəffaflıq",
"Text Background": "Tekst Fonu",
"Caption Area Background": "Başlıq Sahəsinin Fonu",
"Playing in Picture-in-Picture": "Şəkil içində şəkil rejimində oynayır",
"Skip backward {1} seconds": "{1} saniyə geriyə keçin",
"Skip forward {1} seconds": "{1} saniyə qabağa keçin"
}

View file

@ -0,0 +1,26 @@
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",
"Exit 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

@ -0,0 +1,26 @@
{
"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",
"Exit 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

@ -0,0 +1,26 @@
videojs.addLanguage('bg', {
"Play": "Възпроизвеждане",
"Pause": "Пауза",
"Current Time": "Текущо време",
"Duration": "Продължителност",
"Remaining Time": "Оставащо време",
"Stream Type": "Тип на потока",
"LIVE": "НА ЖИВО",
"Loaded": "Заредено",
"Progress": "Прогрес",
"Fullscreen": "Цял екран",
"Exit 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

@ -0,0 +1,26 @@
{
"Play": "Възпроизвеждане",
"Pause": "Пауза",
"Current Time": "Текущо време",
"Duration": "Продължителност",
"Remaining Time": "Оставащо време",
"Stream Type": "Тип на потока",
"LIVE": "НА ЖИВО",
"Loaded": "Заредено",
"Progress": "Прогрес",
"Fullscreen": "Цял екран",
"Exit 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

@ -0,0 +1,90 @@
videojs.addLanguage('bn', {
"Audio Player": "অডিও প্লেয়ার",
"Video Player": "ভিডিও প্লেয়ার",
"Play": "প্লে করুন",
"Pause": "বিরাম",
"Replay": "রিপ্লে করুন",
"Current Time": "বর্তমান সময়",
"Duration": "ব্যাপ্তিকাল",
"Remaining Time": "অবশিষ্ট সময়",
"Stream Type": "স্ট্রিমের ধরন",
"LIVE": "লাইভ",
"Seek to live, currently behind live": "লাইভ দেখুন, বর্তমানে লাইভের পিছনে আছে",
"Seek to live, currently playing live": "লাইভ দেখুন, বর্তমানে লাইভে আছে",
"Loaded": "লোড হয়েছে",
"Progress": "প্রোগ্রেস",
"Progress Bar": "প্রোগ্রেস বার",
"progress bar timing: currentTime={1} duration={2}": "{2} এর {1}",
"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.": "Esc কী চেপে বা ক্লোজ বাটনটি সক্রিয় করে এই মডেলটি বন্ধ করা যেতে পারে।",
", 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": "ইউনিফর্ম",
"Drop shadow": "ড্রপশ্যাডো",
"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.": "ডায়লগ উইন্ডোর শুরু। Esc কী বাতিল করবে এবং উইন্ডো বন্ধ করবে।",
"End of dialog window.": "ডায়ালগ উইন্ডোর শেষ।",
"{1} is loading.": "{1} লোড হচ্ছে.",
"Exit Picture-in-Picture": "পিকচার-ইন-পিকচার থেকে প্রস্থান করুন",
"Picture-in-Picture": "পিকচার-ইন-পিকচার",
"No content": "কোন বিষয়বস্তু নেই"
});

View file

@ -0,0 +1,90 @@
{
"Audio Player": "অডিও প্লেয়ার",
"Video Player": "ভিডিও প্লেয়ার",
"Play": "প্লে করুন",
"Pause": "বিরাম",
"Replay": "রিপ্লে করুন",
"Current Time": "বর্তমান সময়",
"Duration": "ব্যাপ্তিকাল",
"Remaining Time": "অবশিষ্ট সময়",
"Stream Type": "স্ট্রিমের ধরন",
"LIVE": "লাইভ",
"Seek to live, currently behind live": "লাইভ দেখুন, বর্তমানে লাইভের পিছনে আছে",
"Seek to live, currently playing live": "লাইভ দেখুন, বর্তমানে লাইভে আছে",
"Loaded": "লোড হয়েছে",
"Progress": "প্রোগ্রেস",
"Progress Bar": "প্রোগ্রেস বার",
"progress bar timing: currentTime={1} duration={2}": "{2} এর {1}",
"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.": "Esc কী চেপে বা ক্লোজ বাটনটি সক্রিয় করে এই মডেলটি বন্ধ করা যেতে পারে।",
", 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": "ইউনিফর্ম",
"Drop shadow": "ড্রপশ্যাডো",
"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.": "ডায়লগ উইন্ডোর শুরু। Esc কী বাতিল করবে এবং উইন্ডো বন্ধ করবে।",
"End of dialog window.": "ডায়ালগ উইন্ডোর শেষ।",
"{1} is loading.": "{1} লোড হচ্ছে.",
"Exit Picture-in-Picture": "পিকচার-ইন-পিকচার থেকে প্রস্থান করুন",
"Picture-in-Picture": "পিকচার-ইন-পিকচার",
"No content": "কোন বিষয়বস্তু নেই"
}

View file

@ -0,0 +1,97 @@
videojs.addLanguage('ca', {
"Audio Player": "Reproductor d'àudio",
"Video Player": "Reproductor de vídeo",
"Play": "Reproduir",
"Pause": "Pausa",
"Replay": "Repetir",
"Current Time": "Temps actual",
"Duration": "Durada",
"Remaining Time": "Temps restant",
"Stream Type": "Tipus d'emissió",
"LIVE": "EN DIRECTE",
"Seek to live, currently behind live": "Anar en directe, actualment darrere de la retransmissió en directe",
"Seek to live, currently playing live": "Anar en directe, actualment en directe",
"Loaded": "Carregat",
"Progress": "Progrés",
"Progress Bar": "Barra de progrés",
"progress bar timing: currentTime={1} duration={2}": "{1} de {2}",
"Fullscreen": "Pantalla completa",
"Exit Fullscreen": "Sortir de pantalla completa",
"Mute": "Silenciar",
"Unmute": "Activar el so",
"Playback Rate": "Velocitat de reproducció",
"Subtitles": "Subtítols",
"subtitles off": "Desactivar subtítols",
"Captions": "Llegendes",
"captions off": "Desactivar llegendes",
"Chapters": "Capítols",
"Descriptions": "Descripcions",
"descriptions off": "Desactivar descripcions",
"Audio Track": "Pista d'àudio",
"Volume Level": "Nivell de volum",
"You aborted the media playback": "Has interromput la reproducció del contingut",
"A network error caused the media download to fail part-way.": "Un error de xarxa ha interromput la descàrrega del contingut.",
"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 contingut, ja sigui perquè el servidor o la xarxa han fallat o perquè el format no està suportat.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "La reproducció del contingut s'ha interromput a causa d'un problema de corrupció o perquè el contingut fa servir funcions que el teu navegador no suporta.",
"No compatible source was found for this media.": "No s'ha trobat una font compatible per a aquest contingut.",
"The media is encrypted and we do not have the keys to decrypt it.": "El contingut està xifrat i no disposem de les claus per desxifrar-lo.",
"Play Video": "Reproduir vídeo",
"Close": "Tancar",
"Close Modal Dialog": "Tancar el diàleg modal",
"Modal Window": "Finestra modal",
"This is a modal window": "Aquesta és una finestra modal",
"This modal can be closed by pressing the Escape key or activating the close button.": "Aquesta finestra es pot tancar prement la tecla Escape o activant el botó de tancar.",
", opens captions settings dialog": ", obre el diàleg de configuració de subtítols",
", opens subtitles settings dialog": ", obre el diàleg de configuració de subtítols",
", opens descriptions settings dialog": ", obre el diàleg de configuració de descripcions",
", selected": ", seleccionat",
"captions settings": "configuració de subtítols",
"subtitles settings": "configuració de subtítols",
"descriptions settings": "configuració de descripcions",
"Text": "Text",
"White": "Blanc",
"Black": "Negre",
"Red": "Vermell",
"Green": "Verd",
"Blue": "Blau",
"Yellow": "Groc",
"Magenta": "Magenta",
"Cyan": "Cian",
"Background": "Fons",
"Window": "Finestra",
"Transparent": "Transparent",
"Semi-Transparent": "Semi-transparent",
"Opaque": "Opac",
"Font Size": "Mida de la lletra",
"Text Edge Style": "Estil de la vora del text",
"None": "Cap",
"Raised": "Rellevat",
"Depressed": "Premut",
"Uniform": "Uniforme",
"Drop shadow": "Ombra",
"Font Family": "Família tipogràfica",
"Proportional Sans-Serif": "Sense serif proporcional",
"Monospace Sans-Serif": "Monoespaiada sense serif",
"Proportional Serif": "Serif proporcional",
"Monospace Serif": "Monoespaiada amb serif",
"Casual": "Desenfadada",
"Script": "Script",
"Small Caps": "Minúscules",
"Reset": "Restablir",
"restore all settings to the default values": "restaurar totes les configuracions als valors predeterminats",
"Done": "Fet",
"Caption Settings Dialog": "Diàleg de configuració de subtítols",
"Beginning of dialog window. Escape will cancel and close the window.": "Inici del diàleg. L'Escape cancel·larà i tancarà la finestra.",
"End of dialog window.": "Fi del diàleg.",
"{1} is loading.": "S'està carregant {1}.",
"Exit Picture-in-Picture": "Sortir de la imatge en imatge",
"Picture-in-Picture": "Imatge en imatge",
"No content": "Sense contingut",
"Color": "Color",
"Opacity": "Opacitat",
"Text Background": "Fons del text",
"Caption Area Background": "Fons de l'àrea de subtítols",
"Playing in Picture-in-Picture": "Reproduint en imatge en imatge",
"Skip backward {1} seconds": "Salta enrere {1} segons",
"Skip forward {1} seconds": "Salta endavant {1} segons"
});

View file

@ -0,0 +1,97 @@
{
"Audio Player": "Reproductor d'àudio",
"Video Player": "Reproductor de vídeo",
"Play": "Reproduir",
"Pause": "Pausa",
"Replay": "Repetir",
"Current Time": "Temps actual",
"Duration": "Durada",
"Remaining Time": "Temps restant",
"Stream Type": "Tipus d'emissió",
"LIVE": "EN DIRECTE",
"Seek to live, currently behind live": "Anar en directe, actualment darrere de la retransmissió en directe",
"Seek to live, currently playing live": "Anar en directe, actualment en directe",
"Loaded": "Carregat",
"Progress": "Progrés",
"Progress Bar": "Barra de progrés",
"progress bar timing: currentTime={1} duration={2}": "{1} de {2}",
"Fullscreen": "Pantalla completa",
"Exit Fullscreen": "Sortir de pantalla completa",
"Mute": "Silenciar",
"Unmute": "Activar el so",
"Playback Rate": "Velocitat de reproducció",
"Subtitles": "Subtítols",
"subtitles off": "Desactivar subtítols",
"Captions": "Llegendes",
"captions off": "Desactivar llegendes",
"Chapters": "Capítols",
"Descriptions": "Descripcions",
"descriptions off": "Desactivar descripcions",
"Audio Track": "Pista d'àudio",
"Volume Level": "Nivell de volum",
"You aborted the media playback": "Has interromput la reproducció del contingut",
"A network error caused the media download to fail part-way.": "Un error de xarxa ha interromput la descàrrega del contingut.",
"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 contingut, ja sigui perquè el servidor o la xarxa han fallat o perquè el format no està suportat.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "La reproducció del contingut s'ha interromput a causa d'un problema de corrupció o perquè el contingut fa servir funcions que el teu navegador no suporta.",
"No compatible source was found for this media.": "No s'ha trobat una font compatible per a aquest contingut.",
"The media is encrypted and we do not have the keys to decrypt it.": "El contingut està xifrat i no disposem de les claus per desxifrar-lo.",
"Play Video": "Reproduir vídeo",
"Close": "Tancar",
"Close Modal Dialog": "Tancar el diàleg modal",
"Modal Window": "Finestra modal",
"This is a modal window": "Aquesta és una finestra modal",
"This modal can be closed by pressing the Escape key or activating the close button.": "Aquesta finestra es pot tancar prement la tecla Escape o activant el botó de tancar.",
", opens captions settings dialog": ", obre el diàleg de configuració de subtítols",
", opens subtitles settings dialog": ", obre el diàleg de configuració de subtítols",
", opens descriptions settings dialog": ", obre el diàleg de configuració de descripcions",
", selected": ", seleccionat",
"captions settings": "configuració de subtítols",
"subtitles settings": "configuració de subtítols",
"descriptions settings": "configuració de descripcions",
"Text": "Text",
"White": "Blanc",
"Black": "Negre",
"Red": "Vermell",
"Green": "Verd",
"Blue": "Blau",
"Yellow": "Groc",
"Magenta": "Magenta",
"Cyan": "Cian",
"Background": "Fons",
"Window": "Finestra",
"Transparent": "Transparent",
"Semi-Transparent": "Semi-transparent",
"Opaque": "Opac",
"Font Size": "Mida de la lletra",
"Text Edge Style": "Estil de la vora del text",
"None": "Cap",
"Raised": "Rellevat",
"Depressed": "Premut",
"Uniform": "Uniforme",
"Drop shadow": "Ombra",
"Font Family": "Família tipogràfica",
"Proportional Sans-Serif": "Sense serif proporcional",
"Monospace Sans-Serif": "Monoespaiada sense serif",
"Proportional Serif": "Serif proporcional",
"Monospace Serif": "Monoespaiada amb serif",
"Casual": "Desenfadada",
"Script": "Script",
"Small Caps": "Minúscules",
"Reset": "Restablir",
"restore all settings to the default values": "restaurar totes les configuracions als valors predeterminats",
"Done": "Fet",
"Caption Settings Dialog": "Diàleg de configuració de subtítols",
"Beginning of dialog window. Escape will cancel and close the window.": "Inici del diàleg. L'Escape cancel·larà i tancarà la finestra.",
"End of dialog window.": "Fi del diàleg.",
"{1} is loading.": "S'està carregant {1}.",
"Exit Picture-in-Picture": "Sortir de la imatge en imatge",
"Picture-in-Picture": "Imatge en imatge",
"No content": "Sense contingut",
"Color": "Color",
"Opacity": "Opacitat",
"Text Background": "Fons del text",
"Caption Area Background": "Fons de l'àrea de subtítols",
"Playing in Picture-in-Picture": "Reproduint en imatge en imatge",
"Skip backward {1} seconds": "Salta enrere {1} segons",
"Skip forward {1} seconds": "Salta endavant {1} segons"
}

View file

@ -0,0 +1,85 @@
videojs.addLanguage('cs', {
"Audio Player": "Audio Přehravač",
"Video Player": "Video Přehravač",
"Play": "Přehrát",
"Pause": "Pozastavit",
"Replay": "Přehrát 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",
"Exit Fullscreen": "Běžné zobrazení",
"Mute": "Ztlumit",
"Unmute": "Zrušit ztlumení",
"Playback Rate": "Rychlost přehrávání",
"Subtitles": "Titulky",
"subtitles off": "Bez titulků",
"Captions": "Popisky",
"captions off": "Popisky vypnuté",
"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ý",
"Drop shadow": "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

@ -0,0 +1,85 @@
{
"Audio Player": "Audio Přehravač",
"Video Player": "Video Přehravač",
"Play": "Přehrát",
"Pause": "Pozastavit",
"Replay": "Přehrát 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",
"Exit Fullscreen": "Běžné zobrazení",
"Mute": "Ztlumit",
"Unmute": "Zrušit ztlumení",
"Playback Rate": "Rychlost přehrávání",
"Subtitles": "Titulky",
"subtitles off": "Bez titulků",
"Captions": "Popisky",
"captions off": "Popisky vypnuté",
"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ý",
"Drop shadow": "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

@ -0,0 +1,85 @@
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",
"Exit 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",
"Drop shadow": "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

@ -0,0 +1,85 @@
{
"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",
"Exit 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",
"Drop shadow":"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

@ -0,0 +1,26 @@
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",
"Exit 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

@ -0,0 +1,26 @@
{
"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",
"Exit 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

@ -0,0 +1,97 @@
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",
"Exit Fullscreen": "Vollbildmodus beenden",
"Mute": "Stumm schalten",
"Unmute": "Ton einschalten",
"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",
"Drop shadow": "Schlagschatten",
"Font Family": "Schriftfamilie",
"Proportional Sans-Serif": "Proportionale Sans-Serif",
"Monospace Sans-Serif": "Monospace Sans-Serif",
"Proportional Serif": "Proportionale Serif",
"Monospace Serif": "Monospace Serif",
"Casual": "Zwanglos",
"Script": "Schreibschrift",
"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": "Fortschrittsbalken",
"progress bar timing: currentTime={1} duration={2}": "{1} von {2}",
"Volume Level": "Lautstärke",
"{1} is loading.": "{1} wird geladen.",
"Seek to live, currently behind live": "Zur Live-Übertragung wechseln. Aktuell wird es nicht live abgespielt.",
"Seek to live, currently playing live": "Zur Live-Übertragung wechseln. Es wird aktuell live abgespielt.",
"Exit Picture-in-Picture": "Bild-im-Bild-Modus beenden",
"Picture-in-Picture": "Bild-im-Bild-Modus",
"No content": "Kein Inhalt",
"Color": "Farbe",
"Opacity": "Deckkraft",
"Text Background": "Texthintergrund",
"Caption Area Background": "Hintergrund des Untertitelbereichs",
"Playing in Picture-in-Picture": "Wird im Bild-im-Bild-Modus wiedergegeben",
"Skip forward {1} seconds": "{1} Sekunden vorwärts",
"Skip backward {1} seconds": "{1} Sekunden zurück"
});

View file

@ -0,0 +1,98 @@
{
"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",
"Exit Fullscreen": "Vollbildmodus beenden",
"Mute": "Stumm schalten",
"Unmute": "Ton einschalten",
"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",
"Drop shadow": "Schlagschatten",
"Font Family": "Schriftfamilie",
"Proportional Sans-Serif": "Proportionale Sans-Serif",
"Monospace Sans-Serif": "Monospace Sans-Serif",
"Proportional Serif": "Proportionale Serif",
"Monospace Serif": "Monospace Serif",
"Casual": "Zwanglos",
"Script": "Schreibschrift",
"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": "Fortschrittsbalken",
"progress bar timing: currentTime={1} duration={2}": "{1} von {2}",
"Volume Level": "Lautstärke",
"{1} is loading.": "{1} wird geladen.",
"Seek to live, currently behind live": "Zur Live-Übertragung wechseln. Aktuell wird es nicht live abgespielt.",
"Seek to live, currently playing live": "Zur Live-Übertragung wechseln. Es wird aktuell live abgespielt.",
"Exit Picture-in-Picture": "Bild-im-Bild-Modus beenden",
"Picture-in-Picture": "Bild-im-Bild-Modus",
"No content": "Kein Inhalt",
"Color": "Farbe",
"Opacity": "Deckkraft",
"Text Background": "Texthintergrund",
"Caption Area Background": "Hintergrund des Untertitelbereichs",
"Playing in Picture-in-Picture": "Wird im Bild-im-Bild-Modus wiedergegeben",
"Skip forward {1} seconds": "{1} Sekunden vorwärts",
"Skip backward {1} seconds": "{1} Sekunden zurück"
}

View file

@ -0,0 +1,40 @@
videojs.addLanguage('el', {
"Play": "Aναπαραγωγή",
"Pause": "Παύση",
"Current Time": "Τρέχων χρόνος",
"Duration": "Συνολικός χρόνος",
"Remaining Time": "Υπολοιπόμενος χρόνος",
"Stream Type": "Τύπος ροής",
"LIVE": "ΖΩΝΤΑΝΑ",
"Loaded": "Φόρτωση επιτυχής",
"Progress": "Πρόοδος",
"Fullscreen": "Πλήρης οθόνη",
"Exit 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

@ -0,0 +1,40 @@
{
"Play": "Aναπαραγωγή",
"Pause": "Παύση",
"Current Time": "Τρέχων χρόνος",
"Duration": "Συνολικός χρόνος",
"Remaining Time": "Υπολοιπόμενος χρόνος",
"Stream Type": "Τύπος ροής",
"LIVE": "ΖΩΝΤΑΝΑ",
"Loaded": "Φόρτωση επιτυχής",
"Progress": "Πρόοδος",
"Fullscreen": "Πλήρης οθόνη",
"Exit 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

@ -0,0 +1,3 @@
videojs.addLanguage('en-GB', {
"Color": "Colour"
});

View file

@ -0,0 +1,4 @@
{
"Color": "Colour"
}

View file

@ -0,0 +1,97 @@
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",
"Exit Fullscreen": "Exit 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": "subtitles 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",
"Drop shadow": "Drop shadow",
"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.",
"Exit Picture-in-Picture": "Exit Picture-in-Picture",
"Picture-in-Picture": "Picture-in-Picture",
"No content": "No content",
"Color": "Color",
"Opacity": "Opacity",
"Text Background": "Text Background",
"Caption Area Background": "Caption Area Background",
"Playing in Picture-in-Picture": "Playing in Picture-in-Picture",
"Skip backward {1} seconds": "Skip backward {1} seconds",
"Skip forward {1} seconds": "Skip forward {1} seconds"
});

View file

@ -0,0 +1,97 @@
{
"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",
"Exit Fullscreen": "Exit 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": "subtitles 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",
"Drop shadow": "Drop shadow",
"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.",
"Exit Picture-in-Picture": "Exit Picture-in-Picture",
"Picture-in-Picture": "Picture-in-Picture",
"No content": "No content",
"Color": "Color",
"Opacity": "Opacity",
"Text Background": "Text Background",
"Caption Area Background": "Caption Area Background",
"Playing in Picture-in-Picture": "Playing in Picture-in-Picture",
"Skip backward {1} seconds": "Skip backward {1} seconds",
"Skip forward {1} seconds": "Skip forward {1} seconds"
}

View file

@ -0,0 +1,96 @@
videojs.addLanguage('es', {
"Play": "Reproducir",
"Play Video": "Reproducir 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",
"Exit Fullscreen": "Pantalla no completa",
"Mute": "Desactivar el sonido",
"Unmute": "Activar el sonido",
"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.",
"Audio Player": "Reproductor de audio",
"Video Player": "Reproductor de video",
"Replay": "Volver a reproducir",
"Seek to live, currently behind live": "Buscar en vivo, actualmente demorado con respecto a la transmisión en vivo",
"Seek to live, currently playing live": "Buscar en vivo, actualmente reproduciendo en vivo",
"Progress Bar": "Barra de progreso",
"progress bar timing: currentTime={1} duration={2}": "{1} de {2}",
"Descriptions": "Descripciones",
"descriptions off": "descripciones desactivadas",
"Audio Track": "Pista de audio",
"Volume Level": "Nivel de volumen",
"The media is encrypted and we do not have the keys to decrypt it.": "El material audiovisual está cifrado y no tenemos las claves para descifrarlo.",
"Close": "Cerrar",
"Modal Window": "Ventana modal",
"This is a modal window": "Esta es una ventana modal",
"This modal can be closed by pressing the Escape key or activating the close button.": "Esta ventana modal puede cerrarse presionando la tecla Escape o activando el botón de cierre.",
", opens captions settings dialog": ", abre el diálogo de configuración de leyendas",
", opens subtitles settings dialog": ", abre el diálogo de configuración de subtítulos",
", selected": ", seleccionado",
"Close Modal Dialog": "Cierra cuadro de diálogo modal",
", opens descriptions settings dialog": ", abre el diálogo de configuración de las descripciones",
"captions settings": "configuración de leyendas",
"subtitles settings": "configuración de subtítulos",
"descriptions settings": "configuración de descripciones",
"Text": "Texto",
"White": "Blanco",
"Black": "Negro",
"Red": "Rojo",
"Green": "Verde",
"Blue": "Azul",
"Yellow": "Amarillo",
"Magenta": "Magenta",
"Cyan": "Cian",
"Background": "Fondo",
"Window": "Ventana",
"Transparent": "Transparente",
"Semi-Transparent": "Semitransparente",
"Opaque": "Opaca",
"Font Size": "Tamaño de fuente",
"Text Edge Style": "Estilo de borde del texto",
"None": "Ninguno",
"Raised": "En relieve",
"Depressed": "Hundido",
"Uniform": "Uniforme",
"Drop shadow": "Sombra paralela",
"Font Family": "Familia de fuente",
"Proportional Sans-Serif": "Sans-Serif proporcional",
"Monospace Sans-Serif": "Sans-Serif monoespacio",
"Proportional Serif": "Serif proporcional",
"Monospace Serif": "Serif monoespacio",
"Casual": "Informal",
"Script": "Cursiva",
"Small Caps": "Minúsculas",
"Reset": "Restablecer",
"restore all settings to the default values": "restablece todas las configuraciones a los valores predeterminados",
"Done": "Listo",
"Caption Settings Dialog": "Diálogo de configuración de leyendas",
"Beginning of dialog window. Escape will cancel and close the window.": "Comienzo de la ventana de diálogo. La tecla Escape cancelará la operación y cerrará la ventana.",
"End of dialog window.": "Final de la ventana de diálogo.",
"{1} is loading.": "{1} se está cargando.",
"Exit Picture-in-Picture": "Salir de imagen sobre imagen",
"Picture-in-Picture": "Imagen sobre imagen",
"No content": "Sin contenido",
"Color": "Color",
"Opacity": "Opacidad",
"Text Background": "Fondo del texto",
"Caption Area Background": "Fondo del área de subtítulos",
"Skip forward {1} seconds": "Avanza {1} segundos",
"Skip backward {1} seconds": "Retrocede {1} segundos"
});

View file

@ -0,0 +1,96 @@
{
"Play": "Reproducir",
"Play Video": "Reproducir 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",
"Exit Fullscreen": "Pantalla no completa",
"Mute": "Desactivar el sonido",
"Unmute": "Activar el sonido",
"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.",
"Audio Player": "Reproductor de audio",
"Video Player": "Reproductor de video",
"Replay": "Volver a reproducir",
"Seek to live, currently behind live": "Buscar en vivo, actualmente demorado con respecto a la transmisión en vivo",
"Seek to live, currently playing live": "Buscar en vivo, actualmente reproduciendo en vivo",
"Progress Bar": "Barra de progreso",
"progress bar timing: currentTime={1} duration={2}": "{1} de {2}",
"Descriptions": "Descripciones",
"descriptions off": "descripciones desactivadas",
"Audio Track": "Pista de audio",
"Volume Level": "Nivel de volumen",
"The media is encrypted and we do not have the keys to decrypt it.": "El material audiovisual está cifrado y no tenemos las claves para descifrarlo.",
"Close": "Cerrar",
"Modal Window": "Ventana modal",
"This is a modal window": "Esta es una ventana modal",
"This modal can be closed by pressing the Escape key or activating the close button.": "Esta ventana modal puede cerrarse presionando la tecla Escape o activando el botón de cierre.",
", opens captions settings dialog": ", abre el diálogo de configuración de leyendas",
", opens subtitles settings dialog": ", abre el diálogo de configuración de subtítulos",
", selected": ", seleccionado",
"Close Modal Dialog": "Cierra cuadro de diálogo modal",
", opens descriptions settings dialog": ", abre el diálogo de configuración de las descripciones",
"captions settings": "configuración de leyendas",
"subtitles settings": "configuración de subtítulos",
"descriptions settings": "configuración de descripciones",
"Text": "Texto",
"White": "Blanco",
"Black": "Negro",
"Red": "Rojo",
"Green": "Verde",
"Blue": "Azul",
"Yellow": "Amarillo",
"Magenta": "Magenta",
"Cyan": "Cian",
"Background": "Fondo",
"Window": "Ventana",
"Transparent": "Transparente",
"Semi-Transparent": "Semitransparente",
"Opaque": "Opaca",
"Font Size": "Tamaño de fuente",
"Text Edge Style": "Estilo de borde del texto",
"None": "Ninguno",
"Raised": "En relieve",
"Depressed": "Hundido",
"Uniform": "Uniforme",
"Drop shadow": "Sombra paralela",
"Font Family": "Familia de fuente",
"Proportional Sans-Serif": "Sans-Serif proporcional",
"Monospace Sans-Serif": "Sans-Serif monoespacio",
"Proportional Serif": "Serif proporcional",
"Monospace Serif": "Serif monoespacio",
"Casual": "Informal",
"Script": "Cursiva",
"Small Caps": "Minúsculas",
"Reset": "Restablecer",
"restore all settings to the default values": "restablece todas las configuraciones a los valores predeterminados",
"Done": "Listo",
"Caption Settings Dialog": "Diálogo de configuración de leyendas",
"Beginning of dialog window. Escape will cancel and close the window.": "Comienzo de la ventana de diálogo. La tecla Escape cancelará la operación y cerrará la ventana.",
"End of dialog window.": "Final de la ventana de diálogo.",
"{1} is loading.": "{1} se está cargando.",
"Exit Picture-in-Picture": "Salir de imagen sobre imagen",
"Picture-in-Picture": "Imagen sobre imagen",
"No content": "Sin contenido",
"Color": "Color",
"Opacity": "Opacidad",
"Text Background": "Fondo del texto",
"Caption Area Background": "Fondo del área de subtítulos",
"Skip forward {1} seconds": "Avanza {1} segundos",
"Skip backward {1} seconds": "Retrocede {1} segundos"
}

View file

@ -0,0 +1,89 @@
videojs.addLanguage('et', {
"Audio Player": "Heliesitaja",
"Video Player": "Videoesitaja",
"Play": "Esita",
"Pause": "Paus",
"Replay": "Esita uuesti",
"Current Time": "Praegune aeg",
"Duration": "Kestus",
"Remaining Time": "Järelejäänud aeg",
"Stream Type": "Voo tüüp",
"LIVE": "OTSE",
"Seek to live, currently behind live": "Mine üle otseedastusle, praegu reaalajast taga",
"Seek to live, currently playing live": "Mine üle otseedastusle, praegu reaalajas ",
"Loaded": "Laaditud",
"Progress": "Edenemine",
"Progress Bar": "Edenemisriba ",
"progress bar timing: currentTime={1} duration={2}": "{1} / {2}",
"Fullscreen": "Täisekraan",
"Exit Fullscreen": "Välju täisekraanist",
"Mute": "Vaigista",
"Unmute": "Lõpeta vaigistus",
"Playback Rate": "Taasesituse kiirus",
"Subtitles": "Subtiitrid",
"subtitles off": "subtiitrid väljas",
"Captions": "Pealdised",
"captions off": "pealdised väljas",
"Chapters": "Peatükid",
"Descriptions": "Kirjeldused",
"descriptions off": "kirjeldused väljas",
"Audio Track": "Helirada",
"Volume Level": "Helitugevuse tase",
"You aborted the media playback": "Katkestasid taasesituse",
"A network error caused the media download to fail part-way.": "Võrguvea tõttu nurjus meediumifaili allalaadimine poole pealt.",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Seda meediumifaili ei õnnestunud laadida, kuna serveris või võrgus esines tõrge või kuna vormingut ei toetata.",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Meediumifaili taasesitamine katkestati, kuna fail on rikutud või see kasutab funktsiooni, mida sinu brauser ei toeta.",
"No compatible source was found for this media.": "Ei leitud selle meediumifailiga ühilduvat allikat.",
"The media is encrypted and we do not have the keys to decrypt it.": "See meediumifail on krüpteeritud ja meil pole dekrüpteerimiseks vajalikku võtit.",
"Play Video": "Esita video",
"Close": "Sule",
"Close Modal Dialog": "Sule modaaldialoog",
"Modal Window": "Modaalaken",
"This is a modal window": "See on modaalaken",
"This modal can be closed by pressing the Escape key or activating the close button.": "Saad selle modaalelemendi sulgeda, vajutades paoklahvi või tehes sulgemisnupu aktiivseks.",
", opens captions settings dialog": ", avab pealdiste sätete dialoogi",
", opens subtitles settings dialog": ", avab subtiitrite sätete dialoogi",
", opens descriptions settings dialog": ", avab kirjelduste sätete dialoogi",
", selected": ", valitud",
"captions settings": "pealdiste sätted",
"subtitles settings": "subtiitrite sätted",
"descriptions settings": "kirjelduste sätted",
"Text": "Tekst",
"White": "Valge",
"Black": "Must",
"Red": "Punane",
"Green": "Roheline",
"Blue": "Sinine",
"Yellow": "Kollane",
"Magenta": "Magneta",
"Cyan": "Tsüaan",
"Background": "Taust",
"Window": "Aken",
"Transparent": "Läbipaistev",
"Semi-Transparent": "Poolläbipaistev",
"Opaque": "Läbipaistmatu",
"Font Size": "Fondi suurus",
"Text Edge Style": "Tekstiserva stiil",
"None": "Puudub",
"Raised": "Kõrgem",
"Depressed": "Madalam",
"Uniform": "Ühtlane",
"Drop shadow": "Langeva varjuga",
"Font Family": "Fondipere",
"Proportional Sans-Serif": "Seriifideta proportsionaalkiri",
"Monospace Sans-Serif": "Seriifideta püsisammkiri",
"Proportional Serif": "Seriifidega proportsionaalkiri",
"Monospace Serif": "Seriifidega püsisammkiri",
"Casual": "Sidumata kiri",
"Script": "Käsikirjaline kiri",
"Small Caps": "Kapiteelkiri",
"Reset": "Lähtesta",
"restore all settings to the default values": "taasta kõigi sätete vaikeväärtused",
"Done": "Valmis",
"Caption Settings Dialog": "Pealdiste sätete dialoog",
"Beginning of dialog window. Escape will cancel and close the window.": "Dialoogiakna algus. Paoklahv loobub aknast ja suleb selle.",
"End of dialog window.": "Dialoogiakna lõpp.",
"{1} is loading.": "{1} laadimisel.",
"Exit Picture-in-Picture": "Välju funktsioonist pilt pildis",
"Picture-in-Picture": "Pilt pildis"
});

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