Merge pull request #734 from movie-web/dev

V4.2.4
This commit is contained in:
William Oldham 2024-01-06 15:51:49 +00:00 committed by GitHub
commit 5805bc7672
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
38 changed files with 1370 additions and 95 deletions

View File

@ -127,3 +127,52 @@ jobs:
asset_path: ./movie-web.zip asset_path: ./movie-web.zip
asset_name: movie-web.zip asset_name: movie-web.zip
asset_content_type: application/zip asset_content_type: application/zip
registry:
name: Push to registry
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
id-token: write
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Setup Docker buildx
uses: docker/setup-buildx-action@v2
- name: Get version
id: package-version
uses: martinbeentjes/npm-get-version-action@main
- name: Log into registry ${{ env.REGISTRY }}
uses: docker/login-action@v2
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract Docker metadata
id: meta
uses: docker/metadata-action@v4
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
flavor: |
latest=auto
tags: |
type=semver,pattern={{version}},value=v${{ steps.package-version.outputs.current-version }}
- name: Build and push Docker image
id: build-and-push
uses: docker/build-push-action@v4
with:
push: true
context: .
labels: ${{ steps.meta.outputs.labels }}
tags: ${{ steps.meta.outputs.tags }}

View File

@ -13,6 +13,6 @@ RUN pnpm run build
# production environment # production environment
FROM nginx:stable-alpine FROM nginx:stable-alpine
COPY --from=build /app/build /usr/share/nginx/html COPY --from=build /app/dist /usr/share/nginx/html
EXPOSE 80 EXPOSE 80
CMD ["nginx", "-g", "daemon off;"] CMD ["nginx", "-g", "daemon off;"]

View File

@ -15,6 +15,7 @@
<meta name="msapplication-TileColor" content="#120f1d" /> <meta name="msapplication-TileColor" content="#120f1d" />
<meta name="theme-color" content="#120f1d" /> <meta name="theme-color" content="#120f1d" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<link rel="apple-touch-startup-image" <link rel="apple-touch-startup-image"
media="screen and (device-width: 430px) and (device-height: 932px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)" media="screen and (device-width: 430px) and (device-height: 932px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"
href="/splash_screens/iPhone_15_Pro_Max__iPhone_15_Plus__iPhone_14_Pro_Max_landscape.png"> href="/splash_screens/iPhone_15_Pro_Max__iPhone_15_Plus__iPhone_14_Pro_Max_landscape.png">

View File

