mirror of
https://github.com/jellyfin/jellyfin-kodi.git
synced 2025-09-18 12:34:39 +00:00
Merge pull request #1032 from oddstr13/fix-translations
Fix translation file naming
This commit is contained in:
commit
b972bfbe24
34 changed files with 204 additions and 1277 deletions
|
@ -4,7 +4,7 @@ msgstr ""
|
|||
"Last-Translator: Justin Tamblyn <just1689@gmail.com>\n"
|
||||
"Language-Team: Afrikaans <https://translate.jellyfin.org/projects/jellyfin/"
|
||||
"jellyfin-kodi/af/>\n"
|
||||
"Language: af\n"
|
||||
"Language: af_za\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
|
@ -4,7 +4,7 @@ msgstr ""
|
|||
"Last-Translator: Hasan Abdulaal <hassan.b2018@gmail.com>\n"
|
||||
"Language-Team: Arabic <https://translate.jellyfin.org/projects/jellyfin/"
|
||||
"jellyfin-kodi/ar/>\n"
|
||||
"Language: ar\n"
|
||||
"Language: ar_sa\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
|
@ -4,7 +4,7 @@ msgstr ""
|
|||
"Last-Translator: \"Troj@\" <d.iwowi.b@gmail.com>\n"
|
||||
"Language-Team: Belarusian <https://translate.jellyfin.org/projects/jellyfin/"
|
||||
"jellyfin-kodi/be/>\n"
|
||||
"Language: be\n"
|
||||
"Language: be_by\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
|
@ -4,7 +4,7 @@ msgstr ""
|
|||
"Last-Translator: Zhelyan Radoev <jelioradoev@gmail.com>\n"
|
||||
"Language-Team: Bulgarian <https://translate.jellyfin.org/projects/jellyfin/"
|
||||
"jellyfin-kodi/bg/>\n"
|
||||
"Language: bg\n"
|
||||
"Language: bg_bg\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
|
@ -4,7 +4,7 @@ msgstr ""
|
|||
"Last-Translator: Gargotaire <gargots@gmail.com>\n"
|
||||
"Language-Team: Catalan <https://translate.jellyfin.org/projects/jellyfin/"
|
||||
"jellyfin-kodi/ca/>\n"
|
||||
"Language: ca\n"
|
||||
"Language: ca_es\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
|
@ -4,7 +4,7 @@ msgstr ""
|
|||
"Last-Translator: Brett Healey <Bearach.goll@gmail.com>\n"
|
||||
"Language-Team: Welsh <https://translate.jellyfin.org/projects/jellyfin/"
|
||||
"jellyfin-kodi/cy/>\n"
|
||||
"Language: cy\n"
|
||||
"Language: cy_gb\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
|
@ -4,7 +4,7 @@ msgstr ""
|
|||
"Last-Translator: TheLostDims <mailtilmark@gmail.com>\n"
|
||||
"Language-Team: Danish <https://translate.jellyfin.org/projects/jellyfin/"
|
||||
"jellyfin-kodi/da/>\n"
|
||||
"Language: da\n"
|
||||
"Language: da_dk\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
|
@ -1,212 +0,0 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"PO-Revision-Date: 2025-09-08 00:52+0000\n"
|
||||
"Last-Translator: Andi Chandler <andi@gowling.com>\n"
|
||||
"Language-Team: English (United Kingdom) <https://translate.jellyfin.org/"
|
||||
"projects/jellyfin/jellyfin-kodi/en_GB/>\n"
|
||||
"Language: en_GB\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.11.4\n"
|
||||
|
||||
msgctxt "#30001"
|
||||
msgid "Server name"
|
||||
msgstr "Server name"
|
||||
|
||||
msgctxt "#29999"
|
||||
msgid "Jellyfin for Kodi"
|
||||
msgstr "Jellyfin for Kodi"
|
||||
|
||||
msgctxt "#30000"
|
||||
msgid "Server address"
|
||||
msgstr "Server address"
|
||||
|
||||
msgctxt "#30002"
|
||||
msgid "Force HTTP playback"
|
||||
msgstr "Force HTTP playback"
|
||||
|
||||
msgctxt "#30003"
|
||||
msgid "Login method"
|
||||
msgstr "Login method"
|
||||
|
||||
msgctxt "#30004"
|
||||
msgid "Log level"
|
||||
msgstr "Log level"
|
||||
|
||||
msgctxt "#30016"
|
||||
msgid "Device name"
|
||||
msgstr "Device name"
|
||||
|
||||
msgctxt "#30022"
|
||||
msgid "Advanced"
|
||||
msgstr "Advanced"
|
||||
|
||||
msgctxt "#30024"
|
||||
msgid "Username"
|
||||
msgstr "Username"
|
||||
|
||||
msgctxt "#30091"
|
||||
msgid "Confirm file deletion"
|
||||
msgstr "Confirm file deletion"
|
||||
|
||||
msgctxt "#30114"
|
||||
msgid "Offer delete after playback"
|
||||
msgstr "Offer delete after playback"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "#30115"
|
||||
msgid "For Episodes"
|
||||
msgstr "For Episodes"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "#30116"
|
||||
msgid "For Movies"
|
||||
msgstr "For Movies"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "#30160"
|
||||
msgid "Max stream bitrate"
|
||||
msgstr "Max stream bitrate"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "#30161"
|
||||
msgid "Preferred video codec"
|
||||
msgstr "Preferred video codec"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "#30163"
|
||||
msgid "Audio bitrate"
|
||||
msgstr "Audio bitrate"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "#30164"
|
||||
msgid "Audio max channels"
|
||||
msgstr "Audio max channels"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "#30165"
|
||||
msgid "Allow burned subtitles"
|
||||
msgstr "Allow burned subtitles"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "#30174"
|
||||
msgid "Recently Added Movies"
|
||||
msgstr "Recently Added Movies"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "#30179"
|
||||
msgid "Next Episodes"
|
||||
msgstr "Next Episodes"
|
||||
|
||||
msgctxt "#30180"
|
||||
msgid "Favorite Movies"
|
||||
msgstr "Favorite Movies"
|
||||
|
||||
msgctxt "#30181"
|
||||
msgid "Favorite Shows"
|
||||
msgstr "Favorite Shows"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "#30182"
|
||||
msgid "Favorite Episodes"
|
||||
msgstr "Favourite Episodes"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "#30185"
|
||||
msgid "Boxsets"
|
||||
msgstr "Boxsets"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "#30189"
|
||||
msgid "Unwatched Movies"
|
||||
msgstr "Unwatched Movies"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "#30229"
|
||||
msgid "Random Items"
|
||||
msgstr "Random Items"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "#30170"
|
||||
msgid "Recently Added TV Shows"
|
||||
msgstr "Recently Added TV Shows"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "#30157"
|
||||
msgid "Enable enhanced artwork (i.e. cover art)"
|
||||
msgstr "Enable enhanced artwork (i.e. cover art)"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "#30162"
|
||||
msgid "Preferred audio codec"
|
||||
msgstr "Preferred audio codec"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "#30175"
|
||||
msgid "Recently Added Episodes"
|
||||
msgstr "Recently Added Episodes"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "#30171"
|
||||
msgid "In Progress TV Shows"
|
||||
msgstr "In Progress TV Shows"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "#30177"
|
||||
msgid "In Progress Movies"
|
||||
msgstr "In Progress Movies"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "#30178"
|
||||
msgid "In Progress Episodes"
|
||||
msgstr "In Progress Episodes"
|
||||
|
||||
msgctxt "#30230"
|
||||
msgid "Recommended Items"
|
||||
msgstr "Recommended Items"
|
||||
|
||||
msgctxt "#30235"
|
||||
msgid "Interface"
|
||||
msgstr "Interface"
|
||||
|
||||
msgctxt "#30239"
|
||||
msgid "Reset local Kodi database"
|
||||
msgstr "Reset local Kodi database"
|
||||
|
||||
msgctxt "#30249"
|
||||
msgid "Enable welcome message"
|
||||
msgstr "Enable welcome message"
|
||||
|
||||
msgctxt "#30253"
|
||||
msgid "Favourite Home Videos"
|
||||
msgstr "Favourite Home Videos"
|
||||
|
||||
msgctxt "#30255"
|
||||
msgid "Favourite Albums"
|
||||
msgstr "Favourite Albums"
|
||||
|
||||
msgctxt "#30251"
|
||||
msgid "Recently added Home Videos"
|
||||
msgstr "Recently added Home Videos"
|
||||
|
||||
msgctxt "#30252"
|
||||
msgid "Recently added Photos"
|
||||
msgstr "Recently added Photos"
|
||||
|
||||
msgctxt "#30254"
|
||||
msgid "Favourite Photos"
|
||||
msgstr "Favourite Photos"
|
||||
|
||||
msgctxt "#30256"
|
||||
msgid "Recently added Music videos"
|
||||
msgstr "Recently added Music videos"
|
||||
|
||||
msgctxt "#30257"
|
||||
msgid "In progress Music videos"
|
||||
msgstr "In progress Music videos"
|
||||
|
||||
msgctxt "#30258"
|
||||
msgid "Unwatched Music videos"
|
||||
msgstr "Unwatched Music videos"
|
|
@ -10,7 +10,7 @@ msgstr ""
|
|||
"Last-Translator: WWWesten <wwwesten@gmail.com>\n"
|
||||
"Language-Team: English <https://translate.jellyfin.org/projects/jellyfin/"
|
||||
"jellyfin-kodi/en/>\n"
|
||||
"Language: en\n"
|
||||
"Language: en_gb\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
msgid ""
|
||||
msgstr "X-Generator: Weblate\nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit"
|
|
@ -4,7 +4,7 @@ msgstr ""
|
|||
"Last-Translator: Alpha <alphagma@gmail.com>\n"
|
||||
"Language-Team: Spanish (Argentina) <https://translate.jellyfin.org/projects/"
|
||||
"jellyfin/jellyfin-kodi/es_AR/>\n"
|
||||
"Language: es_AR\n"
|
||||
"Language: es_ar\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
|
@ -4,7 +4,7 @@ msgstr ""
|
|||
"Last-Translator: rimasx <riks_12@hot.ee>\n"
|
||||
"Language-Team: Estonian <https://translate.jellyfin.org/projects/jellyfin/"
|
||||
"jellyfin-kodi/et/>\n"
|
||||
"Language: et\n"
|
||||
"Language: et_ee\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
|
@ -4,7 +4,7 @@ msgstr ""
|
|||
"Last-Translator: Canopus <sohilj23@yahoo.com>\n"
|
||||
"Language-Team: Persian <https://translate.jellyfin.org/projects/jellyfin/"
|
||||
"jellyfin-kodi/fa/>\n"
|
||||
"Language: fa\n"
|
||||
"Language: fa_ir\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
|
@ -4,7 +4,7 @@ msgstr ""
|
|||
"Last-Translator: RoboDoc <theonlyrobodoc@gmail.com>\n"
|
||||
"Language-Team: Finnish <https://translate.jellyfin.org/projects/jellyfin/"
|
||||
"jellyfin-kodi/fi/>\n"
|
||||
"Language: fi\n"
|
||||
"Language: fi_fi\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
|
@ -4,7 +4,7 @@ msgstr ""
|
|||
"Last-Translator: Aindriú Mac Giolla Eoin <aindriu80@gmail.com>\n"
|
||||
"Language-Team: Irish <https://translate.jellyfin.org/projects/jellyfin/"
|
||||
"jellyfin-kodi/ga/>\n"
|
||||
"Language: ga\n"
|
||||
"Language: ga_ie\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
|
@ -4,7 +4,7 @@ msgstr ""
|
|||
"Last-Translator: Tal Sarid <sarid.tal@gmail.com>\n"
|
||||
"Language-Team: Hebrew <https://translate.jellyfin.org/projects/jellyfin/"
|
||||
"jellyfin-kodi/he/>\n"
|
||||
"Language: he\n"
|
||||
"Language: he_il\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
|
@ -4,7 +4,7 @@ msgstr ""
|
|||
"Last-Translator: Milo Ivir <mail@milotype.de>\n"
|
||||
"Language-Team: Croatian <https://translate.jellyfin.org/projects/jellyfin/"
|
||||
"jellyfin-kodi/hr/>\n"
|
||||
"Language: hr\n"
|
||||
"Language: hr_hr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
|
@ -4,7 +4,7 @@ msgstr ""
|
|||
"Last-Translator: Nirwan <ny.unpar@gmail.com>\n"
|
||||
"Language-Team: Indonesian <https://translate.jellyfin.org/projects/jellyfin/"
|
||||
"jellyfin-kodi/id/>\n"
|
||||
"Language: id\n"
|
||||
"Language: id_id\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
|
@ -1,2 +0,0 @@
|
|||
msgid ""
|
||||
msgstr "X-Generator: Weblate\nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit"
|
|
@ -1,2 +0,0 @@
|
|||
msgid ""
|
||||
msgstr "X-Generator: Weblate\nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit"
|
|
@ -4,7 +4,7 @@ msgstr ""
|
|||
"Last-Translator: WWWesten <wwwesten@gmail.com>\n"
|
||||
"Language-Team: Kazakh <https://translate.jellyfin.org/projects/jellyfin/"
|
||||
"jellyfin-kodi/kk/>\n"
|
||||
"Language: kk\n"
|
||||
"Language: kk_kz\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
|
@ -4,7 +4,7 @@ msgstr ""
|
|||
"Last-Translator: sharanchius <sharanchius@gmail.com>\n"
|
||||
"Language-Team: Lithuanian <https://translate.jellyfin.org/projects/jellyfin/"
|
||||
"jellyfin-kodi/lt/>\n"
|
||||
"Language: lt\n"
|
||||
"Language: lt_lt\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
|
@ -4,7 +4,7 @@ msgstr ""
|
|||
"Last-Translator: Kliment <kliment.lambevski@gmail.com>\n"
|
||||
"Language-Team: Macedonian <https://translate.jellyfin.org/projects/jellyfin/"
|
||||
"jellyfin-kodi/mk/>\n"
|
||||
"Language: mk\n"
|
||||
"Language: mk_mk\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
|
@ -4,7 +4,7 @@ msgstr ""
|
|||
"Last-Translator: Battseren Badral <bbattseren88@gmail.com>\n"
|
||||
"Language-Team: Mongolian <https://translate.jellyfin.org/projects/jellyfin/"
|
||||
"jellyfin-kodi/mn/>\n"
|
||||
"Language: mn\n"
|
||||
"Language: mn_mn\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
|
@ -4,7 +4,7 @@ msgstr ""
|
|||
"Last-Translator: WWWesten <wwwesten@gmail.com>\n"
|
||||
"Language-Team: Norwegian Nynorsk <https://translate.jellyfin.org/projects/"
|
||||
"jellyfin/jellyfin-kodi/nn/>\n"
|
||||
"Language: nn\n"
|
||||
"Language: nn_no\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
File diff suppressed because it is too large
Load diff
|
@ -4,7 +4,7 @@ msgstr ""
|
|||
"Last-Translator: Acrotos <alexandrufly@gmail.com>\n"
|
||||
"Language-Team: Romanian <https://translate.jellyfin.org/projects/jellyfin/"
|
||||
"jellyfin-kodi/ro/>\n"
|
||||
"Language: ro\n"
|
||||
"Language: ro_ro\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
|
@ -4,7 +4,7 @@ msgstr ""
|
|||
"Last-Translator: SaddFox <filip.rutar@gmail.com>\n"
|
||||
"Language-Team: Slovenian <https://translate.jellyfin.org/projects/jellyfin/"
|
||||
"jellyfin-kodi/sl/>\n"
|
||||
"Language: sl\n"
|
||||
"Language: sl_si\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
|
@ -4,7 +4,7 @@ msgstr ""
|
|||
"Last-Translator: Ajoro <folkeeert@gmail.com>\n"
|
||||
"Language-Team: Swedish <https://translate.jellyfin.org/projects/jellyfin/"
|
||||
"jellyfin-kodi/sv/>\n"
|
||||
"Language: sv\n"
|
||||
"Language: sv_se\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
|
@ -4,7 +4,7 @@ msgstr ""
|
|||
"Last-Translator: Oatavandi <oatavandi@gmail.com>\n"
|
||||
"Language-Team: Tamil <https://translate.jellyfin.org/projects/jellyfin/"
|
||||
"jellyfin-kodi/ta/>\n"
|
||||
"Language: ta\n"
|
||||
"Language: ta_in\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
|
@ -4,7 +4,7 @@ msgstr ""
|
|||
"Last-Translator: Mykhailo Zaichkov <mykhailo.zaichkov@gmail.com>\n"
|
||||
"Language-Team: Ukrainian <https://translate.jellyfin.org/projects/jellyfin/"
|
||||
"jellyfin-kodi/uk/>\n"
|
||||
"Language: uk\n"
|
||||
"Language: uk_ua\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
|
@ -4,7 +4,7 @@ msgstr ""
|
|||
"Last-Translator: Nguyen Thanh <congquynh284@yahoo.com>\n"
|
||||
"Language-Team: Vietnamese <https://translate.jellyfin.org/projects/jellyfin/"
|
||||
"jellyfin-kodi/vi/>\n"
|
||||
"Language: vi\n"
|
||||
"Language: vi_vn\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
|
@ -4,7 +4,7 @@ msgstr ""
|
|||
"Last-Translator: jhih_yu <jy@jhihyulin.live>\n"
|
||||
"Language-Team: Chinese (Traditional) <https://translate.jellyfin.org/"
|
||||
"projects/jellyfin/jellyfin-kodi/zh_Hant/>\n"
|
||||
"Language: zh_Hant\n"
|
||||
"Language: zh_tw\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
176
tests/test_translations.py
Normal file
176
tests/test_translations.py
Normal file
|
@ -0,0 +1,176 @@
|
|||
import os
|
||||
from pathlib import Path
|
||||
|
||||
import pytest
|
||||
|
||||
|
||||
BASEDIR = Path(__file__).parent.parent
|
||||
TRANSLATIONS_BASE = BASEDIR / "resources" / "language"
|
||||
|
||||
TRANSLATION_DIRS = os.listdir(TRANSLATIONS_BASE)
|
||||
|
||||
KNOWN_KODI_LANGUAGE_CODES = {
|
||||
"en_gb", # Base language
|
||||
"es_es",
|
||||
"ta_in",
|
||||
"fr_ca",
|
||||
"en_nz",
|
||||
"eo",
|
||||
"fa_ir",
|
||||
"szl",
|
||||
"nb_no",
|
||||
"vi_vn",
|
||||
"sk_sk",
|
||||
"mn_mn",
|
||||
"ru_ru",
|
||||
"fi_fi",
|
||||
"nl_nl",
|
||||
"lv_lv",
|
||||
"hi_in",
|
||||
"pt_pt",
|
||||
"de_de",
|
||||
"it_it",
|
||||
"ja_jp",
|
||||
"ms_my",
|
||||
"sr_rs@latin",
|
||||
"is_is",
|
||||
"pl_pl",
|
||||
"fo_fo",
|
||||
"si_lk",
|
||||
"es_mx",
|
||||
"hu_hu",
|
||||
"pt_br",
|
||||
"en_us",
|
||||
"ar_sa",
|
||||
"tg_tj",
|
||||
"el_gr",
|
||||
"ast_es",
|
||||
"es_ar",
|
||||
"be_by",
|
||||
"af_za",
|
||||
"sv_se",
|
||||
"am_et",
|
||||
"my_mm",
|
||||
"fr_fr",
|
||||
"sq_al",
|
||||
"et_ee",
|
||||
"ga_ie",
|
||||
"ko_kr",
|
||||
"id_id",
|
||||
"gl_es",
|
||||
"bg_bg",
|
||||
"cs_cz",
|
||||
"eu_es",
|
||||
"fa_af",
|
||||
"ro_ro",
|
||||
"th_th",
|
||||
"zh_tw",
|
||||
"mi",
|
||||
"mt_mt",
|
||||
"ml_in",
|
||||
"uk_ua",
|
||||
"da_dk",
|
||||
"cy_gb",
|
||||
"az_az",
|
||||
"he_il",
|
||||
"kn_in",
|
||||
"zh_cn",
|
||||
"hy_am",
|
||||
"te_in",
|
||||
"hr_hr",
|
||||
"ca_es",
|
||||
"tr_tr",
|
||||
"bs_ba",
|
||||
"sr_rs",
|
||||
"uz_uz",
|
||||
"lt_lt",
|
||||
"os_os",
|
||||
"fil",
|
||||
"sl_si",
|
||||
"en_au",
|
||||
"mk_mk",
|
||||
}
|
||||
|
||||
ADDITIONAL_LANGUAGE_EXCEPTIONS = {
|
||||
"es_419", # Spanish, Latin America
|
||||
}
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"dir",
|
||||
TRANSLATION_DIRS,
|
||||
)
|
||||
def test_langcode_lower(dir: str):
|
||||
_, code = dir.rsplit(".", 1)
|
||||
assert code.islower()
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"dir",
|
||||
TRANSLATION_DIRS,
|
||||
)
|
||||
def test_langcode_country(dir: str):
|
||||
_, code = dir.rsplit(".", 1)
|
||||
|
||||
if (
|
||||
code not in KNOWN_KODI_LANGUAGE_CODES
|
||||
and code not in ADDITIONAL_LANGUAGE_EXCEPTIONS
|
||||
):
|
||||
for c in KNOWN_KODI_LANGUAGE_CODES:
|
||||
if code in c:
|
||||
print(f"Maybe {code} should be {c}?")
|
||||
|
||||
assert len(code) == 5
|
||||
assert "_" in code
|
||||
lang, country = code.split("_", 1)
|
||||
assert lang.isalpha()
|
||||
assert country.isalpha()
|
||||
|
||||
|
||||
def parse_language_headers(file):
|
||||
with open(file, "rt", encoding="utf-8") as fh:
|
||||
sections = {}
|
||||
section = None
|
||||
for line in fh:
|
||||
line = line.strip()
|
||||
if not line:
|
||||
break
|
||||
|
||||
if line[0] == "#":
|
||||
continue
|
||||
elif line[0] == '"':
|
||||
sections[section].append(line)
|
||||
else:
|
||||
section, value = line.split(None, 1)
|
||||
sections[section] = [value]
|
||||
|
||||
for section in sections.keys():
|
||||
sections[section] = "".join(
|
||||
[
|
||||
x[1:-1].replace('\\"', '"').replace("\\n", "\n")
|
||||
for x in sections[section]
|
||||
]
|
||||
)
|
||||
|
||||
d = {"file": file}
|
||||
for line in sections["msgstr"].split("\n"):
|
||||
line = line.strip()
|
||||
if not line:
|
||||
continue
|
||||
key, value = line.split(":", 1)
|
||||
d[key] = value.strip()
|
||||
|
||||
return d
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"dir",
|
||||
TRANSLATION_DIRS,
|
||||
)
|
||||
def test_langcode_matches(dir: str):
|
||||
_, code = dir.rsplit(".", 1)
|
||||
|
||||
headers = parse_language_headers(TRANSLATIONS_BASE / dir / "strings.po")
|
||||
|
||||
assert "Language" in headers
|
||||
assert headers["Language"] == code
|
Loading…
Add table
Add a link
Reference in a new issue