@ -1,6 +1,6 @@
{ {
"name": "movie-web", "name": "movie-web",
"version": "4.2.3", "version": "4.2.4",
"private": true, "private": true,
"homepage": "https://movie-web.app", "homepage": "https://movie-web.app",
"scripts": { "scripts": {
@ -29,7 +29,7 @@
"@formkit/auto-animate": "^0.8.1", "@formkit/auto-animate": "^0.8.1",
"@headlessui/react": "^1.7.17", "@headlessui/react": "^1.7.17",
"@ladjs/country-language": "^1.0.3", "@ladjs/country-language": "^1.0.3",
"@movie-web/providers": "^2.0.2", "@movie-web/providers": "^2.0.4",
"@noble/hashes": "^1.3.3", "@noble/hashes": "^1.3.3",
"@react-spring/web": "^9.7.3", "@react-spring/web": "^9.7.3",
"@scure/bip39": "^1.2.2", "@scure/bip39": "^1.2.2",

8
pnpm-lock.yaml generated
View File

@ -21,8 +21,8 @@ dependencies:
specifier: ^1.0.3 specifier: ^1.0.3
version: 1.0.3 version: 1.0.3
'@movie-web/providers': '@movie-web/providers':
specifier: ^2.0.2 specifier: ^2.0.4
version: 2.0.3 version: 2.0.4
'@noble/hashes': '@noble/hashes':
specifier: ^1.3.3 specifier: ^1.3.3
version: 1.3.3 version: 1.3.3
@ -1917,8 +1917,8 @@ packages:
engines: {node: '>= 14'} engines: {node: '>= 14'}
dev: false dev: false
/@movie-web/providers@2.0.3: /@movie-web/providers@2.0.4:
resolution: {integrity: sha512-6UNk5EebiNjGoFTuyHuu0eZZTreRYv0cdsn52CVYjm6CXG63w4dMbx8ybxcvMUrDF3o8bWlqnlovG142sdOmNw==} resolution: {integrity: sha512-+WXOCCKCDZBkKs8TLTCIzSjtpyofH7YHewNvOKMNKXtB6tiE3NvXU5tKq9J6mQA/RwR5VqSKUiWpgzJvOvG3dA==}
dependencies: dependencies:
cheerio: 1.0.0-rc.12 cheerio: 1.0.0-rc.12
crypto-js: 4.2.0 crypto-js: 4.2.0

199
public/flags/galicia.svg Normal file
View File

@ -0,0 +1,199 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg sodipodi:docbase="F:\Mis Documentos - Miaj Dokumentoj\Mis imágenes\++Wiki\Sullpukuna\SVG" sodipodi:docname="Flag_of_Galicia.svg" sodipodi:version="0.32" version="1.0" viewBox="0 0 600 400" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd">
<metadata>
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview/>
<g transform="matrix(1 0 0 1.0001 -.04 -96.055)">
<rect x=".040048" y="96.048" width="600" height="399.97" fill="#fff" fill-rule="evenodd" stroke-width="1pt"/>
<path d="m600.04 437.8-513.97-341.75h-86.03v56.935l515.9 343.03h84.104v-58.22" fill="#09c"/>
</g>
<g transform="matrix(1 0 0 1.0001 -.04 -96.055)">
<path d="m296.65 401.23c-60.134 0-58.181-56.575-58.181-56.575v-86.833h116.36v86.833s2.0369 56.575-58.179 56.575" fill="#005bbf"/>
<path d="m296.65 401.23c-60.134 0-58.181-56.575-58.181-56.575v-86.833h116.36v86.833s2.0369 56.575-58.179 56.575z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m296.14 203.18s-12.406-6.0358-24.142 2.851c0 0-21.118-3.0479-22.672 17.18-0.06245 0.81902-0.18975 2.3274 0.18736 2.7669 0.37712 0.43954 0.75423 1.2586 0.75423 1.8206 0 0.56683 0.37712 0.88146 0.50443 1.1312 0.12489 0.25219 0.43955 0.62928 0.50201 1.6981 0.06245 1.0688-0.12491 1.5708 0.88154 2.6396 1.004 1.0688 1.0665 4.1503 1.0665 5.0294 0 0.87906 0.62933 3.3313 1.0689 3.8357 0.43957 0.50197 1.1938 1.7581 1.1938 2.8269 0 1.0688 0.43957 4.023 0.24981 4.7748-0.18735 0.75417 1.1313 1.6981 2.3275 2.0752 1.1938 0.37709 16.031 5.2167 37.656 4.8396 21.628-0.37708 29.415-1.5276 38.35-4.7772 1.3812-0.50199 1.6334-1.6332 1.5085-2.2625-0.12731-0.62686 0-2.6372 0.37711-3.1416 0.37711-0.50197 2.892-4.525 2.3876-5.2792-0.50202-0.75417-0.50202-2.3898 0-3.0167 0.50442-0.62928 2.0777-3.6532 2.3876-4.9045 0.31226-1.2537 0.35309-2.7309 0.92957-3.168 0.57888-0.43713 0.77344-1.8542 0.88394-2.1496 0.11288-0.29782 0.53324-1.2201 1.1193-1.6404 0 0 1.0905-5.111 0.41794-7.6234-0.66775-2.5147-4.4413-13.328-19.78-11.063 0 0-11.4-8.6345-28.163-4.4434" fill="#d81126"/>
<path d="m296.14 203.18s-12.406-6.0358-24.142 2.851c0 0-21.118-3.0479-22.672 17.18-0.06245 0.81902-0.18975 2.3274 0.18736 2.7669 0.37712 0.43954 0.75423 1.2586 0.75423 1.8206 0 0.56683 0.37712 0.88146 0.50443 1.1312 0.12489 0.25219 0.43955 0.62928 0.50201 1.6981 0.06245 1.0688-0.12491 1.5708 0.88154 2.6396 1.004 1.0688 1.0665 4.1503 1.0665 5.0294 0 0.87906 0.62933 3.3313 1.0689 3.8357 0.43957 0.50197 1.1938 1.7581 1.1938 2.8269 0 1.0688 0.43957 4.023 0.24981 4.7748-0.18735 0.75417 1.1313 1.6981 2.3275 2.0752 1.1938 0.37709 16.031 5.2167 37.656 4.8396 21.628-0.37708 29.415-1.5276 38.35-4.7772 1.3812-0.50199 1.6334-1.6332 1.5085-2.2625-0.12731-0.62686 0-2.6372 0.37711-3.1416 0.37711-0.50197 2.892-4.525 2.3876-5.2792-0.50202-0.75417-0.50202-2.3898 0-3.0167 0.50442-0.62928 2.0777-3.6532 2.3876-4.9045 0.31226-1.2537 0.35309-2.7309 0.92957-3.168 0.57888-0.43713 0.77344-1.8542 0.88394-2.1496 0.11288-0.29782 0.53324-1.2201 1.1193-1.6404 0 0 1.0905-5.111 0.41794-7.6234-0.66775-2.5147-4.4413-13.328-19.78-11.063 0 0-11.4-8.6345-28.163-4.4434h0.0048z" fill="none" stroke="#000" stroke-width="1.5084"/>
<path d="m337.64 240.83c-47.108-14.92-83.414-0.73976-83.414-0.73976s0.33627 1.6452 0.75422 2.1472c0.42035 0.50198 1.0064 1.6765 1.0064 2.5579 0 0.87906 0.08407 2.1376 0.08407 2.8077 0 0.6677-0.51403 3.6748 2.1738 3.6388 0 0 32.742-12.842 75.377 0.6605 0 0 1.1674-1.0472 1.2106-2.5555 0.04083-1.5083 0.29064-3.1007 0.87912-3.939 0.58609-0.83823 1.9264-3.4562 1.9264-4.5779" fill="#bcac0b"/>
<path d="m293.97 319.35h-20.453s-2.0129 18.271 13.747 23.804v1.6765h3.3532v2.1784s-5.784 5.1951-0.75663 11.147v1.8446h0.8407v2.9326h0.91996v4.7748s-0.75423 17.058-17.477 25.229v1.0064h44.651v-1.0064c-16.72-8.171-17.477-25.229-17.477-25.229v-4.7748h0.91996v-2.9326h0.8383v-1.8446c5.0298-5.9517-0.75423-11.147-0.75423-11.147v-2.1784h3.3532v-1.6765c15.76-5.5338 13.747-23.804 13.747-23.804h-25.454" fill="#c8b100" fill-opacity=".94118"/>
<path d="m293.97 319.35h-20.453s-2.0129 18.271 13.747 23.804v1.6765h3.3532v2.1784s-5.784 5.1951-0.75663 11.147v1.8446h0.8407v2.9326h0.91996v4.7748s-0.75423 17.058-17.477 25.229v1.0064h44.651v-1.0064c-16.72-8.171-17.477-25.229-17.477-25.229v-4.7748h0.91996v-2.9326h0.8383v-1.8446c5.0298-5.9517-0.75423-11.147-0.75423-11.147v-2.1784h3.3532v-1.6765c15.76-5.5338 13.747-23.804 13.747-23.804h-25.454 0.0024z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m286.59 342.9h19.742m-19.069 1.5083h18.399m-15.046 2.5147h11.568m-12.325 11.44h13.204m-12.322 1.4051h11.527m-11.527 2.851h11.484m-18.524 23.153h25.524m-32.732 5.9085h39.984m-41.492 0.87906h43.041" fill="none" stroke="#000" stroke-width=".2522"/>
<path d="m296.64 318.27c7.2012 0 13.04-5.8388 13.04-13.039 0-7.2006-5.8393-13.039-13.04-13.039-7.2012 0-13.04 5.8388-13.04 13.039 0 7.2006 5.8392 13.039 13.04 13.039" fill="#ccc"/>
<path d="m296.64 318.27c7.2012 0 13.04-5.8388 13.04-13.039 0-7.2006-5.8393-13.039-13.04-13.039-7.2012 0-13.04 5.8388-13.04 13.039 0 7.2006 5.8392 13.039 13.04 13.039z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m266.29 279.96h-8.1308v-8.1326h-7.2084v8.1326h-8.1308v7.2054h8.1308v8.1302h7.2084v-8.1302h8.1308v-7.2054" fill="#ccc"/>
<path d="m266.29 279.96h-8.1308v-8.1326h-7.2084v8.1326h-8.1308v7.2054h8.1308v8.1302h7.2084v-8.1302h8.1308v-7.2054" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m350.8 279.96h-8.1308v-8.1326h-7.2108v8.1326h-8.1284v7.2054h8.1284v8.1302h7.2108v-8.1302h8.1308v-7.2054" fill="#ccc"/>
<path d="m350.8 279.96h-8.1308v-8.1326h-7.2108v8.1326h-8.1284v7.2054h8.1284v8.1302h7.2108v-8.1302h8.1308v-7.2054" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m307.98 269.74h-8.1308v-8.1301h-7.2084v8.1301h-8.1308v7.2078h8.1308v8.1301h7.2084v-8.1301h8.1308v-7.2078" fill="#ccc"/>
<path d="m307.98 269.74h-8.1308v-8.1301h-7.2084v8.1301h-8.1308v7.2078h8.1308v8.1301h7.2084v-8.1301h8.1308v-7.2078" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m266.29 315.16h-8.1308v-8.1301h-7.2084v8.1301h-8.1308v7.2078h8.1308v8.1301h7.2084v-8.1301h8.1308v-7.2078" fill="#ccc"/>
<path d="m266.29 315.16h-8.1308v-8.1301h-7.2084v8.1301h-8.1308v7.2078h8.1308v8.1301h7.2084v-8.1301h8.1308v-7.2078" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m350.8 315.16h-8.1308v-8.1301h-7.2108v8.1301h-8.1284v7.2078h8.1284v8.1301h7.2108v-8.1301h8.1308v-7.2078" fill="#ccc"/>
<path d="m350.8 315.16h-8.1308v-8.1301h-7.2108v8.1301h-8.1284v7.2078h8.1284v8.1301h7.2108v-8.1301h8.1308v-7.2078" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m266.29 350.71h-8.1308v-8.1325h-7.2084v8.1325h-8.1308v7.2078h8.1308v8.1277h7.2084v-8.1277h8.1308v-7.2078" fill="#ccc"/>
<path d="m266.29 350.71h-8.1308v-8.1325h-7.2084v8.1325h-8.1308v7.2078h8.1308v8.1277h7.2084v-8.1277h8.1308v-7.2078" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m350.8 350.71h-8.1308v-8.1325h-7.2108v8.1325h-8.1284v7.2078h8.1284v8.1277h7.2108v-8.1277h8.1308v-7.2078" fill="#ccc"/>
<path d="m350.8 350.71h-8.1308v-8.1325h-7.2108v8.1325h-8.1284v7.2078h8.1284v8.1277h7.2108v-8.1277h8.1308v-7.2078" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m296.53 185.77c4.3212 0 7.8257-3.5018 7.8257-7.8227 0-4.3209-3.5045-7.8227-7.8257-7.8227-4.3212 0-7.8233 3.5018-7.8233 7.8227 0 4.3209 3.5021 7.8227 7.8233 7.8227" fill="#005bbf"/>
<path d="m296.53 185.77c4.3212 0 7.8257-3.5018 7.8257-7.8227 0-4.3209-3.5045-7.8227-7.8257-7.8227-4.3212 0-7.8233 3.5018-7.8233 7.8227 0 4.3209 3.5021 7.8227 7.8233 7.8227z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m303.83 176.57h-6.4133v-10.371h2.45v-2.0752h-2.45v-2.4523h-2.0753v2.4523h-2.4524v2.0752h2.4524v10.371h-6.0987v1.3834h6.0987v0.06245h2.0753v-0.06245h6.4133v-1.3834" fill="#fc0"/>
<path d="m303.83 176.57h-6.4133v-10.371h2.45v-2.0752h-2.45v-2.4523h-2.0753v2.4523h-2.4524v2.0752h2.4524v10.371h-6.0987v1.3834h6.0987v0.06245h2.0753v-0.06245h6.4133v-1.3834" fill="#bcac0b" stroke="#000" stroke-width=".502"/>
<path d="m265.21 195.13s5.784-0.6701 9.1348 0.67011c0 0-3.8408 4.3689-3.0169 10.14 0.42034 2.935 1.0064 4.4434 1.8447 5.8676 0.8383 1.4267 1.7583 4.3593 1.2562 6.7058h1.0905s1.0905-4.7772-0.75423-7.46c-1.8447-2.6804-2.7671-6.3696-0.92236-10.225 1.8423-3.8549 4.5254-5.3632 4.5254-5.3632 3.101 1.2562 9.6416 0.08166 11.484-1.2585 1.8423-1.3426 2.7647-3.1848-0.67015-3.3529-3.4349-0.16812-9.303-0.08406-13.326 2.935 0 0-2.0969-2.433-12.574-1.2586-10.478 1.1745-18.051 5.6491-20.369 15.088-1.1722 4.7772 3.2691 14.834 7.3765 17.264 0 0-0.12491-1.6332 0.29305-2.8077 0 0-6.9994-7.8371-4.9025-15.129 2.0946-7.2919 10.478-12.069 19.531-11.817" fill="#fc0"/>
<path d="m265.21 195.13s5.784-0.6701 9.1348 0.67011c0 0-3.8408 4.3689-3.0169 10.14 0.42034 2.935 1.0064 4.4434 1.8447 5.8676 0.8383 1.4267 1.7583 4.3593 1.2562 6.7058h1.0905s1.0905-4.7772-0.75423-7.46c-1.8447-2.6804-2.7671-6.3696-0.92236-10.225 1.8423-3.8549 4.5254-5.3632 4.5254-5.3632 3.101 1.2562 9.6416 0.08166 11.484-1.2585 1.8423-1.3426 2.7647-3.1848-0.67015-3.3529-3.4349-0.16812-9.303-0.08406-13.326 2.935 0 0-2.0969-2.433-12.574-1.2586-10.478 1.1745-18.051 5.6491-20.369 15.088-1.1722 4.7772 3.2691 14.834 7.3765 17.264 0 0-0.12491-1.6332 0.29305-2.8077 0 0-6.9994-7.8371-4.9025-15.129 2.0946-7.2919 10.478-12.069 19.531-11.817z" fill="#bcac0b" stroke="#000" stroke-width=".65332"/>
<path d="m284.9 193.69c1.8111-0.14651 3.2619-0.46114 3.2427-0.70853-0.01922-0.24259-1.5036-0.32425-3.3148-0.17774s-3.2619 0.46355-3.2427 0.70854c0.01922 0.24498 1.5036 0.32424 3.3148 0.17773" fill="#fff"/>
<path d="m278.3 195.43s-2.0729 1.9479 0 0c2.0753-1.9479 6.4133-3.2689 8.8658-2.702 2.45 0.56443-0.44197 0.87906-1.2586 0.94151s-2.4524 0.37709-4.84 0" fill="none" stroke="#000" stroke-width=".65332"/>
<path d="m327.74 195.76s-5.7816-0.6677-9.1348 0.67251c0 0 3.8432 4.3665 3.0169 10.14-0.41795 2.935-1.004 4.4434-1.8423 5.8676-0.84071 1.4219-1.7607 4.3593-1.2587 6.7059h-1.0905s-1.0881-4.7772 0.75422-7.46c1.8448-2.6828 2.7671-6.3696 0.92237-10.225-1.8423-3.8573-4.5254-5.3656-4.5254-5.3656-3.101 1.2586-9.6392 0.08406-11.484-1.2562-1.8399-1.3426-2.7647-3.1848 0.67016-3.3529 3.4373-0.16813 9.3053-0.08406 13.329 2.9326 0 0 2.0946-2.4306 12.572-1.2561 10.48 1.1721 18.051 5.6491 20.369 15.086 1.1746 4.7772-3.2691 14.836-7.3765 17.267 0 0 0.12729-1.6332-0.29305-2.8077 0 0 6.9994-7.8371 4.9049-15.129-2.097-7.2919-10.478-12.069-19.533-11.819" fill="#fc0"/>
<path d="m327.74 195.76s-5.7816-0.6677-9.1348 0.67251c0 0 3.8432 4.3665 3.0169 10.14-0.41795 2.935-1.004 4.4434-1.8423 5.8676-0.84071 1.4219-1.7607 4.3593-1.2587 6.7059h-1.0905s-1.0881-4.7772 0.75422-7.46c1.8448-2.6828 2.7671-6.3696 0.92237-10.225-1.8423-3.8573-4.5254-5.3656-4.5254-5.3656-3.101 1.2586-9.6392 0.08406-11.484-1.2562-1.8399-1.3426-2.7647-3.1848 0.67016-3.3529 3.4373-0.16813 9.3053-0.08406 13.329 2.9326 0 0 2.0946-2.4306 12.572-1.2561 10.48 1.1721 18.051 5.6491 20.369 15.086 1.1746 4.7772-3.2691 14.836-7.3765 17.267 0 0 0.12729-1.6332-0.29305-2.8077 0 0 6.9994-7.8371 4.9049-15.129-2.097-7.2919-10.478-12.069-19.533-11.819z" fill="#bcac0b" stroke="#000" stroke-width=".65332"/>
<path d="m308.04 194.32c-1.8087-0.14651-3.2619-0.46355-3.2427-0.70853 0.02162-0.24498 1.5036-0.32425 3.3148-0.17773 1.8111 0.14651 3.2643 0.46355 3.2451 0.70854-0.02162 0.24497-1.506 0.32424-3.3172 0.17772" fill="#fff"/>
<path d="m314.64 196.05s2.0753 1.9479 0 0c-2.0729-1.9503-6.4109-3.2689-8.8634-2.7044-2.4524 0.56683 0.43957 0.88147 1.2562 0.94392 0.81908 0.06245 2.4524 0.37708 4.8424 0" fill="none" stroke="#000" stroke-width=".65332"/>
<path d="m291.11 189.35v22.296c-0.25221 2.1784 2.6806 5.2792 4.7776 6.2015 0 0 4.9457-1.6765 5.2796-6.2015v-23.555h-1.6766v20.367c-0.08168 2.0968-1.4244 5.8676-3.2691 6.4561 0 0-3.603-0.58845-3.7711-6.372v-19.861l-1.3403 0.6677" fill="#fc0"/>
<path d="m291.11 189.35v22.296c-0.25221 2.1784 2.6806 5.2792 4.7776 6.2015 0 0 4.9457-1.6765 5.2796-6.2015v-23.555h-1.6766v20.367c-0.08168 2.0968-1.4244 5.8676-3.2691 6.4561 0 0-3.603-0.58845-3.7711-6.372v-19.861l-1.3403 0.6677" fill="#bcac0b" stroke="#000" stroke-width=".65332"/>
<path d="m241.78 219.84c1.4724 0 2.6662-1.1937 2.6662-2.666 0-1.4699-1.1938-2.666-2.6662-2.666-1.4724 0-2.6662 1.1937-2.6662 2.666 0 1.4723 1.1938 2.666 2.6662 2.666" fill="#fff"/>
<path d="m241.78 219.84c1.4724 0 2.6662-1.1937 2.6662-2.666 0-1.4699-1.1938-2.666-2.6662-2.666-1.4724 0-2.6662 1.1937-2.6662 2.666 0 1.4723 1.1938 2.666 2.6662 2.666z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m240.11 213.71c1.4748 0 2.6686-1.1937 2.6686-2.666 0-1.4699-1.1938-2.666-2.6686-2.666-1.4724 0-2.6662 1.1937-2.6662 2.666s1.1938 2.666 2.6662 2.666" fill="#fff"/>
<path d="m240.11 213.71c1.4748 0 2.6686-1.1937 2.6686-2.666 0-1.4699-1.1938-2.666-2.6686-2.666-1.4724 0-2.6662 1.1937-2.6662 2.666s1.1938 2.666 2.6662 2.666z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m240.99 206.3c1.4724 0 2.6662-1.1937 2.6662-2.6684 0-1.4723-1.1938-2.666-2.6662-2.666-1.4724 0-2.6662 1.1937-2.6662 2.666 0 1.4747 1.1938 2.6684 2.6662 2.6684" fill="#fff"/>
<path d="m240.99 206.3c1.4724 0 2.6662-1.1937 2.6662-2.6684 0-1.4723-1.1938-2.666-2.6662-2.666-1.4724 0-2.6662 1.1937-2.6662 2.666 0 1.4747 1.1938 2.6684 2.6662 2.6684z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m245.14 200.14c1.4748 0 2.6686-1.1937 2.6686-2.666 0-1.4747-1.1938-2.6684-2.6686-2.6684-1.4724 0-2.6662 1.1937-2.6662 2.6684 0 1.4723 1.1938 2.666 2.6662 2.666" fill="#fff"/>
<path d="m245.14 200.14c1.4748 0 2.6686-1.1937 2.6686-2.666 0-1.4747-1.1938-2.6684-2.6686-2.6684-1.4724 0-2.6662 1.1937-2.6662 2.6684 0 1.4723 1.1938 2.666 2.6662 2.666z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m250.04 195.64c1.4724 0 2.6662-1.1937 2.6662-2.6684 0-1.4723-1.1938-2.666-2.6662-2.666s-2.6686 1.1937-2.6686 2.666c0 1.4747 1.1962 2.6684 2.6686 2.6684" fill="#fff"/>
<path d="m250.04 195.64c1.4724 0 2.6662-1.1937 2.6662-2.6684 0-1.4723-1.1938-2.666-2.6662-2.666s-2.6686 1.1937-2.6686 2.666c0 1.4747 1.1962 2.6684 2.6686 2.6684z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m256.36 193.13c1.4724 0 2.6662-1.1937 2.6662-2.6684 0-1.4723-1.1938-2.666-2.6662-2.666-1.4724 0-2.6662 1.1937-2.6662 2.666 0 1.4747 1.1938 2.6684 2.6662 2.6684" fill="#fff"/>
<path d="m256.36 193.13c1.4724 0 2.6662-1.1937 2.6662-2.6684 0-1.4723-1.1938-2.666-2.6662-2.666-1.4724 0-2.6662 1.1937-2.6662 2.666 0 1.4747 1.1938 2.6684 2.6662 2.6684z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m262.96 191.93c1.4724 0 2.6662-1.1961 2.6662-2.6684 0-1.4723-1.1938-2.666-2.6662-2.666-1.4724 0-2.6662 1.1937-2.6662 2.666 0 1.4723 1.1938 2.6684 2.6662 2.6684" fill="#fff"/>
<path d="m262.96 191.93c1.4724 0 2.6662-1.1961 2.6662-2.6684 0-1.4723-1.1938-2.666-2.6662-2.666-1.4724 0-2.6662 1.1937-2.6662 2.666 0 1.4723 1.1938 2.6684 2.6662 2.6684z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m269.25 191.56c1.4724 0 2.6662-1.1961 2.6662-2.6684 0-1.4723-1.1938-2.666-2.6662-2.666-1.4748 0-2.6686 1.1937-2.6686 2.666 0 1.4723 1.1938 2.6684 2.6686 2.6684" fill="#fff"/>
<path d="m269.25 191.56c1.4724 0 2.6662-1.1961 2.6662-2.6684 0-1.4723-1.1938-2.666-2.6662-2.666-1.4748 0-2.6686 1.1937-2.6686 2.666 0 1.4723 1.1938 2.6684 2.6686 2.6684z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m274.91 192.06c1.4724 0 2.6662-1.1937 2.6662-2.666 0-1.4747-1.1938-2.6684-2.6662-2.6684-1.4724 0-2.6662 1.1937-2.6662 2.6684 0 1.4723 1.1938 2.666 2.6662 2.666" fill="#fff"/>
<path d="m274.91 192.06c1.4724 0 2.6662-1.1937 2.6662-2.666 0-1.4747-1.1938-2.6684-2.6662-2.6684-1.4724 0-2.6662 1.1937-2.6662 2.6684 0 1.4723 1.1938 2.666 2.6662 2.666z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m291.04 190.05c1.4724 0 2.6686-1.1937 2.6686-2.666 0-1.4699-1.1962-2.666-2.6686-2.666s-2.6662 1.1937-2.6662 2.666c0 1.4723 1.1938 2.666 2.6662 2.666" fill="#fff"/>
<path d="m291.04 190.05c1.4724 0 2.6686-1.1937 2.6686-2.666 0-1.4699-1.1962-2.666-2.6686-2.666s-2.6662 1.1937-2.6662 2.666c0 1.4723 1.1938 2.666 2.6662 2.666z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m296.19 191.43c1.4724 0 2.6686-1.1937 2.6686-2.666s-1.1962-2.666-2.6686-2.666-2.6662 1.1937-2.6662 2.666 1.1938 2.666 2.6662 2.666" fill="#fff"/>
<path d="m296.19 191.43c1.4724 0 2.6686-1.1937 2.6686-2.666s-1.1962-2.666-2.6686-2.666-2.6662 1.1937-2.6662 2.666 1.1938 2.666 2.6662 2.666z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m296.19 211.17c1.4724 0 2.6686-1.1937 2.6686-2.666 0-1.4723-1.1962-2.666-2.6686-2.666s-2.6662 1.1937-2.6662 2.666c0 1.4723 1.1938 2.666 2.6662 2.666" fill="#fff"/>
<path d="m296.19 211.17c1.4724 0 2.6686-1.1937 2.6686-2.666 0-1.4723-1.1962-2.666-2.6686-2.666s-2.6662 1.1937-2.6662 2.666c0 1.4723 1.1938 2.666 2.6662 2.666z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m351.33 221.54c1.4724 0 2.6662-1.1937 2.6662-2.6684 0-1.4723-1.1938-2.666-2.6662-2.666-1.4748 0-2.6686 1.1937-2.6686 2.666 0 1.4747 1.1938 2.6684 2.6686 2.6684" fill="#fff"/>
<path d="m351.33 221.54c1.4724 0 2.6662-1.1937 2.6662-2.6684 0-1.4723-1.1938-2.666-2.6662-2.666-1.4748 0-2.6686 1.1937-2.6686 2.666 0 1.4747 1.1938 2.6684 2.6686 2.6684z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m352.71 214.91c1.4748 0 2.6686-1.1937 2.6686-2.666s-1.1938-2.666-2.6686-2.666c-1.4724 0-2.6662 1.1937-2.6662 2.666s1.1938 2.666 2.6662 2.666" fill="#fff"/>
<path d="m352.71 214.91c1.4748 0 2.6686-1.1937 2.6686-2.666s-1.1938-2.666-2.6686-2.666c-1.4724 0-2.6662 1.1937-2.6662 2.666s1.1938 2.666 2.6662 2.666z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m351.58 207.99c1.4748 0 2.6686-1.1937 2.6686-2.6684 0-1.4723-1.1938-2.666-2.6686-2.666-1.4724 0-2.6662 1.1937-2.6662 2.666 0 1.4747 1.1938 2.6684 2.6662 2.6684" fill="#fff"/>
<path d="m351.58 207.99c1.4748 0 2.6686-1.1937 2.6686-2.6684 0-1.4723-1.1938-2.666-2.6686-2.666-1.4724 0-2.6662 1.1937-2.6662 2.666 0 1.4747 1.1938 2.6684 2.6662 2.6684z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m348.69 201.46c1.4748 0 2.6686-1.1961 2.6686-2.6684 0-1.4699-1.1938-2.666-2.6686-2.666-1.4724 0-2.6662 1.1937-2.6662 2.666s1.1938 2.6684 2.6662 2.6684" fill="#fff"/>
<path d="m348.69 201.46c1.4748 0 2.6686-1.1961 2.6686-2.6684 0-1.4699-1.1938-2.666-2.6686-2.666-1.4724 0-2.6662 1.1937-2.6662 2.666s1.1938 2.6684 2.6662 2.6684z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m343.78 196.93c1.4724 0 2.6662-1.1937 2.6662-2.666s-1.1938-2.666-2.6662-2.666c-1.4724 0-2.6686 1.1937-2.6686 2.666s1.1962 2.666 2.6686 2.666" fill="#fff"/>
<path d="m343.78 196.93c1.4724 0 2.6662-1.1937 2.6662-2.666s-1.1938-2.666-2.6662-2.666c-1.4724 0-2.6686 1.1937-2.6686 2.666s1.1962 2.666 2.6686 2.666z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m337.87 194.04c1.4724 0 2.6662-1.1937 2.6662-2.666s-1.1938-2.666-2.6662-2.666c-1.4748 0-2.6686 1.1937-2.6686 2.666s1.1938 2.666 2.6686 2.666" fill="#fff"/>
<path d="m337.87 194.04c1.4724 0 2.6662-1.1937 2.6662-2.666s-1.1938-2.666-2.6662-2.666c-1.4748 0-2.6686 1.1937-2.6686 2.666s1.1938 2.666 2.6686 2.666z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m331.15 192.5c1.4748 0 2.6686-1.1937 2.6686-2.666 0-1.4699-1.1938-2.666-2.6686-2.666-1.4724 0-2.6662 1.1937-2.6662 2.666 0 1.4723 1.1938 2.666 2.6662 2.666" fill="#fff"/>
<path d="m331.15 192.5c1.4748 0 2.6686-1.1937 2.6686-2.666 0-1.4699-1.1938-2.666-2.6686-2.666-1.4724 0-2.6662 1.1937-2.6662 2.666 0 1.4723 1.1938 2.666 2.6662 2.666z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m324.98 192c1.4748 0 2.6686-1.1937 2.6686-2.6684 0-1.4699-1.1938-2.666-2.6686-2.666-1.4724 0-2.6662 1.1937-2.6662 2.666 0 1.4747 1.1938 2.6684 2.6662 2.6684" fill="#fff"/>
<path d="m324.98 192c1.4748 0 2.6686-1.1937 2.6686-2.6684 0-1.4699-1.1938-2.666-2.6686-2.666-1.4724 0-2.6662 1.1937-2.6662 2.666 0 1.4747 1.1938 2.6684 2.6662 2.6684z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m319.4 191.26c1.4748 0 2.6686-1.1937 2.6686-2.666 0-1.4723-1.1938-2.666-2.6686-2.666-1.4724 0-2.6662 1.1937-2.6662 2.666 0 1.4723 1.1938 2.666 2.6662 2.666" fill="#fff"/>
<path d="m319.4 191.26c1.4748 0 2.6686-1.1937 2.6686-2.666 0-1.4723-1.1938-2.666-2.6686-2.666-1.4724 0-2.6662 1.1937-2.6662 2.666 0 1.4723 1.1938 2.666 2.6662 2.666z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m323.01 213.09c1.4724 0 2.6662-1.1961 2.6662-2.6684 0-1.4699-1.1938-2.666-2.6662-2.666-1.4724 0-2.6662 1.1937-2.6662 2.666 0 1.4723 1.1938 2.6684 2.6662 2.6684" fill="#fff"/>
<path d="m323.01 213.09c1.4724 0 2.6662-1.1961 2.6662-2.6684 0-1.4699-1.1938-2.666-2.6662-2.666-1.4724 0-2.6662 1.1937-2.6662 2.666 0 1.4723 1.1938 2.6684 2.6662 2.6684z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m324.39 207.93c1.4724 0 2.6662-1.1937 2.6662-2.666s-1.1938-2.666-2.6662-2.666c-1.4748 0-2.6686 1.1937-2.6686 2.666s1.1938 2.666 2.6686 2.666" fill="#fff"/>
<path d="m324.39 207.93c1.4724 0 2.6662-1.1937 2.6662-2.666s-1.1938-2.666-2.6662-2.666c-1.4748 0-2.6686 1.1937-2.6686 2.666s1.1938 2.666 2.6686 2.666z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m301.98 190.86c1.4748 0 2.6686-1.1961 2.6686-2.6684s-1.1938-2.666-2.6686-2.666c-1.4724 0-2.6662 1.1937-2.6662 2.666s1.1938 2.6684 2.6662 2.6684" fill="#fff"/>
<path d="m301.98 190.86c1.4748 0 2.6686-1.1961 2.6686-2.6684s-1.1938-2.666-2.6686-2.666c-1.4724 0-2.6662 1.1937-2.6662 2.666s1.1938 2.6684 2.6662 2.6684z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m288.93 190.14c1.4748 0 2.6686-1.1937 2.6686-2.6684 0-1.4699-1.1938-2.6636-2.6686-2.6636-1.4724 0-2.6662 1.1913-2.6662 2.6636 0 1.4747 1.1938 2.6684 2.6662 2.6684" fill="#fff"/>
<path d="m288.93 190.14c1.4748 0 2.6686-1.1937 2.6686-2.6684 0-1.4699-1.1938-2.6636-2.6686-2.6636-1.4724 0-2.6662 1.1913-2.6662 2.6636 0 1.4747 1.1938 2.6684 2.6662 2.6684z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m285.78 190.01c1.4724 0 2.6662-1.1937 2.6662-2.666s-1.1938-2.666-2.6662-2.666c-1.4724 0-2.6662 1.1937-2.6662 2.666s1.1938 2.666 2.6662 2.666" fill="#fff"/>
<path d="m285.78 190.01c1.4724 0 2.6662-1.1937 2.6662-2.666s-1.1938-2.666-2.6662-2.666c-1.4724 0-2.6662 1.1937-2.6662 2.666s1.1938 2.666 2.6662 2.666z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m268.84 213.15c1.4724 0 2.6686-1.1937 2.6686-2.6684 0-1.4723-1.1962-2.666-2.6686-2.666-1.4724 0-2.6662 1.1937-2.6662 2.666 0 1.4747 1.1938 2.6684 2.6662 2.6684" fill="#fff"/>
<path d="m268.84 213.15c1.4724 0 2.6686-1.1937 2.6686-2.6684 0-1.4723-1.1962-2.666-2.6686-2.666-1.4724 0-2.6662 1.1937-2.6662 2.666 0 1.4747 1.1938 2.6684 2.6662 2.6684z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m268.06 206.77c1.4724 0 2.6686-1.1937 2.6686-2.666 0-1.4723-1.1962-2.666-2.6686-2.666-1.4724 0-2.6662 1.1937-2.6662 2.666 0 1.4723 1.1938 2.666 2.6662 2.666" fill="#fff"/>
<path d="m268.06 206.77c1.4724 0 2.6686-1.1937 2.6686-2.666 0-1.4723-1.1962-2.666-2.6686-2.666-1.4724 0-2.6662 1.1937-2.6662 2.666 0 1.4723 1.1938 2.666 2.6662 2.666z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m269.94 200.61c1.4748 0 2.6686-1.1937 2.6686-2.666s-1.1938-2.666-2.6686-2.666c-1.4724 0-2.6662 1.1937-2.6662 2.666s1.1938 2.666 2.6662 2.666" fill="#fff"/>
<path d="m269.94 200.61c1.4748 0 2.6686-1.1937 2.6686-2.666s-1.1938-2.666-2.6686-2.666c-1.4724 0-2.6662 1.1937-2.6662 2.666s1.1938 2.666 2.6662 2.666z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m281.66 190.61c1.4748 0 2.6686-1.1937 2.6686-2.666 0-1.4747-1.1938-2.6684-2.6686-2.6684-1.4724 0-2.6662 1.1937-2.6662 2.6684 0 1.4723 1.1938 2.666 2.6662 2.666" fill="#fff"/>
<path d="m281.66 190.61c1.4748 0 2.6686-1.1937 2.6686-2.666 0-1.4747-1.1938-2.6684-2.6686-2.6684-1.4724 0-2.6662 1.1937-2.6662 2.6684 0 1.4723 1.1938 2.666 2.6662 2.666z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m277.23 192.44c1.4748 0 2.6686-1.1937 2.6686-2.666 0-1.4747-1.1938-2.6684-2.6686-2.6684-1.4724 0-2.6662 1.1937-2.6662 2.6684 0 1.4723 1.1938 2.666 2.6662 2.666" fill="#fff"/>
<path d="m277.23 192.44c1.4748 0 2.6686-1.1937 2.6686-2.666 0-1.4747-1.1938-2.6684-2.6686-2.6684-1.4724 0-2.6662 1.1937-2.6662 2.6684 0 1.4723 1.1938 2.666 2.6662 2.666z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m272.99 196.02c1.4724 0 2.6662-1.1961 2.6662-2.6684 0-1.4723-1.1938-2.666-2.6662-2.666-1.4748 0-2.6686 1.1937-2.6686 2.666 0 1.4723 1.1938 2.6684 2.6686 2.6684" fill="#fff"/>
<path d="m272.99 196.02c1.4724 0 2.6662-1.1961 2.6662-2.6684 0-1.4723-1.1938-2.666-2.6662-2.666-1.4748 0-2.6686 1.1937-2.6686 2.666 0 1.4723 1.1938 2.6684 2.6686 2.6684z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m296.19 194.45c1.4724 0 2.6686-1.1961 2.6686-2.6684 0-1.4699-1.1962-2.666-2.6686-2.666s-2.6662 1.1937-2.6662 2.666c0 1.4723 1.1938 2.6684 2.6662 2.6684" fill="#fff"/>
<path d="m296.19 194.45c1.4724 0 2.6686-1.1961 2.6686-2.6684 0-1.4699-1.1962-2.666-2.6686-2.666s-2.6662 1.1937-2.6662 2.666c0 1.4723 1.1938 2.6684 2.6662 2.6684z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m296.19 199.48c1.4724 0 2.6686-1.1937 2.6686-2.666 0-1.4723-1.1962-2.666-2.6686-2.666s-2.6662 1.1937-2.6662 2.666c0 1.4723 1.1938 2.666 2.6662 2.666" fill="#fff"/>
<path d="m296.19 199.48c1.4724 0 2.6686-1.1937 2.6686-2.666 0-1.4723-1.1962-2.666-2.6686-2.666s-2.6662 1.1937-2.6662 2.666c0 1.4723 1.1938 2.666 2.6662 2.666z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m296.19 204.88c1.4724 0 2.6686-1.1937 2.6686-2.666 0-1.4699-1.1962-2.666-2.6686-2.666s-2.6662 1.1937-2.6662 2.666c0 1.4723 1.1938 2.666 2.6662 2.666" fill="#fff"/>
<path d="m296.19 204.88c1.4724 0 2.6686-1.1937 2.6686-2.666 0-1.4699-1.1962-2.666-2.6686-2.666s-2.6662 1.1937-2.6662 2.666c0 1.4723 1.1938 2.666 2.6662 2.666z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m305.43 190.17c1.4724 0 2.6662-1.1961 2.6662-2.6684 0-1.4699-1.1938-2.666-2.6662-2.666-1.4748 0-2.6686 1.1937-2.6686 2.666s1.1938 2.6684 2.6686 2.6684" fill="#fff"/>
<path d="m305.43 190.17c1.4724 0 2.6662-1.1961 2.6662-2.6684 0-1.4699-1.1938-2.666-2.6662-2.666-1.4748 0-2.6686 1.1937-2.6686 2.666s1.1938 2.6684 2.6686 2.6684z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m309.08 189.42c1.4724 0 2.6662-1.1961 2.6662-2.6684 0-1.4699-1.1938-2.666-2.6662-2.666-1.4748 0-2.6686 1.1937-2.6686 2.666s1.1938 2.6684 2.6686 2.6684" fill="#fff"/>
<path d="m309.08 189.42c1.4724 0 2.6662-1.1961 2.6662-2.6684 0-1.4699-1.1938-2.666-2.6662-2.666-1.4748 0-2.6686 1.1937-2.6686 2.666s1.1938 2.6684 2.6686 2.6684z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m313.2 190.08c1.4724 0 2.6662-1.1961 2.6662-2.6684s-1.1938-2.666-2.6662-2.666c-1.4724 0-2.6662 1.1937-2.6662 2.666s1.1938 2.6684 2.6662 2.6684" fill="#fff"/>
<path d="m313.2 190.08c1.4724 0 2.6662-1.1961 2.6662-2.6684s-1.1938-2.666-2.6662-2.666c-1.4724 0-2.6662 1.1937-2.6662 2.666s1.1938 2.6684 2.6662 2.6684z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m323.51 201.39c1.4724 0 2.6686-1.1937 2.6686-2.666 0-1.4723-1.1962-2.666-2.6686-2.666-1.4724 0-2.6662 1.1937-2.6662 2.666 0 1.4723 1.1938 2.666 2.6662 2.666" fill="#fff"/>
<path d="m323.51 201.39c1.4724 0 2.6686-1.1937 2.6686-2.666 0-1.4723-1.1962-2.666-2.6686-2.666-1.4724 0-2.6662 1.1937-2.6662 2.666 0 1.4723 1.1938 2.666 2.6662 2.666z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m317.35 192.47c1.4748 0 2.6686-1.1937 2.6686-2.666 0-1.4747-1.1938-2.6684-2.6686-2.6684-1.4724 0-2.6662 1.1937-2.6662 2.6684 0 1.4723 1.1938 2.666 2.6662 2.666" fill="#fff"/>
<path d="m317.35 192.47c1.4748 0 2.6686-1.1937 2.6686-2.666 0-1.4747-1.1938-2.6684-2.6686-2.6684-1.4724 0-2.6662 1.1937-2.6662 2.6684 0 1.4723 1.1938 2.666 2.6662 2.666z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m321.12 196.11c1.4724 0 2.6662-1.1937 2.6662-2.6684 0-1.4723-1.1938-2.666-2.6662-2.666-1.4748 0-2.6686 1.1937-2.6686 2.666 0 1.4747 1.1938 2.6684 2.6686 2.6684" fill="#fff"/>
<path d="m321.12 196.11c1.4724 0 2.6662-1.1937 2.6662-2.6684 0-1.4723-1.1938-2.666-2.6662-2.666-1.4748 0-2.6686 1.1937-2.6686 2.666 0 1.4747 1.1938 2.6684 2.6686 2.6684z" fill="none" stroke="#000" stroke-width="1.0064"/>
<path d="m296.02 236.05-7.0403 3.521 6.3365 3.9894 7.511-3.754-6.8073-3.7564" fill="#fff"/>
<path d="m296.02 236.05-7.0403 3.521 6.3365 3.9894 7.511-3.754-6.8073-3.7564" fill="none" stroke="#000" stroke-width=".502"/>
<path d="m280.63 236.79-10.562 1.6332s-0.1273 5.6587 0.37711 7.0421l10.811-1.5107s0.50442-5.2792-0.62692-7.1646" fill="#fff"/>
<path d="m280.63 236.79-10.562 1.6332s-0.1273 5.6587 0.37711 7.0421l10.811-1.5107s0.50442-5.2792-0.62692-7.1646z" fill="none" stroke="#000" stroke-width=".502"/>
<path d="m279.45 238.8s-6.3701 0.58604-7.9626 1.1745l0.08408 3.8549s4.1915-0.75418 8.0467-1.0904l-0.16814-3.939" fill="#058e6e" fill-opacity=".94118"/>
<path d="m279.45 238.8s-6.3701 0.58604-7.9626 1.1745l0.08408 3.8549s4.1915-0.75418 8.0467-1.0904l-0.16814-3.939" fill="none" stroke="#000" stroke-width=".502"/>
<path d="m310.74 237.09 10.559 1.6356s0.12731 5.6563-0.37711 7.0397l-10.811-1.5083s-0.50442-5.2816 0.62932-7.167" fill="#fff"/>
<path d="m310.74 237.09 10.559 1.6356s0.12731 5.6563-0.37711 7.0397l-10.811-1.5083s-0.50442-5.2816 0.62932-7.167z" fill="none" stroke="#000" stroke-width=".502"/>
<path d="m311.92 239.11s6.3701 0.58605 7.9626 1.1721l-0.08407 3.8549s-4.1915-0.75416-8.0467-1.088l0.16813-3.939" fill="#058e6e" fill-opacity=".94118"/>
<path d="m311.92 239.11s6.3701 0.58605 7.9626 1.1721l-0.08407 3.8549s-4.1915-0.75416-8.0467-1.088l0.16813-3.939" fill="none" stroke="#000" stroke-width=".502"/>
<path d="m254.22 241.82s37.048-13.758 84.159 1.1625m-82.65 6.7563s35.835-13.402 80.03 0.59566m-79.862-9.0188 7.2084 2.0944-5.0298 5.3657" fill="none" stroke="#000" stroke-width=".502"/>
<path d="m256.07 247.77 4.1074-3.437-4.6935-0.9223s0.63893 0.72535 0.50682 1.3907c-0.12971 0.6653 0.03843 2.3826 0.07926 2.9686" fill="#f00"/>
<path d="m256.07 247.77 4.1074-3.437-4.6935-0.9223s0.63893 0.72535 0.50682 1.3907c-0.12971 0.6653 0.03843 2.3826 0.07926 2.9686z" fill="none" stroke="#000" stroke-width=".502"/>
<path d="m337.59 242.7-7.6696 1.3834 5.1547 6.0334" fill="none" stroke="#000" stroke-width=".502"/>
<path d="m335.32 247.98-2.892-3.0191 4.1482-0.37709s-1.1313 0.75417-1.1313 1.3834c0 0.62927 0.12731 1.5083-0.1249 2.0127" fill="#f00"/>
<path d="m335.32 247.98-2.892-3.0191 4.1482-0.37709s-1.1313 0.75417-1.1313 1.3834c0 0.62927 0.12731 1.5083-0.1249 2.0127z" fill="none" stroke="#000" stroke-width=".502"/>
<path d="m265.29 241.85c0.65335 0 1.1842-0.42511 1.1842-0.95111 0-0.52119-0.53084-0.94632-1.1842-0.94632-0.65574 0-1.1866 0.42513-1.1866 0.94632 0 0.526 0.53084 0.95111 1.1866 0.95111zm20.607-2.349c0.65575 0 1.1866-0.42512 1.1866-0.94631 0-0.526-0.53084-0.94872-1.1866-0.94872-0.65334 0-1.1842 0.42272-1.1842 0.94872 0 0.52119 0.53084 0.94631 1.1842 0.94631zm0 3.3529c0.65575 0 1.1866-0.42513 1.1866-0.94872 0-0.5236-0.53084-0.94631-1.1866-0.94631-0.65334 0-1.1842 0.42271-1.1842 0.94631 0 0.52359 0.53084 0.94872 1.1842 0.94872zm20.285-3.1848c0.65574 0 1.1866-0.42272 1.1866-0.94872 0-0.52119-0.53084-0.94631-1.1866-0.94631-0.65334 0-1.1842 0.42271-1.1842 0.94631 0 0.526 0.53084 0.94872 1.1842 0.94872zm20.117 3.6892c0.65575 0 1.1866-0.42511 1.1866-0.95111 0-0.5212-0.53084-0.94632-1.1866-0.94632-0.65334 0-1.1842 0.42512-1.1842 0.94632 0 0.526 0.53084 0.95111 1.1842 0.95111zm-0.33387 2.6804c0.65574 0 1.1866-0.42512 1.1866-0.94632 0-0.52119-0.53084-0.95112-1.1866-0.95112-0.65575 0-1.1866 0.42753-1.1866 0.95112 0 0.5212 0.53085 0.94632 1.1866 0.94632zm-19.783-3.0167c0.65574 0 1.1866-0.42512 1.1866-0.94871 0-0.5212-0.53084-0.94632-1.1866-0.94632-0.65334 0-1.1842 0.42272-1.1842 0.94632 0 0.52359 0.53084 0.94871 1.1842 0.94871zm-39.897 3.0167c0.65334 0 1.1842-0.42512 1.1842-0.94632 0-0.52119-0.53085-0.95112-1.1842-0.95112-0.65575 0-1.1866 0.42753-1.1866 0.95112 0 0.5212 0.53084 0.94632 1.1866 0.94632z" fill="none" stroke="#000" stroke-width=".502"/>
<path d="m253.55 231.01s0.16814 7.2078 4.8616 6.2015c4.6935-1.0064 4.1915-6.874 4.5278-7.2078 0.33388-0.33626 0.8359-0.33626 0.8359-0.33626s0.67015 5.6995 5.0274 5.0294c4.3596-0.67011 4.1915-7.7098 3.6895-8.8843l1.0064-0.33625s1.6742 8.2142 6.704 7.0421c5.0298-1.1745 4.5278-6.3696 4.5278-6.3696h0.38672s1.1218 5.5314 5.1451 5.1951c4.021-0.33385 4.8616-1.6765 4.3572-7.2078l2.683-0.50198s-1.0064 8.0461 3.8528 7.878c4.864-0.16813 5.0298-4.023 5.3661-4.6931h0.73261s0.27383 5.6995 4.2972 5.6995c4.0233 0 4.8592-4.8613 4.8592-6.7059l3.9297 0.17534s-4.0954 7.5369 1.9408 8.5432c6.0338 1.004 6.202-4.8637 6.202-4.8637h1.1722s-0.16813 7.5441 3.1851 7.7122c3.3508 0.16812 5.3637-1.0064 5.6975-6.5377l1.8448 0.67011s-1.5997 8.942-7.8786 7.3736c-3.3532-0.83583-4.3596-4.6907-4.1915-5.6971 0 0-2.3444 4.1888-6.8721 2.8486-4.5254-1.3402-4.0233-4.525-4.0233-5.5314 0 0-2.7215 4.9982-6.5382 3.8525-3.3508-1.004-4.6935-2.1784-4.6935-4.525 0 0-1.6766 3.8549-5.0298 3.6892-3.3532-0.16813-5.0274-2.1808-5.1955-4.023 0 0-0.66536 3.6027-5.1979 3.8549-3.0169 0.16813-4.6935-1.3378-5.3637-3.3529 0 0-0.86712 3.6508-5.1955 4.1912-2.6806 0.33625-5.3637-1.1721-6.0362-3.6868 0 0-0.66775 4.8589-5.0274 5.5314-4.3596 0.6701-5.3661-2.3466-5.3661-2.3466s-0.8359 3.8573-4.3572 4.6932c-3.5213 0.83823-5.8681-0.6677-6.7064-4.1888-0.83829-3.5211-0.50201-5.0294-0.50201-5.0294l1.3403 1.8422" fill="#fc0"/>
<path d="m253.55 231.01s0.16814 7.2078 4.8616 6.2015c4.6935-1.0064 4.1915-6.874 4.5278-7.2078 0.33388-0.33626 0.8359-0.33626 0.8359-0.33626s0.67015 5.6995 5.0274 5.0294c4.3596-0.67011 4.1915-7.7098 3.6895-8.8843l1.0064-0.33625s1.6742 8.2142 6.704 7.0421c5.0298-1.1745 4.5278-6.3696 4.5278-6.3696h0.38672s1.1218 5.5314 5.1451 5.1951c4.021-0.33385 4.8616-1.6765 4.3572-7.2078l2.683-0.50198s-1.0064 8.0461 3.8528 7.878c4.864-0.16813 5.0298-4.023 5.3661-4.6931h0.73261s0.27383 5.6995 4.2972 5.6995c4.0233 0 4.8592-4.8613 4.8592-6.7059l3.9297 0.17534s-4.0954 7.5369 1.9408 8.5432c6.0338 1.004 6.202-4.8637 6.202-4.8637h1.1722s-0.16813 7.5441 3.1851 7.7122c3.3508 0.16812 5.3637-1.0064 5.6975-6.5377l1.8448 0.67011s-1.5997 8.942-7.8786 7.3736c-3.3532-0.83583-4.3596-4.6907-4.1915-5.6971 0 0-2.3444 4.1888-6.8721 2.8486-4.5254-1.3402-4.0233-4.525-4.0233-5.5314 0 0-2.7215 4.9982-6.5382 3.8525-3.3508-1.004-4.6935-2.1784-4.6935-4.525 0 0-1.6766 3.8549-5.0298 3.6892-3.3532-0.16813-5.0274-2.1808-5.1955-4.023 0 0-0.66536 3.6027-5.1979 3.8549-3.0169 0.16813-4.6935-1.3378-5.3637-3.3529 0 0-0.86712 3.6508-5.1955 4.1912-2.6806 0.33625-5.3637-1.1721-6.0362-3.6868 0 0-0.66775 4.8589-5.0274 5.5314-4.3596 0.6701-5.3661-2.3466-5.3661-2.3466s-0.8359 3.8573-4.3572 4.6932c-3.5213 0.83823-5.8681-0.6677-6.7064-4.1888-0.83829-3.5211-0.50201-5.0294-0.50201-5.0294l1.3403 1.8422 0.0024 0.0024z" fill="#bcac0b" stroke="#000" stroke-width=".65332"/>
<path d="m263.28 231.32c0.91756 0 1.6598-0.74216 1.6598-1.6597 0-0.91509-0.74222-1.6596-1.6598-1.6596-0.91757 0-1.6598 0.74456-1.6598 1.6596 0 0.9175 0.74221 1.6597 1.6598 1.6597" fill="#fc0"/>
<path d="m263.28 231.32c0.91756 0 1.6598-0.74216 1.6598-1.6597 0-0.91509-0.74222-1.6596-1.6598-1.6596-0.91757 0-1.6598 0.74456-1.6598 1.6596 0 0.9175 0.74221 1.6597 1.6598 1.6597z" fill="#bcac0b" stroke="#000" stroke-width=".65332"/>
<path d="m285.12 227.83c0.91756 0 1.6598-0.74456 1.6598-1.6596 0-0.91749-0.74222-1.6597-1.6598-1.6597-0.91757 0-1.6598 0.74217-1.6598 1.6597 0 0.91509 0.74221 1.6596 1.6598 1.6596" fill="#fc0"/>
<path d="m285.12 227.83c0.91756 0 1.6598-0.74456 1.6598-1.6596 0-0.91749-0.74222-1.6597-1.6598-1.6597-0.91757 0-1.6598 0.74217-1.6598 1.6597 0 0.91509 0.74221 1.6596 1.6598 1.6596z" fill="#bcac0b" stroke="#000" stroke-width=".65332"/>
<path d="m307.26 228.47c0.91757 0 1.6598-0.74456 1.6598-1.6596 0-0.91749-0.74221-1.6597-1.6598-1.6597-0.91756 0-1.6598 0.74217-1.6598 1.6597 0 0.91509 0.74222 1.6596 1.6598 1.6596" fill="#fc0"/>
<path d="m307.26 228.47c0.91757 0 1.6598-0.74456 1.6598-1.6596 0-0.91749-0.74221-1.6597-1.6598-1.6597-0.91756 0-1.6598 0.74217-1.6598 1.6597 0 0.91509 0.74222 1.6596 1.6598 1.6596z" fill="#bcac0b" stroke="#000" stroke-width=".65332"/>
<path d="m329.23 232.01c0.91756 0 1.6598-0.74456 1.6598-1.6596 0-0.91749-0.74221-1.6597-1.6598-1.6597-0.91517 0-1.6574 0.74217-1.6574 1.6597 0 0.91509 0.74222 1.6596 1.6574 1.6596" fill="#fc0"/>
<path d="m329.23 232.01c0.91756 0 1.6598-0.74456 1.6598-1.6596 0-0.91749-0.74221-1.6597-1.6598-1.6597-0.91517 0-1.6574 0.74217-1.6574 1.6597 0 0.91509 0.74222 1.6596 1.6574 1.6596z" fill="#bcac0b" stroke="#000" stroke-width=".65332"/>
<path d="m295.21 225.98h-1.5084c-0.37712 1.5083-3.5838 2.4523-3.5838 2.4523-0.37712-1.1937 0.43957-2.8918 0.43957-2.8918-3.7087-0.94391-3.7087-2.2649-3.7087-2.2649 0.56447-1.2562 3.9609-1.4435 3.9609-1.4435-0.88154-1.1312-0.69178-2.9542-0.69178-2.9542 2.2627 0.1273 4.1482 2.3874 4.1482 2.3874s-2.2627-1.1289-2.0105-5.1543c0 0 1.2562-0.06004 2.0105 0.75417 0 0 0-4.3353 1.8231-4.8372h0.18735c1.8231 0.50198 1.8231 4.8372 1.8231 4.8372 0.75423-0.81421 2.0105-0.75417 2.0105-0.75417 0.25221 4.023-2.0105 5.1543-2.0105 5.1543s1.8856-2.2601 4.1482-2.3874c0 0 0.18976 1.8206-0.69178 2.9542 0 0 3.3964 0.18734 3.9609 1.4435 0 0 0 1.321-3.7087 2.2649 0 0 0.81669 1.6981 0.43957 2.8918 0 0-3.2067-0.94392-3.5838-2.4523h-3.4565" fill="#fc0"/>
<path d="m295.21 225.98h-1.5084c-0.37712 1.5083-3.5838 2.4523-3.5838 2.4523-0.37712-1.1937 0.43957-2.8918 0.43957-2.8918-3.7087-0.94391-3.7087-2.2649-3.7087-2.2649 0.56447-1.2562 3.9609-1.4435 3.9609-1.4435-0.88154-1.1312-0.69178-2.9542-0.69178-2.9542 2.2627 0.1273 4.1482 2.3874 4.1482 2.3874s-2.2627-1.1289-2.0105-5.1543c0 0 1.2562-0.06004 2.0105 0.75417 0 0 0-4.3353 1.8231-4.8372h0.18735c1.8231 0.50198 1.8231 4.8372 1.8231 4.8372 0.75423-0.81421 2.0105-0.75417 2.0105-0.75417 0.25221 4.023-2.0105 5.1543-2.0105 5.1543s1.8856-2.2601 4.1482-2.3874c0 0 0.18976 1.8206-0.69178 2.9542 0 0 3.3964 0.18734 3.9609 1.4435 0 0 0 1.321-3.7087 2.2649 0 0 0.81669 1.6981 0.43957 2.8918 0 0-3.2067-0.94392-3.5838-2.4523h-3.4565 0.0024z" fill="#bcac0b" stroke="#000" stroke-width=".65332"/>
<path d="m296.07 226.83c1.679 0 3.0385-1.3594 3.0385-3.0383 0-1.6765-1.3595-3.0359-3.0385-3.0359-1.6766 0-3.0361 1.3594-3.0361 3.0359 0 1.6789 1.3595 3.0383 3.0361 3.0383" fill="#fff"/>
<path d="m296.07 226.83c1.679 0 3.0385-1.3594 3.0385-3.0383 0-1.6765-1.3595-3.0359-3.0385-3.0359-1.6766 0-3.0361 1.3594-3.0361 3.0359 0 1.6789 1.3595 3.0383 3.0361 3.0383z" fill="none" stroke="#000" stroke-width=".40352"/>
<path d="m296.07 225.46c0.91756 0 1.6622-0.74216 1.6622-1.6597 0-0.91509-0.74463-1.6572-1.6622-1.6572-0.91516 0-1.6574 0.74216-1.6574 1.6572 0 0.9175 0.74222 1.6597 1.6574 1.6597" fill="#fff"/>
<path d="m296.07 225.46c0.91756 0 1.6622-0.74216 1.6622-1.6597 0-0.91509-0.74463-1.6572-1.6622-1.6572-0.91516 0-1.6574 0.74216-1.6574 1.6572 0 0.9175 0.74222 1.6597 1.6574 1.6597z" fill="none" stroke="#000" stroke-width=".2522"/>
<path d="m319.11 227.94 1.4748 0.31944c0.04564 1.554 2.9857 3.1512 2.9857 3.1512 0.61731-1.088 0.17775-2.9182 0.17775-2.9182 3.824-0.13931 4.1002-1.4291 4.1002-1.4291-0.28583-1.3498-3.5646-2.2505-3.5646-2.2505 1.0977-0.9199 1.2995-2.7429 1.2995-2.7429-2.2387-0.35306-4.5614 1.4603-4.5614 1.4603s2.4524-0.62686 3.0553-4.6139c0 0-1.2178-0.32425-2.1234 0.31222 0 0 0.91276-4.2392-0.76143-5.1134l-0.18495-0.04084c-1.888 0.10809-2.8031 4.3473-2.8031 4.3473-0.56448-0.95833-1.8063-1.1625-1.8063-1.1625-1.0953 3.8789 0.87913 5.4641 0.87913 5.4641s-1.3667-2.6108-3.5526-3.2112c0 0-0.56928 1.7413 0.05284 3.0335 0 0-3.358-0.5308-4.1771 0.57884 0 0-0.27624 1.2898 3.149 2.9951 0 0-1.1578 1.4867-1.0401 2.7333 0 0 3.334-0.24499 4.021-1.6404l1.4724 0.31704 1.9072 0.41071" fill="#fc0"/>
<path d="m319.11 227.94 1.4748 0.31944c0.04564 1.554 2.9857 3.1512 2.9857 3.1512 0.61731-1.088 0.17775-2.9182 0.17775-2.9182 3.824-0.13931 4.1002-1.4291 4.1002-1.4291-0.28583-1.3498-3.5646-2.2505-3.5646-2.2505 1.0977-0.9199 1.2995-2.7429 1.2995-2.7429-2.2387-0.35306-4.5614 1.4603-4.5614 1.4603s2.4524-0.62686 3.0553-4.6139c0 0-1.2178-0.32425-2.1234 0.31222 0 0 0.91276-4.2392-0.76143-5.1134l-0.18495-0.04084c-1.888 0.10809-2.8031 4.3473-2.8031 4.3473-0.56448-0.95833-1.8063-1.1625-1.8063-1.1625-1.0953 3.8789 0.87913 5.4641 0.87913 5.4641s-1.3667-2.6108-3.5526-3.2112c0 0-0.56928 1.7413 0.05284 3.0335 0 0-3.358-0.5308-4.1771 0.57884 0 0-0.27624 1.2898 3.149 2.9951 0 0-1.1578 1.4867-1.0401 2.7333 0 0 3.334-0.24499 4.021-1.6404l1.4724 0.31704 1.9072 0.41071" fill="#bcac0b" stroke="#000" stroke-width=".65332"/>
<path d="m318.08 228.6c-1.6382-0.35306-2.6806-1.9695-2.3275-3.6099 0.35309-1.638 1.9696-2.6828 3.6102-2.3274 1.6406 0.35307 2.683 1.9695 2.3299 3.6099-0.35549 1.638-1.972 2.6828-3.6126 2.3274" fill="#fff"/>
<path d="m318.08 228.6c-1.6382-0.35306-2.6806-1.9695-2.3275-3.6099 0.35309-1.638 1.9696-2.6828 3.6102-2.3274 1.6406 0.35307 2.683 1.9695 2.3299 3.6099-0.35549 1.638-1.972 2.6828-3.6126 2.3274z" fill="none" stroke="#000" stroke-width=".40352"/>
<path d="m318.38 227.25c-0.89835-0.19214-1.4676-1.076-1.2731-1.9719 0.19216-0.89347 1.0761-1.4651 1.972-1.2706 0.89595 0.19215 1.4652 1.0784 1.2731 1.9719-0.19456 0.89588-1.0785 1.4651-1.972 1.2706" fill="#fff"/>
<path d="m318.38 227.25c-0.89835-0.19214-1.4676-1.076-1.2731-1.9719 0.19216-0.89347 1.0761-1.4651 1.972-1.2706 0.89595 0.19215 1.4652 1.0784 1.2731 1.9719-0.19456 0.89588-1.0785 1.4651-1.972 1.2706z" fill="none" stroke="#000" stroke-width=".2522"/>
<path d="m272.27 227.65-1.4964 0.19695c-0.17534 1.5468-3.2307 2.9038-3.2307 2.9038-0.53084-1.1337 0.05525-2.923 0.05525-2.923-3.8-0.44674-3.9753-1.7557-3.9753-1.7557 0.39633-1.3186 3.7351-1.9551 3.7351-1.9551-1.0208-1.004-1.0737-2.8365-1.0737-2.8365 2.2603-0.17054 4.4293 1.8206 4.4293 1.8206s-2.3924-0.82382-2.6734-4.8445c0 0 1.2394-0.22817 2.0945 0.48277 0 0-0.57167-4.2992 1.165-5.039l0.18736-0.02162c1.8736 0.25459 2.4452 4.5562 2.4452 4.5562 0.64133-0.90788 1.8952-1.0136 1.8952-1.0136 0.78065 3.9558-1.3139 5.3729-1.3139 5.3729s1.5709-2.4883 3.7976-2.911c0 0 0.42755 1.7798-0.29545 3.0167 0 0 3.3892-0.2618 4.117 0.91029 0 0 0.17295 1.309-3.3796 2.7333 0 0 1.0352 1.5732 0.81907 2.8077 0 0-3.3027-0.51158-3.8768-1.9575l-3.4252 0.45635" fill="#fc0"/>
<path d="m272.27 227.65-1.4964 0.19695c-0.17534 1.5468-3.2307 2.9038-3.2307 2.9038-0.53084-1.1337 0.05525-2.923 0.05525-2.923-3.8-0.44674-3.9753-1.7557-3.9753-1.7557 0.39633-1.3186 3.7351-1.9551 3.7351-1.9551-1.0208-1.004-1.0737-2.8365-1.0737-2.8365 2.2603-0.17054 4.4293 1.8206 4.4293 1.8206s-2.3924-0.82382-2.6734-4.8445c0 0 1.2394-0.22817 2.0945 0.48277 0 0-0.57167-4.2992 1.165-5.039l0.18736-0.02162c1.8736 0.25459 2.4452 4.5562 2.4452 4.5562 0.64133-0.90788 1.8952-1.0136 1.8952-1.0136 0.78065 3.9558-1.3139 5.3729-1.3139 5.3729s1.5709-2.4883 3.7976-2.911c0 0 0.42755 1.7798-0.29545 3.0167 0 0 3.3892-0.2618 4.117 0.91029 0 0 0.17295 1.309-3.3796 2.7333 0 0 1.0352 1.5732 0.81907 2.8077 0 0-3.3027-0.51158-3.8768-1.9575l-3.4252 0.45635" fill="#bcac0b" stroke="#000" stroke-width=".65332"/>
<path d="m273.23 228.39c1.6646-0.22097 2.8344-1.7485 2.611-3.413-0.22098-1.6621-1.7486-2.8317-3.4108-2.6084-1.6646 0.22096-2.832 1.7485-2.611 3.4106 0.22098 1.662 1.7486 2.8317 3.4108 2.6108" fill="#fff"/>
<path d="m273.23 228.39c1.6646-0.22097 2.8344-1.7485 2.611-3.413-0.22098-1.6621-1.7486-2.8317-3.4108-2.6084-1.6646 0.22096-2.832 1.7485-2.611 3.4106 0.22098 1.662 1.7486 2.8317 3.4108 2.6108z" fill="none" stroke="#000" stroke-width=".40352"/>
<path d="m273.05 227.02c0.90796-0.12009 1.5469-0.95352 1.4244-1.8638-0.12011-0.90789-0.9536-1.5444-1.8616-1.4267-0.91035 0.12249-1.5493 0.95593-1.4268 1.8638 0.1201 0.91029 0.95599 1.5468 1.864 1.4267" fill="#fff"/>
<path d="m273.05 227.02c0.90796-0.12009 1.5469-0.95352 1.4244-1.8638-0.12011-0.90789-0.9536-1.5444-1.8616-1.4267-0.91035 0.12249-1.5493 0.95593-1.4268 1.8638 0.1201 0.91029 0.95599 1.5468 1.864 1.4267z" fill="none" stroke="#000" stroke-width=".2522"/>
<path d="m340.16 234.1s-0.76142-1.9983-2.4428-1.2802c-1.6814 0.71815-1.5084 0.97994-3.0121 0.88868 0 0-0.58609-1.7966 0.15372-2.5724 0 0-2.402-0.89828-2.9064-3.0071 0 0 1.2875-1.4939 4.338-0.9367 0 0-0.09609-1.5156 0.32186-2.1833 0 0 3.2763 1.0136 3.2931 2.8414 0 0-0.98242-3.5859 0.74703-6.1895 0 0 1.5349 0.6581 1.4364 2.2913 0 0 0.70619-3.3601 5.2484-2.4571 0 0-2.462 2.1832-2.5845 3.1824-0.1225 0.99916-2.1762 2.702-2.2122 3.2689-0.03123 0.56443-0.28104 1.5564-0.88394 2.1496-0.6029 0.59324-0.66295 1.5996-0.61491 1.9142 0.04083 0.31943-0.10329 1.6957-0.88154 2.0896" fill="#fc0"/>
<path d="m340.16 234.1s-0.76142-1.9983-2.4428-1.2802c-1.6814 0.71815-1.5084 0.97994-3.0121 0.88868 0 0-0.58609-1.7966 0.15372-2.5724 0 0-2.402-0.89828-2.9064-3.0071 0 0 1.2875-1.4939 4.338-0.9367 0 0-0.09609-1.5156 0.32186-2.1833 0 0 3.2763 1.0136 3.2931 2.8414 0 0-0.98242-3.5859 0.74703-6.1895 0 0 1.5349 0.6581 1.4364 2.2913 0 0 0.70619-3.3601 5.2484-2.4571 0 0-2.462 2.1832-2.5845 3.1824-0.1225 0.99916-2.1762 2.702-2.2122 3.2689-0.03123 0.56443-0.28104 1.5564-0.88394 2.1496-0.6029 0.59324-0.66295 1.5996-0.61491 1.9142 0.04083 0.31943-0.10329 1.6957-0.88154 2.0896z" fill="#bcac0b" stroke="#000" stroke-width=".65332"/>
<path d="m337.7 230.12c0.32186-1.6452 1.9168-2.7212 3.5622-2.3994 0.46839 0.08886 0.88634 0.28581 1.2418 0.55482-0.09127 0.56923-0.34588 1.3354-0.8455 1.8278-0.6029 0.59324-0.66295 1.5996-0.61731 1.9142 0.03362 0.24978-0.05525 1.1481-0.46839 1.7173-0.15613-0.0072-0.31466-0.02161-0.4708-0.05284-1.643-0.31944-2.719-1.9142-2.402-3.5619" fill="#fff"/>
<path d="m337.7 230.12c0.32186-1.6452 1.9168-2.7212 3.5622-2.3994 0.46839 0.08886 0.88634 0.28581 1.2418 0.55482-0.09127 0.56923-0.34588 1.3354-0.8455 1.8278-0.6029 0.59324-0.66295 1.5996-0.61731 1.9142 0.03362 0.24978-0.05525 1.1481-0.46839 1.7173-0.15613-0.0072-0.31466-0.02161-0.4708-0.05284-1.643-0.31944-2.719-1.9142-2.402-3.5619z" fill="none" stroke="#000" stroke-width=".40352"/>
<path d="m339.06 230.38c0.17295-0.89827 1.0449-1.4867 1.9456-1.3114 0.40834 0.07926 0.74703 0.30743 0.98722 0.61487-0.09607 0.1489-0.20417 0.29301-0.32907 0.41551-0.6029 0.59324-0.66295 1.5996-0.61731 1.9142 0.00721 0.06485 0.00721 0.17532-0.0048 0.30502-0.21379 0.04564-0.44197 0.05284-0.67017 0.00721-0.90074-0.17533-1.4868-1.0448-1.3115-1.9455" fill="#fff"/>
<path d="m339.06 230.38c0.17295-0.89827 1.0449-1.4867 1.9456-1.3114 0.40834 0.07926 0.74703 0.30743 0.98722 0.61487-0.09607 0.1489-0.20417 0.29301-0.32907 0.41551-0.6029 0.59324-0.66295 1.5996-0.61731 1.9142 0.00721 0.06485 0.00721 0.17532-0.0048 0.30502-0.21379 0.04564-0.44197 0.05284-0.67017 0.00721-0.90074-0.17533-1.4868-1.0448-1.3115-1.9455z" fill="none" stroke="#000" stroke-width=".2522"/>
<path d="m252.15 233.27s0.87912-1.9479 2.5125-1.1313c1.6358 0.81662 1.446 1.0688 2.9569 1.0688 0 0 0.68937-1.7605 0-2.5772 0 0 2.45-0.75416 3.0794-2.8293 0 0-1.1938-1.5708-4.2756-1.1937 0 0 0.18975-1.5108-0.18736-2.2001 0 0-3.3316 0.81661-3.4589 2.6396 0 0 1.1962-3.5211-0.37711-6.2231 0 0-1.5709 0.56443-1.5709 2.2001 0 0-0.50201-3.3962-5.0922-2.7669 0 0 2.3251 2.3274 2.39 3.3313 0.06246 1.0064 2.0105 2.8293 2.0105 3.3962 0 0.56443 0.18976 1.5708 0.75422 2.2001 0.56688 0.62928 0.56688 1.6332 0.50202 1.9479-0.06245 0.31223 0 1.6957 0.75664 2.1376" fill="#fc0"/>
<path d="m252.15 233.27s0.87912-1.9479 2.5125-1.1313c1.6358 0.81662 1.446 1.0688 2.9569 1.0688 0 0 0.68937-1.7605 0-2.5772 0 0 2.45-0.75416 3.0794-2.8293 0 0-1.1938-1.5708-4.2756-1.1937 0 0 0.18975-1.5108-0.18736-2.2001 0 0-3.3316 0.81661-3.4589 2.6396 0 0 1.1962-3.5211-0.37711-6.2231 0 0-1.5709 0.56443-1.5709 2.2001 0 0-0.50201-3.3962-5.0922-2.7669 0 0 2.3251 2.3274 2.39 3.3313 0.06246 1.0064 2.0105 2.8293 2.0105 3.3962 0 0.56443 0.18976 1.5708 0.75422 2.2001 0.56688 0.62928 0.56688 1.6332 0.50202 1.9479-0.06245 0.31223 0 1.6957 0.75664 2.1376z" fill="#bcac0b" stroke="#000" stroke-width=".65332"/>
<path d="m254.84 229.44c-0.22098-1.6645-1.7462-2.8317-3.4108-2.6108-0.4708 0.06244-0.90076 0.23298-1.2731 0.48035 0.05765 0.57404 0.26422 1.3522 0.73501 1.8758 0.56688 0.62928 0.56688 1.6332 0.50202 1.9479-0.04804 0.24498-0.01441 1.1481 0.36751 1.7389 0.15373 0.0024 0.31226 0 0.47079-0.02162 1.6622-0.22096 2.832-1.7485 2.6086-3.4106" fill="#fff"/>
<path d="m254.84 229.44c-0.22098-1.6645-1.7462-2.8317-3.4108-2.6108-0.4708 0.06244-0.90076 0.23298-1.2731 0.48035 0.05765 0.57404 0.26422 1.3522 0.73501 1.8758 0.56688 0.62928 0.56688 1.6332 0.50202 1.9479-0.04804 0.24498-0.01441 1.1481 0.36751 1.7389 0.15373 0.0024 0.31226 0 0.47079-0.02162 1.6622-0.22096 2.832-1.7485 2.6086-3.4106z" fill="none" stroke="#000" stroke-width=".40352"/>
<path d="m253.48 229.62c-0.12011-0.90788-0.956-1.5468-1.864-1.4267-0.41554 0.05764-0.76623 0.2642-1.0232 0.55481 0.08887 0.15612 0.18495 0.30503 0.30264 0.43713 0.56688 0.62928 0.56688 1.6332 0.50202 1.9479-0.01201 0.06244-0.01681 0.17053-0.01441 0.30263 0.21138 0.06004 0.43957 0.07926 0.67016 0.05043 0.90795-0.12249 1.5469-0.95592 1.4268-1.8662" fill="#fff"/>
<path d="m253.48 229.62c-0.12011-0.90788-0.956-1.5468-1.864-1.4267-0.41554 0.05764-0.76623 0.2642-1.0232 0.55481 0.08887 0.15612 0.18495 0.30503 0.30264 0.43713 0.56688 0.62928 0.56688 1.6332 0.50202 1.9479-0.01201 0.06244-0.01681 0.17053-0.01441 0.30263 0.21138 0.06004 0.43957 0.07926 0.67016 0.05043 0.90795-0.12249 1.5469-0.95592 1.4268-1.8662z" fill="none" stroke="#000" stroke-width=".2522"/>
<path d="m257.24 251.62s33.748-13.22 76.384 0.28342" fill="none" stroke="#000" stroke-width="1.5084"/>
<path d="m338.38 241.1c-47.11-14.92-84.661-0.83823-84.661-0.83823" fill="none" stroke="#000" stroke-width=".502"/>
<path d="m295.97 237.8-3.7735 1.8854 3.3964 2.1376 4.0234-2.0127-3.6462-2.0103" fill="#f00"/>
<path d="m295.97 237.8-3.7735 1.8854 3.3964 2.1376 4.0234-2.0127-3.6462-2.0103" fill="none" stroke="#000" stroke-width=".502"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 49 KiB

View File

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -3,7 +3,7 @@
Locales are difficult, here is some guidance. Locales are difficult, here is some guidance.
## Process on adding new languages ## Process on adding new languages
1. Use weblate to add translations, see contributing guidelines. 1. Use Weblate to add translations, see contributing guidelines.
2. Add your language to `@/assets/languages.ts`. Must be in ISO format (ISO-639 for language and ISO-3166 for country/region). For joke languages, use any format. 2. Add your language to `@/assets/languages.ts`. Must be in ISO format (ISO-639 for language and ISO-3166 for country/region). For joke languages, use any format.
3. If your language doesn't have a region specified (Such as in `pt-BR`, `BR` being the region). Add a default region in `@/utils/language.ts` at `defaultLanguageCodes` 3. If the language code doesn't have a region specified (Such as in `pt-BR`, `BR` being the region), add a default region in `@/utils/language.ts` at `defaultLanguageCodes`
4. If the flag in the language dropdown doesn't match the correct one. Add a default country in `@/utils/language.ts` at `countryPriority`. 4. If the language code doesn't contain a region (Such as in `zh-Hant`), add a default country in `@/utils/language.ts` at `countryPriority`.

437
src/assets/locales/ca.json Normal file
View File

@ -0,0 +1,437 @@
{
"about": {
"description": "movie-web és una aplicació web que cerca fluxos a internet. L'equip té com a objectiu un enfocament majoritàriament minimalista del consum de contingut.",
"faqTitle": "Preguntes freqüents",
"q1": {
"body": "movie-web no allotja cap contingut. Quan feu clic a alguna cosa per a mirar-la, es busca a Internet el contingut seleccionat (a la pantalla de càrrega i a la pestanya «Fonts de vídeo» podeu veure quina font utilitzeu). movie-web mai hi puja contingut, tot és a través d'aquest mecanisme de cerca.",
"title": "D'on prové el contingut?"
},
"q2": {
"body": "No és possible sol·licitar un programa o una pel·lícula, movie-web no gestiona cap contingut. Tot el contingut es visualitza a través de fonts a internet.",
"title": "On puc sol·licitar un programa o una pel·lícula?"
},
"q3": {
"body": "Els resultats de cerca funcionen amb The Movie Database (TMDB) i es mostren independentment de si les nostres fonts realment tenen el contingut.",
"title": "Els resultats de la cerca mostren el programa o la pel·lícula, per què no puc reproduir-lo?"
},
"title": "Sobre movie-web"
},
"actions": {
"copied": "S'ha copiat",
"copy": "Cipia"
},
"auth": {
"createAccount": "Encara no teniu un compte? <0>Creeu un compte.</0>",
"deviceNameLabel": "Nom del dispositiu",
"deviceNamePlaceholder": "Telèfon personal",
"generate": {
"description": "La frase de contrasenya actua com a nom d'usuari i contrasenya. Assegureu-vos de mantenir-la segura, ja que haureu d'introduir-la per a iniciar la sessió al vostre compte",
"next": "He desat la frase de contrasenya",
"passphraseFrameLabel": "Frase de contrasenya",
"title": "La vostra frase de contrasenya"
},
"hasAccount": "Ja teniu un compte? <0>Inicieu sessió aquí.</0>",
"login": {
"description": "Introduïu la vostra frase de contrasenya per a iniciar sessió al vostre compte",
"deviceLengthError": "Introduïu un nom per al dispositiu",
"passphraseLabel": "Frase de contrasenya de 12 paraules",
"passphrasePlaceholder": "Frase de contrasenya",
"submit": "Inicia sessió",
"title": "Inicieu sessió al vostre compte",
"validationError": "Frase de contrasenya incorrecta o incompleta"
},
"register": {
"information": {
"color1": "Color de perfil 1",
"color2": "Color de perfil 2",
"header": "Introduïu un nom per al dispositiu i trieu els colors i la icona d'usuari que vulgueu",
"icon": "Icona d'usuari",
"next": "Següent",
"title": "Informació del compte"
}
},
"trust": {
"failed": {
"text": "L'heu configurada correctament?",
"title": "No s'ha pogut accedir al servidor"
},
"host": "Us esteu connectant a <0>{{hostname}}</0>. Confirmeu que hi confieu abans de crear un compte",
"no": "Torna",
"title": "Confieu en aquest servidor?",
"yes": "Confie en aquest servidor"
},
"verify": {
"description": "Introduïu la vostra frase de contrasenya anterior per a confirmar que l'heu desat, i crear el compte",
"invalidData": "La data no és vàlida",
"noMatch": "La frase de contrasenya no coincideix",
"passphraseLabel": "Frase de contrasenya de 12 paraules",
"recaptchaFailed": "Ha fallat la validació de ReCaptcha",
"register": "Crea el compte",
"title": "Confirmeu la frase de contrasenya"
}
},
"errors": {
"badge": "S'ha trencat",
"details": "Detalls de l'error",
"reloadPage": "Recarrega la pàgina",
"showError": "Mostra els detalls de l'error",
"title": "Hem trobat un error!"
},
"footer": {
"legal": {
"disclaimer": "Avís d'exempció de responsabilitat",
"disclaimerText": "movie-web no allotja cap fitxer, només enllaça a serveis de tercers. Els problemes legals s'han d'abordar amb qui allotja i els proveïdors de fitxers. movie-web no es fa responsable del contingut mostrat pels proveïdors de vídeo."
},
"links": {
"discord": "Discord",
"dmca": "DMCA",
"github": "GitHub"
},
"tagline": "Mireu els vostres programes i pel·lícules preferits amb aquesta aplicació de codi obert de reproducció en temps real."
},
"global": {
"name": "movie-web",
"pages": {
"about": "Quant a",
"dmca": "DMCA",
"login": "Inicia sessió",
"pagetitle": "{{title}} - movie-web",
"register": "Registra",
"settings": "Configuració"
}
},
"home": {
"bookmarks": {
"sectionTitle": "Marcadors"
},
"continueWatching": {
"sectionTitle": "Continueu mirant"
},
"mediaList": {
"stopEditing": "Atura l'edició"
},
"search": {
"allResults": "Això és tot el que tenim!",
"failed": "No s'ha pogut trobar cap contingut, torneu-ho a provar!",
"loading": "S'està carregant…",
"noResults": "No hem pogut trobar res!",
"placeholder": "Què voleu mirar?",
"sectionTitle": "Resultats de la cerca"
},
"titles": {
"day": {
"default": "Què us agradaria mirar aquesta vesprada/tarda?",
"extra": [
"Voleu aventura? Jurassic Park podria ser l'elecció perfecta."
]
},
"morning": {
"default": "Què us agradaria mirar aquest matí?",
"extra": [
"He sentit que «Abans de l'alba» és bona"
]
},
"night": {
"default": "Què us agradaria mirar aquesta nit?",
"extra": [
"Esteu cansat? He sentit que «L'exorcista» és bona."
]
}
}
},
"media": {
"episodeDisplay": "T{{season}} E{{episode}}",
"types": {
"movie": "Pel·lícula",
"show": "Sèrie/Programa"
}
},
"navigation": {
"banner": {
"offline": "Comproveu la connexió a internet"
},
"menu": {
"about": "Quant a nosaltres",
"donation": "Feu una donació",
"logout": "Tanca la sessió",
"register": "Sincronitza al núvol",
"settings": "Configuració",
"support": "Ajuda"
}
},
"notFound": {
"badge": "No s'ha trobat",
"goHome": "Torna a l'inici",
"message": "Hem mirat per tot arreu: davall de les papereres, a l'armari, darrere del servidor intermediari, però al remat no hem pogut trobar la pàgina que busqueu.",
"title": "No s'ha pogut trobar la pàgina"
},
"overlays": {
"close": "Tanca"
},
"player": {
"back": {
"default": "Torna a l'inici",
"short": "Torna"
},
"casting": {
"enabled": "S'està emetent al dispositiu…"
},
"menus": {
"downloads": {
"disclaimer": "Les baixades s'obtenen directament del proveïdor. movie-web no té control sobre com es proporcionen les baixades.",
"downloadPlaylist": "Baixa la llista de reproducció",
"downloadSubtitle": "Baixa els subtítols actuals",
"downloadVideo": "Baixa el vídeo",
"hlsDisclaimer": "Les baixades s'obtenen directament del proveïdor. movie-web no té control sobre com es proporcionen les baixades. Tingueu en compte que esteu baixant una llista de reproducció HLS, destinada als usuaris familiaritzats amb la transmissió multimèdia avançada.",
"onAndroid": {
"1": "Per a baixar-lo a Android, feu clic al botó de baixada i, a la pàgina nova, <bold>manteniu premut</bold> el vídeo i, a continuació, seleccioneu <bold>Desa</bold>.",
"shortTitle": "Baixa / Android",
"title": "Baixada a Android"
},
"onIos": {
"1": "Per a baixar a iOS, feu clic al botó de baixada i, a la pàgina nova, feu clic a <bold><ios_share /></bold> /> i, a continuació, <bold>Desa als Arxius <ios_files /></bold>.",
"shortTitle": "Baixa / iOS",
"title": "Baixada a iOS"
},
"onPc": {
"1": "En un PC, feu clic al botó de baixada i, a la pàgina nova, feu clic amb el botó dret al vídeo i seleccioneu <bold>Anomena i desa el vídeo</bold>",
"shortTitle": "Baixa / PC",
"title": "Baixada a un PC"
},
"title": "Baixa"
},
"episodes": {
"button": "Episodi",
"emptyState": "No hi ha episodis en aquesta temporada, torneu-ho a comprovar més tard!",
"episodeBadge": "E{{episode}}",
"loadingError": "Error en carregar la temporada",
"loadingList": "S'està carregant…",
"loadingTitle": "S'està carregant…",
"unairedEpisodes": "Un o més episodis d'aquesta temporada s'han desactivat perquè encara no s'han emés."
},
"playback": {
"speedLabel": "Velocitat de la reproducció",
"title": "Configuració de la reproducció"
},
"quality": {
"automaticLabel": "Qualitat automàtica",
"hint": "Podeu provar a <0>canviar la font</0> per a obtenir diferents opcions de qualitat.",
"iosNoQuality": "A causa de les limitacions definides per Apple, la selecció de qualitat no està disponible a iOS per a aquesta font. Podeu provar a <0>canviar a una altra font</0> per a obtenir diferents opcions de qualitat.",
"title": "Qualitat"
},
"settings": {
"downloadItem": "Baixa",
"enableSubtitles": "Activa els subtítols",
"experienceSection": "Experiència de visualització",
"playbackItem": "Configuració de la reproducció",
"qualityItem": "Qualitat",
"sourceItem": "Fonts de vídeo",
"subtitleItem": "Configuració dels subtítols",
"videoSection": "Configuració de vídeo"
},
"sources": {
"failed": {
"text": "S'ha produït un error en intentar trobar vídeos, proveu una font diferent.",
"title": "No s'ha pogut obtenir"
},
"noEmbeds": {
"text": "No hem pogut trobar cap incrustat, proveu una font diferent.",
"title": "No s'ha trobat cap incrustació"
},
"noStream": {
"text": "Aquesta font no té fluxos per a aquesta pel·lícula o programa.",
"title": "Cap flux"
},
"title": "Fonts",
"unknownOption": "Desconeguda"
},
"subtitles": {
"customChoice": "Selecciona un fitxer de subtítols",
"customizeLabel": "Personalitza",
"offChoice": "Desactivats",
"settings": {
"backlink": "Subtítols personalitzats",
"delay": "Retard dels subtítols",
"fixCapitals": "Corregeix les majúscules/minúscules"
},
"title": "Subtítols",
"unknownLanguage": "Desconeguda"
}
},
"metadata": {
"api": {
"text": "No s'han pogut carregar les metadades de l'API, comproveu la connexió a Internet.",
"title": "No s'han pogut carregar les metadades de l'API"
},
"failed": {
"badge": "Ha fallat",
"homeButton": "Vés a l'inici",
"text": "No s'han pogut carregar les metadades del contingut des de TMDB. Comproveu si TMDB no funciona o està bloquejat a la vostra connexió a Internet.",
"title": "Ha fallat la càrrega de les metadades"
},
"notFound": {
"badge": "No s'ha trobat",
"homeButton": "Torna a l'inici",
"text": "No hem pogut trobar el contingut sol·licitat. O bé s'ha eliminat o bé heu alterat l'URL.",
"title": "No s'ha trobat el contingut."
}
},
"nextEpisode": {
"cancel": "Cancel·la",
"next": "Episodi següent"
},
"playbackError": {
"badge": "Error en la reproducció",
"errors": {
"errorAborted": "S'ha interromput l'obtenció del contingut per petició de l'usuari.",
"errorDecode": "Tot i haver-se determinat prèviament que era utilitzable, s'ha produït un error en intentar descodificar el recurs multimèdia.",
"errorGenericMedia": "S'ha produït un error desconegut al contingut.",
"errorNetwork": "S'ha produït algun tipus d'error de xarxa que ha impedit que el contingut s'obtinga correctament, tot i haver estat disponibles prèviament.",
"errorNotSupported": "El contingut o el proveïdor del contingut no és compatible."
},
"homeButton": "Torna a l'inici",
"text": "S'ha produït un error en intentar reproduir el contingut. Torneu-ho a provar.",
"title": "No s'ha pogut reproduir el vídeo!"
},
"scraping": {
"items": {
"failure": "S'ha produït un error",
"notFound": "No té el vídeo",
"pending": "S'estan cercant vídeos…"
},
"notFound": {
"badge": "No s'ha trobat",
"detailsButton": "Mostra els detalls",
"homeButton": "Torna a l'inici",
"text": "Hem buscat a través dels nostres proveïdors i no trobem el contingut que busqueu! No allotgem contingut i no tenim control sobre què hi ha disponible. Feu clic a «Mostra els detalls» a continuació per a més informació.",
"title": "No s'ha pogut trobar"
}
},
"time": {
"regular": "{{timeWatched}} / {{duration}}",
"remaining": "{{timeLeft}} restants • Acaba a les {{timeFinished, datetime}}",
"shortRegular": "{{timeWatched}}",
"shortRemaining": "-{{timeLeft}}"
},
"turnstile": {
"description": "Verifiqueu que sou humà completant el Captcha de la dreta. Ho fem per a mantenir segura movie-web!",
"error": "No s'ha pogut verificar la humanitat. Torneu-ho a provar.",
"title": "Necessitem verificar que sou humà.",
"verifyingHumanity": "Verificant la vostra humanitat…"
}
},
"screens": {
"dmca": {
"text": "Us donem la benvinguda a la pàgina de contacte DMCA de movie-web! Respectem els drets de propietat intel·lectual i volem resoldre qualsevol problema de drets d'autor ràpidament. Si creieu que la vostra obra protegida per drets d'autor s'ha utilitzat incorrectament a la nostra plataforma, envieu un avís detallat de la DMCA al correu electrònic següent. Incloeu una descripció del material protegit per drets d'autor, les vostres dades de contacte i una declaració de creença de bona fe. Ens comprometem a resoldre aquests assumptes amb agilitat i agraïm la vostra col·laboració per a mantenir movie-web en un lloc que respecta la creativitat i els drets d'autor.",
"title": "DMCA"
},
"loadingApp": "S'està carregant l'aplicació",
"loadingUser": "S'està carregant el perfil",
"loadingUserError": {
"logout": "Tanca la sessió",
"reset": "Restableix el servidor personalitzat",
"text": "Ha fallat la càrrega del perfil",
"textWithReset": "Error en carregar el vostre perfil des del servidor personalitzat, voleu restablir el servidor per defecte?"
},
"migration": {
"failed": "La migració de les dades ha fallat.",
"inProgress": "Espereu, estem migrant les vostres dades. No hauria de tardar massa."
}
},
"settings": {
"account": {
"accountDetails": {
"deviceNameLabel": "Nom del dispositiu",
"deviceNamePlaceholder": "Telèfon personal",
"editProfile": "Edita",
"logoutButton": "Tanca la sessió"
},
"actions": {
"delete": {
"button": "Elimina el compte",
"confirmButton": "Elimina el compte",
"confirmDescription": "Segur que voleu eliminar el compte? Es perdran totes les dades!",
"confirmTitle": "Segur?",
"text": "Aquesta acció és irreversible. Totes les dades s'eliminaran i no es podrà recuperar res.",
"title": "Elimina el compte"
},
"title": "Accions"
},
"devices": {
"deviceNameLabel": "Nom del dispositiu",
"failed": "La càrrega de sessions ha fallat",
"removeDevice": "Elimina",
"title": "Dispositiu"
},
"profile": {
"finish": "Finalitza l'edició",
"firstColor": "Color de perfil 1",
"secondColor": "Color de perfil dos",
"title": "Edita la foto de perfil",
"userIcon": "Icona d'usuari"
},
"register": {
"cta": "Comença",
"text": "Compartiu el progrés de la visualització entre dispositius i manteniu-los sincronitzats.",
"title": "Sincronització amb el núvol"
},
"title": "Compte"
},
"appearance": {
"activeTheme": "Actiu",
"themes": {
"blue": "Blau",
"default": "Per defecte",
"gray": "Gris",
"red": "Vermell",
"teal": "Verd blavós"
},
"title": "Aparença"
},
"connections": {
"server": {
"description": "Si voleu connectar-vos a un rerefons personalitzat per a emmagatzemar les vostres dades, activeu-ho i proporcioneu l'URL.",
"label": "Servidor personalitzat",
"urlLabel": "URL del servidor personalitzat"
},
"title": "Connexions",
"workers": {
"addButton": "Afig un «worker»",
"description": "Per fer funcionar l'aplicació, tot el trànsit s'encamina a través de servidors intermediaris. Activeu-ho si voleu portar els vostres propis «workers».",
"emptyState": "Encara no hi ha «workers», afegiu-ne un a continuació",
"label": "Utilitza «workers» intermediaris personalitzats",
"urlLabel": "URL dels «workers»",
"urlPlaceholder": "https://"
}
},
"locale": {
"language": "Llengua de l'aplicació",
"languageDescription": "La llengua s'aplica a tota l'aplicació.",
"title": "Llengua"
},
"reset": "Restableix",
"save": "Desa",
"sidebar": {
"info": {
"appVersion": "Versió de l'aplicacií",
"backendUrl": "URL del rerefons",
"backendVersion": "Versió del rerefons",
"hostname": "Nom de l'amfitrió",
"insecure": "Insegur",
"notLoggedIn": "No heu iniciat sessió",
"secure": "Segur",
"title": "Informació de l'aplicació",
"unknownVersion": "Desconeguda",
"userId": "ID d'usuari"
}
},
"subtitles": {
"backgroundLabel": "Opacitat del fons",
"colorLabel": "Color",
"previewQuote": "No he de tenir por. La por és l'assassina de la ment.",
"textSizeLabel": "Grandària del text",
"title": "Subtítols"
},
"unsaved": "Hi ha canvis sense desar"
}
}

View File

@ -259,6 +259,10 @@
} }
}, },
"metadata": { "metadata": {
"api": {
"text": "Metadata API nelze načíst, zkontrolujte prosím vaše připojení k internetu.",
"title": "Nepodařilo se načíst API metadata"
},
"failed": { "failed": {
"badge": "Neúspěšný", "badge": "Neúspěšný",
"homeButton": "Jít domů", "homeButton": "Jít domů",
@ -308,6 +312,12 @@
"remaining": "{{timeLeft}} zbývá • Dokončeno v {{timeFinished, datetime}}", "remaining": "{{timeLeft}} zbývá • Dokončeno v {{timeFinished, datetime}}",
"shortRegular": "{{timeWatched}}", "shortRegular": "{{timeWatched}}",
"shortRemaining": "-{{timeLeft}}" "shortRemaining": "-{{timeLeft}}"
},
"turnstile": {
"description": "Ověřte, prosím, že jste člověk, vyplněním Captchy napravo. Toto je pro zajištění bezpečnosti movie-web!",
"error": "Nepodařilo se ověřit vaši lidskost. Zkuste to prosím znovu.",
"title": "Potřebujeme ověřit, zda jste člověk.",
"verifyingHumanity": "Ověřování vaši lidskosti..."
} }
}, },
"screens": { "screens": {

View File

@ -259,6 +259,10 @@
} }
}, },
"metadata": { "metadata": {
"api": {
"text": "API Metadaten konnten nicht geladen werden, überprüfe deine Netzwerkverbindung.",
"title": "API Metadaten konnten nicht geladen werden"
},
"failed": { "failed": {
"badge": "Fehlgeschlagen", "badge": "Fehlgeschlagen",
"homeButton": "Zurück zur Startseite", "homeButton": "Zurück zur Startseite",
@ -308,6 +312,12 @@
"remaining": "{{timeLeft}} übrig • Fertig um {{timeFinished, datetime}}", "remaining": "{{timeLeft}} übrig • Fertig um {{timeFinished, datetime}}",
"shortRegular": "{{timeWatched}}", "shortRegular": "{{timeWatched}}",
"shortRemaining": "-{{timeLeft}}" "shortRemaining": "-{{timeLeft}}"
},
"turnstile": {
"description": "Bitte verifiziere deine Menschlichkeit mit dem Captcha auf der Rechten Seite. Dies ist um movie-web sicher zu halten!",
"error": "Menschlichkeit konnte nicht verifiziert werden. Bitte versuche es erneut.",
"title": "Wir müssen sicherstellen, dass du Menschlich bist.",
"verifyingHumanity": "Verifiziere deine Menschlichkeit..."
} }
}, },
"screens": { "screens": {

View File

@ -206,7 +206,8 @@
"episodeBadge": "Ε{{episode}}", "episodeBadge": "Ε{{episode}}",
"loadingError": "Σφάλμα φόρτωσης της σεζόν", "loadingError": "Σφάλμα φόρτωσης της σεζόν",
"loadingList": "Φόρτωση...", "loadingList": "Φόρτωση...",
"loadingTitle": "Φόρτωση..." "loadingTitle": "Φόρτωση...",
"unairedEpisodes": "Ένα ή περισσότερα επεισόδια αυτής της σεζόν έχουν απενεργοποιηθεί επειδή δεν έχουν προβληθεί ακόμα."
}, },
"playback": { "playback": {
"speedLabel": "Ταχύτητα αναπαραγωγής", "speedLabel": "Ταχύτητα αναπαραγωγής",
@ -258,6 +259,10 @@
} }
}, },
"metadata": { "metadata": {
"api": {
"text": "Δεν ήταν δυνατή η φόρτωση των μεταδεδομένων του API, ελέγξτε τη σύνδεσή σας στο διαδίκτυο.",
"title": "Αποτυχία φόρτωσης μεταδεδομένων API"
},
"failed": { "failed": {
"badge": "Απέτυχε", "badge": "Απέτυχε",
"homeButton": "Επιστοφή στην αρχική", "homeButton": "Επιστοφή στην αρχική",
@ -307,6 +312,12 @@
"remaining": "{{timeLeft}} απέμεινε • Ολοκλήρωση στις {{timeFinished, datetime}}", "remaining": "{{timeLeft}} απέμεινε • Ολοκλήρωση στις {{timeFinished, datetime}}",
"shortRegular": "{{timeWatched}}", "shortRegular": "{{timeWatched}}",
"shortRemaining": "-{{timeLeft}}" "shortRemaining": "-{{timeLeft}}"
},
"turnstile": {
"description": "Επαληθεύστε ότι είστε άνθρωπος συμπληρώνοντας το Captcha στα δεξιά. Αυτό γίνεται για να διατηρηθεί ο ιστός της ταινίας ασφαλής!",
"error": "Αποτυχία επαλήθευσης της ανθρωπιάς σας. ΠΑΡΑΚΑΛΩ προσπαθησε ξανα.",
"title": "Πρέπει να επαληθεύσουμε ότι είστε άνθρωπος.",
"verifyingHumanity": "Επαλήθευση της ανθρωπιάς σας..."
} }
}, },
"screens": { "screens": {

View File

@ -215,7 +215,7 @@
}, },
"quality": { "quality": {
"automaticLabel": "Qualité automatique", "automaticLabel": "Qualité automatique",
"hint": "Vous pouvez essayer de <0>changer de fournisseur/0> pour obtenir différentes options de qualité.", "hint": "Vous pouvez essayer de <0>changer de fournisseur</0> pour obtenir différentes options de qualité.",
"iosNoQuality": "En raison des limitations définies par Apple, la sélection de la qualité n'est pas disponible sur iOS pour cette source. Vous pouvez essayer <0>de passer à une autre source</0> pour obtenir des options de qualité différentes.", "iosNoQuality": "En raison des limitations définies par Apple, la sélection de la qualité n'est pas disponible sur iOS pour cette source. Vous pouvez essayer <0>de passer à une autre source</0> pour obtenir des options de qualité différentes.",
"title": "Qualité" "title": "Qualité"
}, },
@ -259,9 +259,13 @@
} }
}, },
"metadata": { "metadata": {
"api": {
"text": "Impossible de charger les métadonnées de l'API, veuillez vérifier votre connexion Internet.",
"title": "Échec du chargement des métadonnées de l'API"
},
"failed": { "failed": {
"badge": "Échec", "badge": "Échec",
"homeButton": "Retour à la maison", "homeButton": "Revenir à l'accueil",
"text": "Impossible de charger les métadonnées du média à partir de TMDB. Veuillez vérifier si TMDB est en panne ou bloqué sur votre connexion internet.", "text": "Impossible de charger les métadonnées du média à partir de TMDB. Veuillez vérifier si TMDB est en panne ou bloqué sur votre connexion internet.",
"title": "Échec du chargement des métadonnées" "title": "Échec du chargement des métadonnées"
}, },
@ -308,6 +312,12 @@
"remaining": "{{timeLeft}} restant • Fini à {{timeFinished, datetime}}", "remaining": "{{timeLeft}} restant • Fini à {{timeFinished, datetime}}",
"shortRegular": "{{timeWatched}}", "shortRegular": "{{timeWatched}}",
"shortRemaining": "-{{timeLeft}}" "shortRemaining": "-{{timeLeft}}"
},
"turnstile": {
"description": "Veuillez vérifier que vous êtes bien humain en complétant le Captcha à droite. C'est pour assurer la sécurité de movie-web !",
"error": "Échec de la vérification de votre humanité. Veuillez réessayer.",
"title": "Nous devons vérifier que vous êtes un humain.",
"verifyingHumanity": "Vérification de votre humanité..."
} }
}, },
"screens": { "screens": {

View File

@ -259,6 +259,10 @@
} }
}, },
"metadata": { "metadata": {
"api": {
"text": "API મેટાડેટા લોડ કરી શકાયું નથી, કૃપા કરીને તમારું ઇન્ટરનેટ કનેક્શન તપાસો.",
"title": "API મેટાડેટા લોડ કરવામાં નિષ્ફળ"
},
"failed": { "failed": {
"badge": "નિષ્ફળ", "badge": "નિષ્ફળ",
"homeButton": "ઘર જાઓ", "homeButton": "ઘર જાઓ",
@ -308,6 +312,12 @@
"remaining": "{{timeLeft}} બાકી • {{timeFinished, datetime}} વાગ્યે સમાપ્ત થાય છે", "remaining": "{{timeLeft}} બાકી • {{timeFinished, datetime}} વાગ્યે સમાપ્ત થાય છે",
"shortRegular": "{{timeWatched}}", "shortRegular": "{{timeWatched}}",
"shortRemaining": "-{{timeLeft}}" "shortRemaining": "-{{timeLeft}}"
},
"turnstile": {
"description": "કૃપા કરીને જમણી બાજુએ કૅપ્ચા પૂર્ણ કરીને ચકાસો કે તમે માનવ છો. આ મૂવી-વેબને સુરક્ષિત રાખવા માટે છે!",
"error": "તમારી માનવતા ચકાસવામાં નિષ્ફળ. મહેરબાની કરીને ફરીથી પ્રયત્ન કરો.",
"title": "અમારે ચકાસવાની જરૂર છે કે તમે માનવ છો.",
"verifyingHumanity": "તમારી માનવતા ચકાસવી..."
} }
}, },
"screens": { "screens": {

View File

@ -206,7 +206,8 @@
"episodeBadge": "פ{{episode}}", "episodeBadge": "פ{{episode}}",
"loadingError": "ארע שגיאה בטעינת העונה", "loadingError": "ארע שגיאה בטעינת העונה",
"loadingList": "טוען...", "loadingList": "טוען...",
"loadingTitle": "טוען..." "loadingTitle": "טוען...",
"unairedEpisodes": "פרק אחד או יותר בעונה זו הושבת מכיוון שהם עדיין לא שודרו."
}, },
"playback": { "playback": {
"speedLabel": "מהירות הניגון", "speedLabel": "מהירות הניגון",
@ -258,6 +259,10 @@
} }
}, },
"metadata": { "metadata": {
"api": {
"text": "לא ניתן היה לטעון מטא נתונים של ה-API, אנא בדוק את חיבור האינטרנט שלך.",
"title": "טעינת מטא נתונים של ממשק API נכשלה"
},
"failed": { "failed": {
"badge": "נכשל", "badge": "נכשל",
"homeButton": "חזור לדף הבית", "homeButton": "חזור לדף הבית",
@ -307,6 +312,12 @@
"remaining": "{{timeLeft}} נשאר • סיים ב {{timeFinished, datetime}}", "remaining": "{{timeLeft}} נשאר • סיים ב {{timeFinished, datetime}}",
"shortRegular": "{{timeWatched}}", "shortRegular": "{{timeWatched}}",
"shortRemaining": "-{{timeLeft}}" "shortRemaining": "-{{timeLeft}}"
},
"turnstile": {
"description": "אנא ודא שאתה אנושי על ידי מילוי ה-Captcha בצד ימין. זה כדי לשמור על movie-web!",
"error": "נכשל אימות האנושיות שלך. בבקשה נסה שוב.",
"title": "אנחנו צריכים לאמת שאתה אנושי.",
"verifyingHumanity": "מאמת את האנושיות שלך..."
} }
}, },
"screens": { "screens": {

View File

@ -115,7 +115,7 @@
"failed": "मीडिया ढूंढने में विफल, पुनः प्रयास करें!", "failed": "मीडिया ढूंढने में विफल, पुनः प्रयास करें!",
"loading": "लोड हो रहा है..।", "loading": "लोड हो रहा है..।",
"noResults": "हमें कुछ नहीं मिला!", "noResults": "हमें कुछ नहीं मिला!",
"placeholder": "क्या देखना चाहते हो भाई?", "placeholder": "क्या देखना चाहते हो?",
"sectionTitle": "खोज के परिणाम" "sectionTitle": "खोज के परिणाम"
}, },
"titles": { "titles": {
@ -259,6 +259,10 @@
} }
}, },
"metadata": { "metadata": {
"api": {
"text": "एपीआई मेटाडेटा लोड नहीं हो सका, कृपया अपना इंटरनेट कनेक्शन जांचें।",
"title": "एपीआई मेटाडेटा लोड करने में विफल"
},
"failed": { "failed": {
"badge": "असफल", "badge": "असफल",
"homeButton": "घर जाओ", "homeButton": "घर जाओ",
@ -308,6 +312,12 @@
"remaining": "{{timeLeft}} समय बचा है • ख़तम होगा {{timeFinished, datetime}}", "remaining": "{{timeLeft}} समय बचा है • ख़तम होगा {{timeFinished, datetime}}",
"shortRegular": "{{timeWatched}}", "shortRegular": "{{timeWatched}}",
"shortRemaining": "-{{timeLeft}}" "shortRemaining": "-{{timeLeft}}"
},
"turnstile": {
"description": "कृपया दाईं ओर दिए गए कैप्चा को पूरा करके सत्यापित करें कि आप इंसान हैं। यह मूवी-वेब को सुरक्षित रखने के लिए है!",
"error": "आपकी मानवता को सत्यापित करने में विफल. कृपया पुन: प्रयास करें।",
"title": "हमें यह सत्यापित करने की आवश्यकता है कि आप इंसान हैं।",
"verifyingHumanity": "आपकी मानवता का सत्यापन..।"
} }
}, },
"screens": { "screens": {

View File

@ -206,7 +206,8 @@
"episodeBadge": "E{{episode}}", "episodeBadge": "E{{episode}}",
"loadingError": "Errore nel caricare la stagione", "loadingError": "Errore nel caricare la stagione",
"loadingList": "Caricamento...", "loadingList": "Caricamento...",
"loadingTitle": "Caricamento..." "loadingTitle": "Caricamento...",
"unairedEpisodes": "Uno o più episodi di questa stagione sono stati disabilitati perché non sono ancora andati in onda."
}, },
"playback": { "playback": {
"speedLabel": "Velocità di riproduzione", "speedLabel": "Velocità di riproduzione",
@ -258,6 +259,10 @@
} }
}, },
"metadata": { "metadata": {
"api": {
"text": "Impossibile caricare metadati API, verifica la connessione internet.",
"title": "Impossibile caricare metadati API"
},
"failed": { "failed": {
"badge": "Fallito", "badge": "Fallito",
"homeButton": "Vai alla pagina iniziale", "homeButton": "Vai alla pagina iniziale",
@ -307,6 +312,12 @@
"remaining": "{{timeLeft}} rimasto • Finisce a {{timeFinished, datetime}}", "remaining": "{{timeLeft}} rimasto • Finisce a {{timeFinished, datetime}}",
"shortRegular": "{{timeWatched}}", "shortRegular": "{{timeWatched}}",
"shortRemaining": "-{{timeLeft}}" "shortRemaining": "-{{timeLeft}}"
},
"turnstile": {
"description": "Verifica che siate umani completando il Captcha sulla destra. Questo serve a mantenere movie-web sicuro!",
"error": "Impossibile verificare il proprio umanità. Riprova.",
"title": "Dobbiamo verificare che lei sia umano.",
"verifyingHumanity": "verificare il proprio umanità..."
} }
}, },
"screens": { "screens": {

View File

@ -5,6 +5,34 @@
"q1": { "q1": {
"body": "movie-web មិនផ្ទុកមាតិកាណាមួយទេ។ នៅពេលអ្នកចុចលើអ្វីមួយដើម្បីមើល អ៊ីនធឺណិតត្រូវបានស្វែងរកសម្រាប់មេឌៀដែលបានជ្រើសរើស (នៅលើអេក្រង់ផ្ទុក និងក្នុងផ្ទាំង 'ប្រភពវីដេអូ' អ្នកអាចឃើញប្រភពណាមួយដែលអ្នកកំពុងប្រើ)។ ប្រព័ន្ធផ្សព្វផ្សាយមិនដែលត្រូវបានបង្ហោះដោយគេហទំព័រភាពយន្តនោះទេ អ្វីគ្រប់យ៉ាងគឺតាមរយៈយន្តការស្វែងរកនេះ។", "body": "movie-web មិនផ្ទុកមាតិកាណាមួយទេ។ នៅពេលអ្នកចុចលើអ្វីមួយដើម្បីមើល អ៊ីនធឺណិតត្រូវបានស្វែងរកសម្រាប់មេឌៀដែលបានជ្រើសរើស (នៅលើអេក្រង់ផ្ទុក និងក្នុងផ្ទាំង 'ប្រភពវីដេអូ' អ្នកអាចឃើញប្រភពណាមួយដែលអ្នកកំពុងប្រើ)។ ប្រព័ន្ធផ្សព្វផ្សាយមិនដែលត្រូវបានបង្ហោះដោយគេហទំព័រភាពយន្តនោះទេ អ្វីគ្រប់យ៉ាងគឺតាមរយៈយន្តការស្វែងរកនេះ។",
"title": "តើមាតិកាបានមកពីណា?" "title": "តើមាតិកាបានមកពីណា?"
},
"q2": {
"title": "តើខ្ញុំអាចស្នើសុំកម្មវិធី ឬ ភាពយន្តបាននៅឯណា?"
},
"q3": {
"body": "លទ្ធផលស្វែងរករបស់យើងត្រូវបានដំណើរការដោយ The Movie Database (TMDB) ហើយបង្ហាញដោយមិនខ្វល់ពីប្រភពរបស់យើងមានខ្លឹមសារឬ​អត់ទេ។",
"title": "លទ្ធផលស្វែងរកបង្ហាញកម្មវិធី ឬ ភាពយន្ត ហេតុអ្វីខ្ញុំមិនអាចមើលបាន?"
},
"title": "អំពី movie-web"
},
"actions": {
"copied": "បានចម្លង",
"copy": "ចម្លង"
},
"auth": {
"createAccount": "មិនទាន់មានគណនីមែនទេ? <0>បង្កើតគណនី</0>",
"deviceNameLabel": "ឈ្មោះឧបករណ៍",
"deviceNamePlaceholder": "ទូរស័ព្ទផ្ទាល់ខ្លួន",
"generate": {
"description": "ឃ្លាសម្ងាត់របស់អ្នកដើរតួជាឈ្មោះអ្នកប្រើប្រាស់ និងពាក្យសម្ងាត់របស់អ្នក។ ត្រូវប្រាកដថារក្សាវាឱ្យមានសុវត្ថិភាព ព្រោះអ្នកនឹងត្រូវបញ្ចូលវាដើម្បីចូលគណនីរបស់អ្នក",
"next": "ខ្ញុំបានរក្សាទុកឃ្លាសម្ងាត់របស់ខ្ញុំរួចហើយ",
"passphraseFrameLabel": "ឃ្លាសម្ងាត់",
"title": "ឃ្លាសម្ងាត់របស់អ្នក"
},
"hasAccount": "មានគណនីរួចហើយ? <0>ចូលទីនេះ</0>",
"login": {
"description": "សូមបញ្ចូលឃ្លាសម្ងាត់របស់អ្នក ដើម្បីចូលគណនីរបស់អ្នក",
"deviceLengthError": "សូមបញ្ចូលឈ្មោះឧបករណ៍"
} }
} }
} }

View File

@ -120,7 +120,10 @@
}, },
"titles": { "titles": {
"day": { "day": {
"default": "What would you like to banana this banana?" "default": "What would you like to banana this banana?",
"extra": [
"Feeling banana? Jurassic banana banana banana banana perfect banana."
]
}, },
"morning": { "morning": {
"default": "What would you like to banana this banana?", "default": "What would you like to banana this banana?",
@ -157,7 +160,7 @@
} }
}, },
"notFound": { "notFound": {
"badge": "Not found", "badge": "Not banana",
"goHome": "Back to banana", "goHome": "Back to banana",
"message": "We looked everywhere: under the banana, in the banana, behind the banana but ultimately couldn't find the banana you are looking for.", "message": "We looked everywhere: under the banana, in the banana, behind the banana but ultimately couldn't find the banana you are looking for.",
"title": "Couldn't find that banana" "title": "Couldn't find that banana"
@ -179,6 +182,7 @@
"downloadPlaylist": "Download banana", "downloadPlaylist": "Download banana",
"downloadSubtitle": "Download current banana", "downloadSubtitle": "Download current banana",
"downloadVideo": "Banana", "downloadVideo": "Banana",
"hlsDisclaimer": "Downloads are taken directly from the banana. Banana-web does not have control over how the downloads are banana. please note that you are downloading Banana playlist, this is intended for minions familiar with advanced multimedia banana.",
"onAndroid": { "onAndroid": {
"1": "To banana on Banana, click the banana banana then, on the new banana, <bold>tap and hold</bold> on the banana, then select <bold>banana</bold>.", "1": "To banana on Banana, click the banana banana then, on the new banana, <bold>tap and hold</bold> on the banana, then select <bold>banana</bold>.",
"shortTitle": "Banana / Banana", "shortTitle": "Banana / Banana",
@ -202,7 +206,8 @@
"episodeBadge": "E{{episode}}", "episodeBadge": "E{{episode}}",
"loadingError": "Error loading banana", "loadingError": "Error loading banana",
"loadingList": "Loading...", "loadingList": "Loading...",
"loadingTitle": "Loading..." "loadingTitle": "Loading...",
"unairedEpisodes": "One or more banana in this banana have been banana because they haven't been aired yet."
}, },
"playback": { "playback": {
"speedLabel": "Banana speed", "speedLabel": "Banana speed",
@ -254,6 +259,10 @@
} }
}, },
"metadata": { "metadata": {
"api": {
"text": "Could not load API banana, please check your banana connection.",
"title": "Failed to load API banana"
},
"failed": { "failed": {
"badge": "Banana Failed", "badge": "Banana Failed",
"homeButton": "Go banana", "homeButton": "Go banana",
@ -303,9 +312,19 @@
"remaining": "{{timeLeft}} left • Finish at {{timeFinished, datetime}}", "remaining": "{{timeLeft}} left • Finish at {{timeFinished, datetime}}",
"shortRegular": "{{timeWatched}}", "shortRegular": "{{timeWatched}}",
"shortRemaining": "-{{timeLeft}}" "shortRemaining": "-{{timeLeft}}"
},
"turnstile": {
"description": "Please verify that you are banana by completing the banana on the right. This is to keep banana-web banana!",
"error": "Failed to verify your banananess. Please try banana.",
"title": "We banana to verify that you're banana",
"verifyingHumanity": "Verifying your banana..."
} }
}, },
"screens": { "screens": {
"dmca": {
"text": "Very long and boring banana.",
"title": "Banana"
},
"loadingApp": "Loading banana", "loadingApp": "Loading banana",
"loadingUser": "Loading your banana", "loadingUser": "Loading your banana",
"loadingUserError": { "loadingUserError": {
@ -407,6 +426,8 @@
} }
}, },
"subtitles": { "subtitles": {
"backgroundLabel": "Banana capacity",
"colorLabel": "Banana",
"previewQuote": "I must not banana. Banana is the minion-killer.", "previewQuote": "I must not banana. Banana is the minion-killer.",
"textSizeLabel": "Banana size", "textSizeLabel": "Banana size",
"title": "Bananas" "title": "Bananas"

View File

@ -206,7 +206,8 @@
"episodeBadge": "E{{episode}}", "episodeBadge": "E{{episode}}",
"loadingError": "सिजन लोड गर्दा त्रुटि भयो", "loadingError": "सिजन लोड गर्दा त्रुटि भयो",
"loadingList": "लोड गर्दै...", "loadingList": "लोड गर्दै...",
"loadingTitle": "लोड गर्दै..." "loadingTitle": "लोड गर्दै...",
"unairedEpisodes": "यस सिजनका एक वा बढी एपिसोडहरू अझै प्रसारण नभएकाले असक्षम पारिएका छन्।"
}, },
"playback": { "playback": {
"speedLabel": "प्लेब्याकको गति", "speedLabel": "प्लेब्याकको गति",
@ -258,6 +259,10 @@
} }
}, },
"metadata": { "metadata": {
"api": {
"text": "API मेटाडेटा लोड गर्न सकिएन, कृपया आफ्नो इन्टरनेट जडान जाँच गर्नुहोस्।",
"title": "API मेटाडेटा लोड गर्न असफल भयो"
},
"failed": { "failed": {
"badge": "असफल", "badge": "असफल",
"homeButton": "होम् जाउँ", "homeButton": "होम् जाउँ",
@ -307,6 +312,12 @@
"remaining": "{{timeLeft}} बाकी • {{timeFinished, datetime}} मा सक्किनेछ", "remaining": "{{timeLeft}} बाकी • {{timeFinished, datetime}} मा सक्किनेछ",
"shortRegular": "{{timeWatched}}", "shortRegular": "{{timeWatched}}",
"shortRemaining": "-{{timeLeft}}" "shortRemaining": "-{{timeLeft}}"
},
"turnstile": {
"description": "कृपया दायाँपट्टि Captch पूरा गरेर तपाईं मानव हुनुहुन्छ भनी प्रमाणित गर्नुहोस्। यो movie-web लाई सुरक्षित राख्न को लागी हो!",
"error": "तपाईंको मानवता प्रमाणित गर्न असफल भयौ। फेरि प्रयास गर्नुहोस।",
"title": "हामीले तपाईं मानव हुनुहुन्छ भनेर प्रमाणित गर्न आवश्यक छ।",
"verifyingHumanity": "तपाईंको मानवता प्रमाणित हुदैछ..."
} }
}, },
"screens": { "screens": {

View File

@ -259,6 +259,10 @@
} }
}, },
"metadata": { "metadata": {
"api": {
"text": "Kan API-metagegevens niet laden. Controleer uw internetverbinding.",
"title": "Kan API-metagegevens niet laden"
},
"failed": { "failed": {
"badge": "Mislukt", "badge": "Mislukt",
"homeButton": "Ga naar de home-pagina", "homeButton": "Ga naar de home-pagina",
@ -308,6 +312,12 @@
"remaining": "Nog {{timeLeft}} • Klaar om {{timeFinished, datetime}}", "remaining": "Nog {{timeLeft}} • Klaar om {{timeFinished, datetime}}",
"shortRegular": "{{timeWatched}}", "shortRegular": "{{timeWatched}}",
"shortRemaining": "-{{timeLeft}}" "shortRemaining": "-{{timeLeft}}"
},
"turnstile": {
"description": "Bevestig dat u een mens bent door de Captcha aan de rechterkant in te vullen. Dit is om movie-web veilig te houden!",
"error": "Kan uw menselijkheid niet verifiëren. Probeer het opnieuw.",
"title": "We moeten verifiëren dat u een mens bent.",
"verifyingHumanity": "Je menselijkheid verifiëren..."
} }
}, },
"screens": { "screens": {

View File

@ -1,9 +1,31 @@
{ {
"about": {
"description": "ਮੂਵੀ-ਵੈਬ ਇੱਕ ਵੈੱਬ ਐਪਲੀਕੇਸ਼ਨ ਹੈ ਜੋ ਸਟ੍ਰੀਮ ਲਈ ਇੰਟਰਨੈਟ ਦੀ ਖੋਜ ਕਰਦੀ ਹੈ. ਟੀਮ ਦਾ ਉਦੇਸ਼ ਕੰਟੈਂਟ ਦੀ ਖਪਤ ਕਰਨ ਲਈ ਜ਼ਿਆਦਾਤਰ ਘੱਟੋ-ਘੱਟ ਪਹੁੰਚ ਹੈ.",
"faqTitle": "ਆਮ ਸਵਾਲ",
"q1": {
"body": "ਮੂਵੀ ਵੈੱਬ ਕਿਸੇ ਕੰਟੈਂਟ ਦੀ ਮੇਜ਼ਬਾਨੀ ਨਹੀਂ ਕਰਦਾ ਹੈ.ਜਦੋਂ ਤੁਸੀਂ ਦੇਖਣ ਲਈ ਕਿਸੇ ਚੀਜ਼ 'ਤੇ ਕਲਿੱਕ ਕਰਦੇ ਹੋ, ਤਾਂ ਚੁਣੇ ਹੋਏ ਮੀਡੀਆ ਲਈ ਇੰਟਰਨੈੱਟ ਖੋਜਿਆ ਜਾਂਦਾ ਹੈ (ਲੋਡਿੰਗ ਸਕ੍ਰੀਨ 'ਤੇ ਅਤੇ 'ਵੀਡੀਓ ਸਰੋਤ' ਟੈਬ ਵਿੱਚ ਤੁਸੀਂ ਦੇਖ ਸਕਦੇ ਹੋ ਕਿ ਤੁਸੀਂ ਕਿਹੜਾ ਸਰੋਤ ਵਰਤ ਰਹੇ ਹੋ) ਮੀਡੀਆ ਕਦੇ ਵੀ ਮੂਵੀ-ਵੈੱਬ ਦੁਆਰਾ ਅਪਲੋਡ ਨਹੀਂ ਹੁੰਦਾ, ਸਭ ਕੁਝ ਇਸ ਖੋਜ ਵਿਧੀ ਦੁਆਰਾ ਹੁੰਦਾ ਹੈ।",
"title": "ਕੰਟੈਂਟ ਕਿੱਥੋਂ ਆਉਂਦੀ ਹੈ?"
},
"q2": {
"body": "ਕਿਸੇ ਸ਼ੋਅ ਜਾਂ ਮੂਵੀ ਦੀ ਬੇਨਤੀ ਕਰਨਾ ਸੰਭਵ ਨਹੀਂ ਹੈ, ਮੂਵੀ-ਵੈੱਬ ਕਿਸੇ ਵੀ ਕੰਟੈਂਟ ਦਾ ਪ੍ਰਬੰਧਨ ਨਹੀਂ ਕਰਦਾ ਹੈ। ਸਾਰੇ ਕੰਟੈਂਟ ਨੂੰ ਇੰਟਰਨੈੱਟ 'ਤੇ ਸਰੋਤਾਂ ਰਾਹੀਂ ਦੇਖਿਆ ਜਾਂਦਾ ਹੈ।",
"title": "ਮੈਂ ਇੱਕ ਸ਼ੋਅ ਜਾਂ ਫ਼ਿਲਮ ਲਈ ਕਿੱਥੇ ਬੇਨਤੀ ਕਰ ਸਕਦਾ/ਸਕਦੀ ਹਾਂ?"
},
"q3": {
"title": "ਖੋਜ ਨਤੀਜੇ ਸ਼ੋਅ ਜਾਂ ਫ਼ਿਲਮ ਦਿਖਾਉਂਦੇ ਹਨ, ਮੈਂ ਇਸਨੂੰ ਕਿਉਂ ਨਹੀਂ ਚਲਾ ਸਕਦਾ?"
},
"title": "ਮੂਵੀ-ਵੈੱਬ ਡੀ ਬਾਰੇ"
},
"actions": { "actions": {
"copied": "ਕਾਪੀਡ",
"copy": "ਕਾਪੀ" "copy": "ਕਾਪੀ"
}, },
"auth": { "auth": {
"deviceNameLabel": "ਡਿਵਾਈਸ ਦਾ ਨਾਮ",
"generate": {
"passphraseFrameLabel": "ਪੈਰਾਫਰਾਜ਼"
},
"login": { "login": {
"passphrasePlaceholder": "ਪੈਰਾਫਰਾਜ਼",
"submit": "ਲੌਗ-ਇਨ" "submit": "ਲੌਗ-ਇਨ"
}, },
"register": { "register": {
@ -12,7 +34,31 @@
} }
}, },
"trust": { "trust": {
"no": "ਵਾਪਸ ਜਾਓ" "no": "ਵਾਪਸ ਜਾਓ",
"yes": "ਮੈਨੂੰ ਇਸ ਸਰਵਰ 'ਤੇ ਭਰੋਸਾ ਹੈ"
}
},
"footer": {
"links": {
"discord": "ਡਿਸਕੋਰਡ",
"dmca": "ਡੀ.ਐਮ.ਸੀ.ਏ",
"github": "ਗਿਥਬ"
}
},
"global": {
"name": "ਮੂਵੀ-ਵੈੱਬ",
"pages": {
"about": "ਬਾਰੇ",
"dmca": "ਡੀ.ਐਮ.ਸੀ.ਏ",
"login": "ਲਾਗਿਨ",
"pagetitle": "{{title}} - ਮੂਵੀ-ਵੈੱਬ",
"register": "ਰਜਿਸਟਰ",
"settings": "ਸੈਟਿੰਗਾਂ"
}
},
"home": {
"bookmarks": {
"sectionTitle": "ਬੁੱਕਮਾਰਕ"
} }
} }
} }

View File

@ -112,7 +112,7 @@
}, },
"search": { "search": {
"allResults": "That's all we have, me heartie!", "allResults": "That's all we have, me heartie!",
"failed": "Failed to find media, try again!", "failed": "Arrrr failed to find media, try again!",
"loading": "Hold yer horses, me heartie!", "loading": "Hold yer horses, me heartie!",
"noResults": "We couldn't find anythin', arrr!", "noResults": "We couldn't find anythin', arrr!",
"placeholder": "What do ye want to watch?", "placeholder": "What do ye want to watch?",

View File

@ -307,6 +307,11 @@
"remaining": "Zostało {{timeLeft}} • Skończ o {{timeFinished, datetime}}", "remaining": "Zostało {{timeLeft}} • Skończ o {{timeFinished, datetime}}",
"shortRegular": "{{timeWatched}}", "shortRegular": "{{timeWatched}}",
"shortRemaining": "-{{timeLeft}}" "shortRemaining": "-{{timeLeft}}"
},
"turnstile": {
"error": "Nie udało się zweryfikować Twojego człowieczeństwa. Proszę spróbuj ponownie.",
"title": "Musimy sprawdzić, czy jesteś człowiekiem.",
"verifyingHumanity": "Sprawdzasz swoje człowieczeństwo..."
} }
}, },
"screens": { "screens": {

View File

@ -206,7 +206,8 @@
"episodeBadge": "E{{episode}}", "episodeBadge": "E{{episode}}",
"loadingError": "Erro ao carregar temporada", "loadingError": "Erro ao carregar temporada",
"loadingList": "Carregando...", "loadingList": "Carregando...",
"loadingTitle": "Carregando..." "loadingTitle": "Carregando...",
"unairedEpisodes": "Um ou mais episódios nesta temporada foram desabilitados porque ainda não foram ao ar."
}, },
"playback": { "playback": {
"speedLabel": "Velocidade de reprodução", "speedLabel": "Velocidade de reprodução",
@ -258,6 +259,10 @@
} }
}, },
"metadata": { "metadata": {
"api": {
"text": "Não foi possível carregar os metadados da API. Por favor, verifique sua conexão com a internet.",
"title": "Falha ao carregar os metadados da API"
},
"failed": { "failed": {
"badge": "Falhou", "badge": "Falhou",
"homeButton": "Ir para o início", "homeButton": "Ir para o início",
@ -307,6 +312,12 @@
"remaining": "{{timeLeft}} restantes • Terminar às {{timeFinished, datetime}}", "remaining": "{{timeLeft}} restantes • Terminar às {{timeFinished, datetime}}",
"shortRegular": "{{timeWatched}}", "shortRegular": "{{timeWatched}}",
"shortRemaining": "-{{timeLeft}}" "shortRemaining": "-{{timeLeft}}"
},
"turnstile": {
"description": "Por favor, confirme que você é um humano completando o Captcha à direita. Isso é para manter movie-web seguro!",
"error": "Falha ao verificar sua humanidade. Por favor, tente novamente.",
"title": "Precisamos verificar se você é humano.",
"verifyingHumanity": "Verificando sua humanidade..."
} }
}, },
"screens": { "screens": {

View File

@ -1,7 +1,7 @@
{ {
"about": { "about": {
"description": "movie-web este o aplicație web care caută fluxuri pe internet. Echipa urmărește o abordare mai ales minimalistă a consumului de conținut.", "description": "movie-web este o aplicație web care caută fluxuri pe internet. Echipa urmărește o abordare mai ales minimalistă a consumului de conținut.",
"faqTitle": "Intrebari obisnuite", "faqTitle": "Întrebări obișnuite",
"q1": { "q1": {
"body": "movie-web nu găzduiește niciun conținut. Când faceți clic pe ceva pentru a viziona, pe Internet este căutat media selectată (Pe ecranul de încărcare și în fila „Surse video”, puteți vedea ce sursă utilizați). Media nu este niciodată încărcată de movie-web, totul se face prin acest mecanism de căutare.", "body": "movie-web nu găzduiește niciun conținut. Când faceți clic pe ceva pentru a viziona, pe Internet este căutat media selectată (Pe ecranul de încărcare și în fila „Surse video”, puteți vedea ce sursă utilizați). Media nu este niciodată încărcată de movie-web, totul se face prin acest mecanism de căutare.",
"title": "De unde vine conținutul?" "title": "De unde vine conținutul?"
@ -18,7 +18,7 @@
}, },
"actions": { "actions": {
"copied": "Copiat", "copied": "Copiat",
"copy": "Copie" "copy": "Copiați"
}, },
"auth": { "auth": {
"createAccount": "Nu aveți încă un cont? <0>Creați un cont.</0>", "createAccount": "Nu aveți încă un cont? <0>Creați un cont.</0>",
@ -26,8 +26,8 @@
"deviceNamePlaceholder": "Telefon personal", "deviceNamePlaceholder": "Telefon personal",
"generate": { "generate": {
"description": "Fraza de acces acționează ca nume de utilizator și parolă. Asigurați-vă că îl păstrați în siguranță, deoarece va trebui să îl introduceți pentru a vă conecta la contul dvs", "description": "Fraza de acces acționează ca nume de utilizator și parolă. Asigurați-vă că îl păstrați în siguranță, deoarece va trebui să îl introduceți pentru a vă conecta la contul dvs",
"next": "Mi-am salvat expresia de acces", "next": "Mi-am salvat fraza de acces",
"passphraseFrameLabel": "Fraza de acces", "passphraseFrameLabel": "Frază de acces",
"title": "Fraza dvs. de acces" "title": "Fraza dvs. de acces"
}, },
"hasAccount": "ai deja un cont? <0>Autentificați-vă aici.</0>", "hasAccount": "ai deja un cont? <0>Autentificați-vă aici.</0>",
@ -35,19 +35,19 @@
"description": "Vă rugăm să introduceți fraza de acces pentru a vă conecta la contul dvs", "description": "Vă rugăm să introduceți fraza de acces pentru a vă conecta la contul dvs",
"deviceLengthError": "Introduceți un nume de dispozitiv", "deviceLengthError": "Introduceți un nume de dispozitiv",
"passphraseLabel": "Expresie de acces din 12 cuvinte", "passphraseLabel": "Expresie de acces din 12 cuvinte",
"passphrasePlaceholder": "Fraza de acces", "passphrasePlaceholder": "Frază de acces",
"submit": "Log in", "submit": "Conectează te",
"title": "conecteaza-te la contul tau", "title": "conecteaza-te la contul tau",
"validationError": "Fraza de acces incorectă sau incompletă" "validationError": "Fraza de acces este incorectă sau incompletă"
}, },
"register": { "register": {
"information": { "information": {
"color1": "Culoarea profilului unu", "color1": "Culoarea profilului unu",
"color2": "Culoarea profilului doi", "color2": "Culoarea profilului doi",
"header": "Introduceți un nume pentru dispozitivul dvs. și alegeți culorile și o pictogramă de utilizator la alegerea dvs", "header": "Introduceți un nume pentru dispozitivul dvs. și alegeți culorile și o pictogramă de utilizator la alegerea dvs",
"icon": "Pictograma utilizator", "icon": "Pictograma utilizatorului",
"next": "Următorul", "next": "Următorul",
"title": "Informatii despre cont" "title": "Informații despre cont"
} }
}, },
"trust": { "trust": {
@ -177,6 +177,29 @@
"enabled": "Casting pe dispozitiv..." "enabled": "Casting pe dispozitiv..."
}, },
"menus": { "menus": {
"downloads": {
"disclaimer": "Descărcările sunt luate direct de la furnizor. Movie-web nu are control cum descărcările sunt furnizate.",
"downloadPlaylist": "Descarcă lista de redare",
"downloadSubtitle": "Descărcați subtitlul curente",
"downloadVideo": "Descarcă video",
"hlsDisclaimer": "Descărcările sunt preluate direct de la furnizor. movie-web nu are control asupra modului în care sunt furnizate descărcările. Vă rugăm să rețineți că descărcați o listă de redare HLS, aceasta este destinată utilizatorilor familiar cu streamingul avansat.",
"onAndroid": {
"1": "Pentru a descărca pe android, apăsați butonul de descărcare apoi în pagina nouă,<bold>apăsați și țineți</bold> pe video, apoi selectați <bold>salvează</bold>.",
"shortTitle": "Descărcare / Android",
"title": "Descărcare pe Android"
},
"onIos": {
"1": "Pentru a instala pe iOS, apăsați butonul de instalare apoi în pagina nouă apăsați <bold><ios_share /></bold>, apoi <bold>Salvează in File <ios_files /></bold>.",
"shortTitle": "Descărcare / iOS",
"title": "Descărcare pe iOS"
},
"onPc": {
"1": "Pe calculator, apăsați butonul de descărcare apoi în pagina nouă, apăsați click drept pe video și selectați <bold> Salvați videoul ca</bold>",
"shortTitle": "Descarcă / Calculator",
"title": "Descărcare pe calculator"
},
"title": "Descarcă"
},
"episodes": { "episodes": {
"button": "Episoade", "button": "Episoade",
"emptyState": "Nu sunt episoade in sezonul acesta, reveniți mai târziu!", "emptyState": "Nu sunt episoade in sezonul acesta, reveniți mai târziu!",
@ -186,6 +209,16 @@
"loadingTitle": "Se încarcă...", "loadingTitle": "Se încarcă...",
"unairedEpisodes": "Unul sau mai multe episoade din sezonul acesta sunt indisponibile deoarece incă nu au venit încă." "unairedEpisodes": "Unul sau mai multe episoade din sezonul acesta sunt indisponibile deoarece incă nu au venit încă."
}, },
"playback": {
"speedLabel": "Viteză de redare",
"title": "Setările de redare"
},
"quality": {
"automaticLabel": "Calitate automată",
"hint": "Puteți încerca <0>Schimbarea sursei</0> pentru a primi opțiuni de calitate diferită.",
"iosNoQuality": "Din cauza limitărilor definite de Apple, selecția calității nu este disponibilă pe iOS pentru această sursă. Puteți încerca să <0>treceți la altă sursă</0> pentru a obține diferite opțiuni de calitate.",
"title": "Calitate"
},
"settings": { "settings": {
"downloadItem": "Descarcă", "downloadItem": "Descarcă",
"enableSubtitles": "Activează subtitlurile", "enableSubtitles": "Activează subtitlurile",
@ -197,6 +230,10 @@
"videoSection": "Setări video" "videoSection": "Setări video"
}, },
"sources": { "sources": {
"failed": {
"text": "Aici a fost o eroare încercând să găsim video, încercați o altă sursă.",
"title": "Nu s-a răzuit"
},
"noEmbeds": { "noEmbeds": {
"text": "Nu am putut găsi nicio incorporare, vă rog să încercați o altă sursă.", "text": "Nu am putut găsi nicio incorporare, vă rog să încercați o altă sursă.",
"title": "Nu a fost găsită nicio încorporare" "title": "Nu a fost găsită nicio încorporare"
@ -207,10 +244,194 @@
}, },
"title": "Surse", "title": "Surse",
"unknownOption": "Necunoscut" "unknownOption": "Necunoscut"
},
"subtitles": {
"customChoice": "Selectați subtitlul din filă",
"customizeLabel": "Costumizează",
"offChoice": "Oprit",
"settings": {
"backlink": "Subtitluri personalizate",
"delay": "Intârziera subtitlurilor",
"fixCapitals": "Fixați capitalizația"
},
"title": "Subtitluri",
"unknownLanguage": "Necunoscut"
} }
},
"metadata": {
"api": {
"text": "Metadatele API nu au putut fi încărcate, vă rugăm să vă verificați conexiunea la internet.",
"title": "Nu s-a putut incărca API metadata"
},
"failed": {
"badge": "Eșuat",
"homeButton": "Du-te acasă :)",
"text": "Nu s-au putut încărca metadatele media din TMDB. Vă rugăm să verificați dacă TMDB este oprit sau blocat pe conexiunea ta. la internet.",
"title": "Nu s-au încărcat metadatele"
},
"notFound": {
"badge": "Nu a fost găsit",
"homeButton": "Înapoi acasă :)",
"text": "Nu am putut găsi media pe care ați cerut-o. Poate este ștearsă sau ați manipulat adresa URL.",
"title": "Nu am putut găsi acel media."
}
},
"nextEpisode": {
"cancel": "Anulare",
"next": "Episodul următor"
},
"playbackError": {
"badge": "Eroare la redare",
"errors": {
"errorAborted": "Preluarea media a fost întreruptă la cererea utilizatorului.",
"errorDecode": "În ciuda faptului că anterior a fost determinată a fi utilizabilă, a apărut o eroare în timpul încercării de a decoda resursa media, rezultând o eroare.",
"errorGenericMedia": "Eroare media cumva sa întâmplat.",
"errorNetwork": "A apărut o eroare de rețea care a împiedicat preluarea cu succes a suportului media, în ciuda faptului că fusese disponibil anterior.",
"errorNotSupported": "Obiectul media sau furnizorul media nu este acceptat."
},
"homeButton": "Du-te acasă :)",
"text": "A apărut o eroare la încercarea de a reda media. Vă rugăm să încercați din nou.",
"title": "O eroare la redarea videoului!"
},
"scraping": {
"items": {
"failure": "Sa întâmplat o eraore",
"notFound": "Nu are acel video",
"pending": "Verificând pentru videouri..."
},
"notFound": {
"badge": "Nu a fost găsit",
"detailsButton": "Arată detalii",
"homeButton": "Du-te acasă",
"text": "Am căutat prin furnizorii noștri și nu putem găsi media pe care o căutați! Nu găzduim mass-media și nu avem control asupra a ceea ce este disponibil. Vă rugăm să faceți clic pe „Afișați detalii” de mai jos pentru mai multe detalii.",
"title": "Nu am putut găsi aia"
}
},
"time": {
"regular": "{{timeWatched}} / {{duration}}",
"remaining": "{{timeLeft}} rămas • Se termină la{{timeFinished, datetime}}",
"shortRegular": "{{timeWatched}}",
"shortRemaining": "-{{timeLeft}}"
},
"turnstile": {
"description": "Vă rog să vă verificați umanitatea completând acest captcha in partea dreapta. Asta este pentru a pastra movie-web sigur!",
"error": "Verificarea umanității tale a eșuat. Încercați din nou.",
"title": "Noi trebuie să verificăm dacă sunteți un om.",
"verifyingHumanity": "Verificați-vă umanitatea voastră..."
}
},
"screens": {
"dmca": {
"text": "Bun venit pe pagina de contact DMCA a movie-web! Respectăm drepturile de proprietate intelectuală și dorim să abordăm rapid orice problemă privind drepturile de autor. Dacă credeți că lucrarea dumneavoastră protejată prin drepturi de autor a fost utilizată necorespunzător pe platforma noastră, vă rugăm să trimiteți o notificare detaliată DMCA la e-mailul de mai jos. Vă rugăm să includeți o descriere a materialului protejat prin drepturi de autor, detaliile dvs. de contact și o declarație de bună credință. Ne angajăm să rezolvăm aceste probleme cu promptitudine și apreciem cooperarea dumneavoastră pentru a menține movie-web un loc care respectă creativitatea și drepturile de autor.",
"title": "DMCA"
},
"loadingApp": "Se încarcă aplicația",
"loadingUser": "Se încarcă profilul tău",
"loadingUserError": {
"logout": "Deconectare",
"reset": "Resetare servere personalizate",
"text": "Nu s-a încărcat profilul dvs",
"textWithReset": "Nu s-a încărcat profilul dvs. de pe serverul personalizat, doriți să reveniți la serverul implicit?"
},
"migration": {
"failed": "Eroare la migrarea datelor voastre.",
"inProgress": "Vă rugăm să așteptați, migrăm datele dvs. Acest lucru nu ar trebui să dureze mult."
} }
}, },
"settings": { "settings": {
"account": {
"accountDetails": {
"deviceNameLabel": "Numele dispozitivului",
"deviceNamePlaceholder": "Telefonul personal",
"editProfile": "Editează",
"logoutButton": "Deconectați-vă"
},
"actions": {
"delete": {
"button": "Șterge contul",
"confirmButton": "Șterge contul",
"confirmDescription": "Ești sigur că vrei să ștergi contul tău? Toate datele tale vor dispărea!",
"confirmTitle": "Ești sigur?",
"text": "Acțiunea asta este ireversibilă. Toate datele tale vor dispărea și nimic nu va putea fi recuperat.",
"title": "Șterge contul"
},
"title": "Acțiuni"
},
"devices": {
"deviceNameLabel": "Numele dispozitivului",
"failed": "Eroare la încărcarea sesiunii",
"removeDevice": "Șterge",
"title": "Dispozitive"
},
"profile": {
"finish": "Termină editarea",
"firstColor": "Culoarea profilului unu",
"secondColor": "Culoare profilului doi",
"title": "Editează poza de profil",
"userIcon": "Iconița utilizatorului"
},
"register": {
"cta": "Începeți",
"text": "Partajați progresul vizionării între dispozitive și păstrați-le sincronizate.",
"title": "Sincronizare în cloud"
},
"title": "Cont"
},
"appearance": {
"activeTheme": "Activ",
"themes": {
"blue": "Albastru",
"default": "Implicit",
"gray": "Gri",
"red": "Roșu",
"teal": "Albastru verziu"
},
"title": "Aparență"
},
"connections": {
"server": {
"description": "Dacă doriți să vă conectați la un backend personalizat pentru a vă stoca datele, activați acest lucru și furnizați adresa URL.",
"label": "Server personalizat",
"urlLabel": "Adresa URL personalizată a serverului"
},
"title": "Conexiuni",
"workers": {
"addButton": "Adaugă un nou muncitor",
"description": "Pentru ca aplicația să funcționeze, tot traficul este direcționat prin proxy. Activați acest lucru dacă doriți să vă aduceți proprii lucrători.",
"emptyState": "Niciun muncitor incă, adaugă unu",
"label": "Utilizați lucrători proxy personalizați",
"urlLabel": "Adresele URL ale lucrătorilor",
"urlPlaceholder": "https://"
}
},
"locale": {
"language": "Limba aplicației",
"languageDescription": "Limbajul aplicat întregii aplicații.",
"title": "Local"
},
"reset": "Resetare",
"save": "Salvează",
"sidebar": {
"info": {
"appVersion": "Versiunea aplicației",
"backendUrl": "URL de backend",
"backendVersion": "Versiunea backend",
"hostname": "Numele gazdei",
"insecure": "Nesigur",
"notLoggedIn": "Nu sunteți autentificat",
"secure": "Securizat",
"title": "Informația aplicației",
"unknownVersion": "Necunoscut",
"userId": "ID-ul utilizatorului"
}
},
"subtitles": {
"backgroundLabel": "Opacitatea fundalului",
"colorLabel": "Culoare",
"previewQuote": "nu trebuie să mă tem. Frica este ucigașul minții.",
"textSizeLabel": "Dimensiunea textului",
"title": "Subtitluri"
},
"unsaved": "Aveți modificări nesalvate" "unsaved": "Aveți modificări nesalvate"
} }
} }

View File

@ -24,10 +24,18 @@
"createAccount": "У вас ещё нет аккаунта? <0>Создайте учётную запись.</0>", "createAccount": "У вас ещё нет аккаунта? <0>Создайте учётную запись.</0>",
"deviceNameLabel": "Имя устройства", "deviceNameLabel": "Имя устройства",
"deviceNamePlaceholder": "Личный телефон", "deviceNamePlaceholder": "Личный телефон",
"generate": {
"description": "Твоя фраза работает как твой пароль и имя. Сделай чтобы она была в защите чтобы ты смог зайти снова в аккаунт",
"next": "Я сохранил мою фразу",
"passphraseFrameLabel": "Фраза",
"title": "Твоя фраза"
},
"hasAccount": "У вас уже есть аккаунт? <0>Войдите здесь.</0>", "hasAccount": "У вас уже есть аккаунт? <0>Войдите здесь.</0>",
"login": { "login": {
"description": "Пожалуйста напишите вашу фразу чтобы зайти в аккаунт",
"deviceLengthError": "Введите имя устройства", "deviceLengthError": "Введите имя устройства",
"passphraseLabel": "12-словная парольная фраза", "passphraseLabel": "12-словная парольная фраза",
"passphrasePlaceholder": "Фраза",
"submit": "Авторизоваться", "submit": "Авторизоваться",
"title": "Войдите в свой аккаунт", "title": "Войдите в свой аккаунт",
"validationError": "Неверная или неполная парольная фраза" "validationError": "Неверная или неполная парольная фраза"
@ -43,17 +51,25 @@
} }
}, },
"trust": { "trust": {
"failed": {
"text": "Ты её конфигурировал правильно?",
"title": "Не удалось связаться с сервером"
},
"host": "Вы подключаетесь к <0>{{hostname}}</0> - пожалуйста, подтвердите, что вы доверяете ему, прежде чем создавать учётную запись", "host": "Вы подключаетесь к <0>{{hostname}}</0> - пожалуйста, подтвердите, что вы доверяете ему, прежде чем создавать учётную запись",
"no": "Вернуться назад", "no": "Вернуться назад",
"title": "Доверяете ли вы этому серверу?", "title": "Доверяете ли вы этому серверу?",
"yes": "Я доверяю этому серверу" "yes": "Я доверяю этому серверу"
}, },
"verify": { "verify": {
"description": "Пожалуйста, введите фразу, полученную ранее, чтобы подтвердить, что вы ее сохранили, и создать свой аккаунт",
"invalidData": "Дата инвалидная",
"noMatch": "Парольная фраза не совпадает",
"register": "Создать учётную запись" "register": "Создать учётную запись"
} }
}, },
"errors": { "errors": {
"details": "Подробности ошибки", "details": "Подробности ошибки",
"reloadPage": "Перезагрузить страницу",
"showError": "Показать сведения об ошибке" "showError": "Показать сведения об ошибке"
}, },
"footer": { "footer": {
@ -84,9 +100,13 @@
"continueWatching": { "continueWatching": {
"sectionTitle": "Продолжить просмотр" "sectionTitle": "Продолжить просмотр"
}, },
"mediaList": {
"stopEditing": "Завершить редактирование"
},
"search": { "search": {
"allResults": "Это все, что у нас есть!", "allResults": "Это все, что у нас есть!",
"loading": "Загрузка..." "loading": "Загрузка...",
"sectionTitle": "Результаты поиска"
} }
}, },
"media": { "media": {
@ -112,6 +132,9 @@
"close": "Закрыть" "close": "Закрыть"
}, },
"player": { "player": {
"back": {
"default": "Вернуться на главную"
},
"menus": { "menus": {
"downloads": { "downloads": {
"downloadSubtitle": "Скачать текущие субтитры", "downloadSubtitle": "Скачать текущие субтитры",
@ -119,6 +142,8 @@
}, },
"episodes": { "episodes": {
"button": "Эпизоды", "button": "Эпизоды",
"emptyState": "В этом сезоне нет ни одной серии, загляните позже!",
"episodeBadge": "Э{{episode}}",
"loadingError": "Ошибка при загрузке сезона", "loadingError": "Ошибка при загрузке сезона",
"loadingList": "Загрузка...", "loadingList": "Загрузка...",
"loadingTitle": "Загрузка..." "loadingTitle": "Загрузка..."
@ -132,6 +157,7 @@
}, },
"settings": { "settings": {
"downloadItem": "Скачать", "downloadItem": "Скачать",
"enableSubtitles": "Включить субтитры",
"playbackItem": "Настройки воспроизведения", "playbackItem": "Настройки воспроизведения",
"qualityItem": "Качество", "qualityItem": "Качество",
"sourceItem": "Видео источники", "sourceItem": "Видео источники",
@ -139,9 +165,16 @@
"videoSection": "Настройки видео" "videoSection": "Настройки видео"
}, },
"subtitles": { "subtitles": {
"settings": {
"backlink": "Пользовательские субтитры"
},
"title": "Субтитры" "title": "Субтитры"
} }
}, },
"nextEpisode": {
"cancel": "Отмена",
"next": "След. эпизод"
},
"playbackError": { "playbackError": {
"badge": "Ошибка воспроизведения", "badge": "Ошибка воспроизведения",
"errors": { "errors": {
@ -154,6 +187,8 @@
"settings": { "settings": {
"account": { "account": {
"accountDetails": { "accountDetails": {
"deviceNameLabel": "Имя устройства",
"editProfile": "Редактировать",
"logoutButton": "Выйти" "logoutButton": "Выйти"
}, },
"actions": { "actions": {
@ -169,6 +204,7 @@
}, },
"devices": { "devices": {
"deviceNameLabel": "Имя устройства", "deviceNameLabel": "Имя устройства",
"failed": "Не удалось загрузить сеансы",
"removeDevice": "Удалить", "removeDevice": "Удалить",
"title": "Устройства" "title": "Устройства"
}, },
@ -185,7 +221,7 @@
"title": "Аккаунт" "title": "Аккаунт"
}, },
"appearance": { "appearance": {
"activeTheme": "Активная тема", "activeTheme": "Активная",
"themes": { "themes": {
"blue": "Cиний", "blue": "Cиний",
"default": "Стандартный", "default": "Стандартный",
@ -221,6 +257,7 @@
"sidebar": { "sidebar": {
"info": { "info": {
"appVersion": "Версия приложения", "appVersion": "Версия приложения",
"hostname": "Имя хоста",
"notLoggedIn": "Вы не авторизованы", "notLoggedIn": "Вы не авторизованы",
"secure": "Безопасный", "secure": "Безопасный",
"title": "Информация о приложении", "title": "Информация о приложении",

View File

@ -206,7 +206,8 @@
"episodeBadge": "Е{{episode}}", "episodeBadge": "Е{{episode}}",
"loadingError": "Помилка завантаження сезону", "loadingError": "Помилка завантаження сезону",
"loadingList": "Завантаження...", "loadingList": "Завантаження...",
"loadingTitle": "Завантаження..." "loadingTitle": "Завантаження...",
"unairedEpisodes": "Один або кілька епізодів у цьому сезоні недоступні, оскільки вони ще не вийшли в ефір."
}, },
"playback": { "playback": {
"speedLabel": "Швидкість відтворення", "speedLabel": "Швидкість відтворення",
@ -258,6 +259,10 @@
} }
}, },
"metadata": { "metadata": {
"api": {
"text": "Не вдалося завантажити метадані API, перевірте підключення до Інтернету.",
"title": "Не вдалося завантажити метадані API"
},
"failed": { "failed": {
"badge": "Не вдалося", "badge": "Не вдалося",
"homeButton": "Повернутися на головну", "homeButton": "Повернутися на головну",
@ -307,6 +312,12 @@
"remaining": "{{timeLeft}} залишилось • Закінчити в {{timeFinished, datetime}}", "remaining": "{{timeLeft}} залишилось • Закінчити в {{timeFinished, datetime}}",
"shortRegular": "{{timeWatched}}", "shortRegular": "{{timeWatched}}",
"shortRemaining": "-{{timeLeft}}" "shortRemaining": "-{{timeLeft}}"
},
"turnstile": {
"description": "Будь ласка, переконайтеся, що ви людина, заповнивши капчу праворуч. Це робиться для безпеки movie-web!",
"error": "Не вдалося підтвердити вашу людяність. Будь ласка, спробуйте ще раз.",
"title": "Ми повинні переконатися, що ви людина.",
"verifyingHumanity": "Перевіряємо вашу людяність..."
} }
}, },
"screens": { "screens": {
@ -323,7 +334,7 @@
"textWithReset": "Сталася помилка при завантаженні вашого профілю з вашого сервера, чи бажаєте повернутись на стандартний сервер?" "textWithReset": "Сталася помилка при завантаженні вашого профілю з вашого сервера, чи бажаєте повернутись на стандартний сервер?"
}, },
"migration": { "migration": {
"failed": "Сталася помилка під час міграції даних", "failed": "Сталася помилка під час міграції даних.",
"inProgress": "Будь ласка, зачекайте, відбувається міграція ваших даних. Це не повинно зайняти багато часу." "inProgress": "Будь ласка, зачекайте, відбувається міграція ваших даних. Це не повинно зайняти багато часу."
} }
}, },
@ -386,7 +397,7 @@
"title": "З'єднання", "title": "З'єднання",
"workers": { "workers": {
"addButton": "Додати нового працівника", "addButton": "Додати нового працівника",
"description": "Щоб додаток працював, весь трафік маршрутизується через проксі-сервери. Увімкніть це, якщо ви хочете використовувати власні працівникию", "description": "Щоб додаток працював, весь трафік маршрутизується через проксі-сервери. Увімкніть це, якщо ви хочете використовувати власні проксі воркери.",
"emptyState": "Немає працівників", "emptyState": "Немає працівників",
"label": "Використовувати власних проксі-працівників", "label": "Використовувати власних проксі-працівників",
"urlLabel": "URL-у працівника", "urlLabel": "URL-у працівника",

View File

@ -1,4 +1,61 @@
{ {
"about": {
"description": "movie-web là một ứng dụng web tìm kiếm các truyền pháp trực tuyến trên internet. Nhóm phát triển ứng dụng này nhắm đến một cách tiêu thụ nội dung chủ yếu là đơn giản hơn.",
"faqTitle": "Các câu hỏi thường gặp",
"q1": {
"body": "movie-web không lưu trữ bất kì nội dung nào. Khi bạn bấm vào một cái gì đó để xem, ứng dụng sẽ tìm kiếm nội dung đó trên internet (Trên màn hình tải và trong tab 'nguồn video' bạn sẽ tìm thấy nguồn đang được dùng). Nội dung không bao giờ được tải lên trên movie-web, mọi thứ đều thông qua cơ chế tìm kiếm này.",
"title": "Nội dung đến từ đâu?"
},
"q2": {
"body": "Việc yêu cầu một chương trình truyền hình hoặc phim là bất khả thi bởi vì movie-web không quản lý nội dung nào. Tất cả nội dung được truyền thông qua các nguồn trên internet.",
"title": "Tôi có thể yêu cầu một chương trình truyền hình hoặc phim ở đâu?"
},
"q3": {
"body": "Các kết quả tìm kiếm được cung cấp bởi The Movie Database (TMDB) và hiện lên bất kể các nguồn của trang thực sự có lưu trữ nội dung hay không.",
"title": "Tại sao kết quả tìm kiếm hiển thị chương trình truyền hình hoặc phim nhưng tôi không thể chơi nó?"
},
"title": "Về movie-web"
},
"actions": {
"copied": "Đã sao chép",
"copy": "Sao chép"
},
"auth": {
"createAccount": "Chưa có tài khoản? <0>Hãy tạo tài khoản.</0>",
"deviceNameLabel": "Tên thiết bị",
"deviceNamePlaceholder": "Điện thoại cá nhân",
"generate": {
"description": "Mật ngữ của bạn đóng vai trò là tên người dùng và mật khẩu của bạn. Hãy giữ nó an toàn vì bạn sẽ cần nhập nó để đăng nhập vào tài khoản của bạn",
"next": "Tôi đã lưu giữ mật ngữ của mình",
"passphraseFrameLabel": "Mật ngữ",
"title": "Mật ngữ của bạn"
},
"hasAccount": "Đã có tài khoản? <0>Hãy đăng nhập.</0>",
"login": {
"description": "Hãy nhập mật ngữ của bạn để đăng nhập vào tài khoản",
"deviceLengthError": "Hãy nhập tên thiết bị",
"passphraseLabel": "Mật ngữ gồm 12 từ",
"passphrasePlaceholder": "Mật ngữ",
"submit": "Đăng nhập",
"title": "Đăng nhập vào tài khoản của bạn",
"validationError": "Mật ngữ không chính xác hoặc không đầy đủ"
},
"register": {
"information": {
"color1": "Màu hồ sơ số một",
"color2": "Màu hồ sơ số hai",
"header": "Hãy nhập tên cho thiết bị của bạn và chọn màu sắc và biểu tượng người dùng",
"icon": "Biểu tượng người dùng",
"next": "Tiếp theo",
"title": "Thông tin tài khoản"
}
},
"trust": {
"failed": {
"text": "Bạn đã lắp đặt nó một cách chính xác chưa?"
}
}
},
"global": { "global": {
"name": "movie-web" "name": "movie-web"
}, },

View File

@ -259,6 +259,10 @@
} }
}, },
"metadata": { "metadata": {
"api": {
"text": "无法载入 API 元数据,请检查您的互联网连接。",
"title": "载入 API 元数据失败"
},
"failed": { "failed": {
"badge": "失败", "badge": "失败",
"homeButton": "返回首页", "homeButton": "返回首页",
@ -308,6 +312,12 @@
"remaining": "剩余 {{timeLeft}} • 完结于 {{timeFinished, datetime}}", "remaining": "剩余 {{timeLeft}} • 完结于 {{timeFinished, datetime}}",
"shortRegular": "{{timeWatched}}", "shortRegular": "{{timeWatched}}",
"shortRemaining": "-{{timeLeft}}" "shortRemaining": "-{{timeLeft}}"
},
"turnstile": {
"description": "请完成右侧的验证码以验证您是人类。这是为了确保 movie-web 的安全!",
"error": "验证失败。请重试。",
"title": "我们需要验证您是人类。",
"verifyingHumanity": "正在验证您是否为人类…"
} }
}, },
"screens": { "screens": {

View File

@ -15,14 +15,14 @@ export function FlagIcon(props: FlagIconProps) {
if (props.langCode === "tok") if (props.langCode === "tok")
return ( return (
<div className="w-8 h-6 rounded bg-[#c8e1ed] flex justify-center items-center"> <div className="w-8 h-6 rounded bg-[#c8e1ed] flex justify-center items-center">
<img src="/tokiPona.svg" className="w-7 h-5" /> <img src="/flags/tokiPona.svg" className="w-7 h-5" />
</div> </div>
); );
if (props.langCode === "pirate") if (props.langCode === "pirate")
return ( return (
<div className="w-8 h-6 rounded bg-[#2E3439] flex justify-center items-center"> <div className="w-8 h-6 rounded bg-[#2E3439] flex justify-center items-center">
<img src="/skull.svg" className="w-4 h-4" /> <img src="/flags/skull.svg" className="w-4 h-4" />
</div> </div>
); );
@ -37,6 +37,14 @@ export function FlagIcon(props: FlagIconProps) {
</div> </div>
); );
// Galicia - Not a country (Is a region of Spain) so have to add the flag manually
if (props.langCode === "gl-ES")
return (
<div className="w-8 h-6 rounded bg-[#2E3439] flex justify-center items-center">
<img src="/flags/galicia.svg" className="rounded" />
</div>
);
let backgroundClass = "bg-video-context-flagBg"; let backgroundClass = "bg-video-context-flagBg";
if (countryCode === "np") backgroundClass = "bg-white"; if (countryCode === "np") backgroundClass = "bg-white";

View File

@ -1,6 +1,7 @@
import { useCallback, useState } from "react"; import { useCallback, useState } from "react";
import { useTranslation } from "react-i18next"; import { useTranslation } from "react-i18next";
import { Avatar } from "@/components/Avatar";
import { Button } from "@/components/buttons/Button"; import { Button } from "@/components/buttons/Button";
import { ColorPicker, initialColor } from "@/components/form/ColorPicker"; import { ColorPicker, initialColor } from "@/components/form/ColorPicker";
import { IconPicker, initialIcon } from "@/components/form/IconPicker"; import { IconPicker, initialIcon } from "@/components/form/IconPicker";
@ -55,7 +56,13 @@ export function AccountCreatePart(props: AccountCreatePartProps) {
return ( return (
<LargeCard> <LargeCard>
<LargeCardText <LargeCardText
icon={<Icon icon={Icons.USER} />} icon={
<Avatar
profile={{ colorA, colorB, icon: userIcon }}
iconClass="text-3xl"
sizeClass="w-16 h-16"
/>
}
title={t("auth.register.information.title") ?? undefined} title={t("auth.register.information.title") ?? undefined}
> >
{t("auth.register.information.header")} {t("auth.register.information.header")}

View File

@ -9,7 +9,6 @@ import {
scrapePartsToProviderMetric, scrapePartsToProviderMetric,
useReportProviders, useReportProviders,
} from "@/backend/helpers/report"; } from "@/backend/helpers/report";
import { Icon, Icons } from "@/components/Icon";
import { Loading } from "@/components/layout/Loading"; import { Loading } from "@/components/layout/Loading";
import { import {
ScrapeCard, ScrapeCard,
@ -21,7 +20,8 @@ import {
useListCenter, useListCenter,
useScrape, useScrape,
} from "@/hooks/useProviderScrape"; } from "@/hooks/useProviderScrape";
import { LargeTextPart } from "@/pages/parts/util/LargeTextPart";
import { WarningPart } from "../util/WarningPart";
export interface ScrapingProps { export interface ScrapingProps {
media: ScrapeMedia; media: ScrapeMedia;
@ -88,15 +88,7 @@ export function ScrapingPart(props: ScrapingProps) {
currentProviderIndex = sourceOrder.length - 1; currentProviderIndex = sourceOrder.length - 1;
if (failedStartScrape) if (failedStartScrape)
return ( return <WarningPart>{t("player.turnstile.error")}</WarningPart>;
<LargeTextPart
iconSlot={
<Icon className="text-type-danger text-2xl" icon={Icons.WARNING} />
}
>
{t("player.turnstile.error")}
</LargeTextPart>
);
return ( return (
<div <div

View File

@ -1,5 +1,6 @@
import { useTranslation } from "react-i18next"; import { useTranslation } from "react-i18next";
import { Avatar } from "@/components/Avatar";
import { Button } from "@/components/buttons/Button"; import { Button } from "@/components/buttons/Button";
import { ColorPicker } from "@/components/form/ColorPicker"; import { ColorPicker } from "@/components/form/ColorPicker";
import { IconPicker } from "@/components/form/IconPicker"; import { IconPicker } from "@/components/form/IconPicker";
@ -24,9 +25,20 @@ export function ProfileEditModal(props: ProfileEditModalProps) {
return ( return (
<Modal id={props.id}> <Modal id={props.id}>
<ModalCard> <ModalCard>
<Heading2 className="!mt-0"> <div className="flex justify-between items-center mb-9">
<Heading2 className="!mt-0 !mb-0">
{t("settings.account.profile.title")} {t("settings.account.profile.title")}
</Heading2> </Heading2>
<Avatar
profile={{
colorA: props.colorA,
colorB: props.colorB,
icon: props.userIcon,
}}
iconClass="text-2xl"
sizeClass="w-12 h-12"
/>
</div>
<div className="space-y-6"> <div className="space-y-6">
<ColorPicker <ColorPicker
label={t("settings.account.profile.firstColor")} label={t("settings.account.profile.firstColor")}

View File

@ -0,0 +1,14 @@
import { Icon, Icons } from "@/components/Icon";
import { BlurEllipsis } from "@/pages/layouts/SubPageLayout";
export function WarningPart(props: { children: React.ReactNode }) {
return (
<div className="flex flex-col justify-center items-center h-screen text-center font-medium">
<BlurEllipsis />
<Icon className="text-type-danger text-2xl" icon={Icons.WARNING} />
<div className="max-w-[19rem] mt-3 mb-12 text-type-secondary">
{props.children}
</div>
</div>
);
}

View File

@ -10,7 +10,7 @@ const resources = Object.fromEntries(
Object.entries(locales).map((entry) => [entry[0], { translation: entry[1] }]), Object.entries(locales).map((entry) => [entry[0], { translation: entry[1] }]),
); );
i18n.use(initReactI18next).init({ i18n.use(initReactI18next).init({
fallbackLng: "en-US", fallbackLng: "en",
resources, resources,
interpolation: { interpolation: {
escapeValue: false, // not needed for react as it escapes by default escapeValue: false, // not needed for react as it escapes by default

View File

@ -5,55 +5,46 @@ const languageOrder = ["en", "hi", "fr", "de", "nl", "pt"];
// mapping of language code to country code. // mapping of language code to country code.
// multiple mappings can exist, since languages are spoken in multiple countries. // multiple mappings can exist, since languages are spoken in multiple countries.
// This mapping purely exists to prioritize a country over another in languages. // This mapping purely exists to prioritize a country over another in languages where the base language code does
// not contain a region (i.e. if the language code is zh-Hant where Hant is a script) or if the region in the language code is incorrect
// iso639_1 -> iso3166 Alpha-2 // iso639_1 -> iso3166 Alpha-2
const countryPriority: Record<string, string> = { const countryPriority: Record<string, string> = {
en: "gb",
nl: "nl",
fr: "fr",
de: "de",
pt: "pt",
ar: "sa",
es: "es",
zh: "cn", zh: "cn",
ko: "kr",
ta: "lk",
gl: "es",
}; };
// list of iso639_1 Alpha-2 codes used as default languages // list of iso639_1 Alpha-2 codes used as default languages
const defaultLanguageCodes: string[] = [ const defaultLanguageCodes: string[] = [
"en-US", "ar-SA",
"bg-BG",
"bn-BD",
"cs-CZ", "cs-CZ",
"de-DE", "de-DE",
"el-GR",
"en-US",
"es-ES",
"et-EE",
"fa-IR",
"fr-FR", "fr-FR",
"pt-BR", "gl-ES",
"gu-IN",
"he-IL",
"id-ID",
"it-IT", "it-IT",
"ja-JP",
"ko-KR",
"lv-LV",
"ne-NP",
"nl-NL", "nl-NL",
"pl-PL", "pl-PL",
"pt-BR",
"ru-RU",
"sl-SI",
"sv-SE",
"ta-LK",
"th-TH",
"tr-TR", "tr-TR",
"vi-VN", "vi-VN",
"zh-CN", "zh-CN",
"he-IL",
"sv-SE",
"lv-LV",
"th-TH",
"ne-NP",
"ar-SA",
"es-ES",
"et-EE",
"bg-BG",
"bn-BD",
"el-GR",
"fa-IR",
"gu-IN",
"id-ID",
"ja-JP",
"ko-KR",
"sl-SI",
"ta-LK",
"ru-RU",
"gl-ES",
]; ];
export interface LocaleInfo { export interface LocaleInfo {
@ -90,7 +81,7 @@ function populateLanguageCode(language: string): string {
} }
/** /**
* @param locale idk what kinda code this takes, anytihhng in ietf format I guess * @param locale idk what kinda code this takes, anything in ietf format I guess
* @returns pretty format for language, null if it no info can be found for language * @returns pretty format for language, null if it no info can be found for language
*/ */
export function getPrettyLanguageNameFromLocale(locale: string): string | null { export function getPrettyLanguageNameFromLocale(locale: string): string | null {
@ -106,12 +97,12 @@ export function getPrettyLanguageNameFromLocale(locale: string): string | null {
} }
/** /**
* Sort locale codes by occurance, rest on alphabetical order * Sort locale codes by occurrence, rest on alphabetical order
* @param langCodes list language codes to sort * @param langCodes list language codes to sort
* @returns sorted version of inputted list * @returns sorted version of inputted list
*/ */
export function sortLangCodes(langCodes: string[]) { export function sortLangCodes(langCodes: string[]) {
const languagesOrder = [...languageOrder].reverse(); // Reverse is neccesary, not sure why const languagesOrder = [...languageOrder].reverse(); // Reverse is necessary, not sure why
const results = langCodes.sort((a, b) => { const results = langCodes.sort((a, b) => {
const langOrderA = languagesOrder.findIndex( const langOrderA = languagesOrder.findIndex(
@ -135,23 +126,37 @@ export function sortLangCodes(langCodes: string[]) {
*/ */
export function getCountryCodeForLocale(locale: string): string | null { export function getCountryCodeForLocale(locale: string): string | null {
let output: LanguageObj | null = null as any as LanguageObj; let output: LanguageObj | null = null as any as LanguageObj;
const tag = getTag(locale, true); const tag = getTag(populateLanguageCode(locale), true);
if (!tag?.language?.Subtag) return null; if (!tag?.language?.Subtag) return null;
// this function isnt async, so its garuanteed to work like this // this function isn't async, so its guaranteed to work like this
countryLanguages.getLanguage(tag.language.Subtag, (_err, lang) => { countryLanguages.getLanguage(tag.language.Subtag, (_err, lang) => {
if (lang) output = lang; if (lang) output = lang;
}); });
if (!output) return null; if (!output) return null;
const priority = countryPriority[output.iso639_1.toLowerCase()]; const priority = countryPriority[output.iso639_1.toLowerCase()];
if (output.countries.length === 0) { if (output.countries.length === 0) {
return priority ?? null; return priority ?? null;
} }
if (priority) { if (priority) {
const priotizedCountry = output.countries.find( const prioritizedCountry = output.countries.find(
(v) => v.code_2.toLowerCase() === priority, (v) => v.code_2.toLowerCase() === priority,
); );
if (priotizedCountry) return priotizedCountry.code_2.toLowerCase(); if (prioritizedCountry) return prioritizedCountry.code_2.toLowerCase();
}
// If the language contains a region, check that against the countries and
// return the region if it matches
const regionSubtag = tag?.region?.Subtag.toLowerCase();
if (regionSubtag) {
const regionCode = output.countries.find(
(c) =>
c.code_2.toLowerCase() === regionSubtag ||
c.code_3.toLowerCase() === regionSubtag,
);
if (regionCode) return regionCode.code_2.toLowerCase();
} }
return output.countries[0].code_2.toLowerCase(); return output.countries[0].code_2.toLowerCase();
} }