mirror of
https://github.com/recloudstream/cloudstream.git
synced 2024-08-15 01:53:11 +00:00
make CI add langs from weblate
This commit is contained in:
parent
2ba78eb37e
commit
9c956f68f9
6 changed files with 79 additions and 32 deletions
47
.github/locales.py
vendored
Normal file
47
.github/locales.py
vendored
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
import re
|
||||||
|
import glob
|
||||||
|
import requests
|
||||||
|
|
||||||
|
|
||||||
|
SETTINGS_PATH = "app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsGeneral.kt"
|
||||||
|
START_MARKER = "/* begin language list */"
|
||||||
|
END_MARKER = "/* end language list */"
|
||||||
|
XML_NAME = "app/src/main/res/values-"
|
||||||
|
ISO_MAP_URL = "https://gist.githubusercontent.com/Josantonius/b455e315bc7f790d14b136d61d9ae469/raw"
|
||||||
|
INDENT = " "*4
|
||||||
|
|
||||||
|
iso_map = requests.get(ISO_MAP_URL, timeout=300).json()
|
||||||
|
|
||||||
|
# Load settings file
|
||||||
|
src = open(SETTINGS_PATH, "r", encoding='utf-8').read()
|
||||||
|
before_src, rest = src.split(START_MARKER)
|
||||||
|
rest, after_src = rest.split(END_MARKER)
|
||||||
|
|
||||||
|
# Load already added langs
|
||||||
|
languages = {}
|
||||||
|
for lang in re.finditer(r'Triple\("(.*)", "(.*)", "(.*)"\)', rest):
|
||||||
|
flag, name, iso = lang.groups()
|
||||||
|
languages[iso] = (flag, name)
|
||||||
|
|
||||||
|
# Add not yet added langs
|
||||||
|
for folder in glob.glob(f"{XML_NAME}*"):
|
||||||
|
iso = folder[len(XML_NAME):]
|
||||||
|
if iso not in languages.keys():
|
||||||
|
languages[iso] = ("", iso_map.get(iso.lower(),iso))
|
||||||
|
|
||||||
|
# Create triples
|
||||||
|
triples = []
|
||||||
|
for iso in sorted(languages.keys()):
|
||||||
|
flag, name = languages[iso]
|
||||||
|
triples.append(f'{INDENT}Triple("{flag}", "{name}", "{iso}"),')
|
||||||
|
|
||||||
|
# Update settings file
|
||||||
|
open(SETTINGS_PATH, "w+",encoding='utf-8').write(
|
||||||
|
before_src +
|
||||||
|
START_MARKER +
|
||||||
|
"\n" +
|
||||||
|
"\n".join(triples) +
|
||||||
|
"\n" +
|
||||||
|
END_MARKER +
|
||||||
|
after_src
|
||||||
|
)
|
27
.github/workflows/update_locales.yml
vendored
Normal file
27
.github/workflows/update_locales.yml
vendored
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
name: Update locale lists
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
paths:
|
||||||
|
- '**.xml'
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: "locale-list"
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
create:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Edit files
|
||||||
|
run: |
|
||||||
|
python3 .github/locales.py
|
||||||
|
- name: Commit to the repo
|
||||||
|
run: |
|
||||||
|
git config user.name "GitHub Actions"
|
||||||
|
git config user.email "actions@github.com"
|
||||||
|
git add .
|
||||||
|
# "echo" returns true so the build succeeds, even if no changed files
|
||||||
|
git commit -m 'chore: update list of locales' || echo
|
||||||
|
git push
|
29
README.md
29
README.md
|
@ -21,32 +21,3 @@
|
||||||
<a href="https://hosted.weblate.org/engage/cloudstream/">
|
<a href="https://hosted.weblate.org/engage/cloudstream/">
|
||||||
<img src="https://hosted.weblate.org/widgets/cloudstream/-/app/multi-auto.svg" alt="Translation status" />
|
<img src="https://hosted.weblate.org/widgets/cloudstream/-/app/multi-auto.svg" alt="Translation status" />
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<!--
|
|
||||||
***The list of supported languages:***
|
|
||||||
* 🇱🇧 Arabic
|
|
||||||
* 🇧🇬 Bulgarian
|
|
||||||
* 🇨🇳 Chinese Simplified
|
|
||||||
* 🇹🇼 Chinese Traditional
|
|
||||||
* 🇭🇷 Croatian
|
|
||||||
* 🇨🇿 Czech
|
|
||||||
* 🇳🇱 Dutch
|
|
||||||
* 🇬🇧 English
|
|
||||||
* 🇫🇷 French
|
|
||||||
* 🇩🇪 German
|
|
||||||
* 🇬🇷 Greek
|
|
||||||
* 🇮🇳 Hindi
|
|
||||||
* 🇮🇩 Indonesian
|
|
||||||
* 🇮🇹 Italian
|
|
||||||
* 🇲🇰 Macedonian
|
|
||||||
* 🇮🇳 Malayalam
|
|
||||||
* 🇳🇴 Norsk
|
|
||||||
* 🇵🇱 Polish
|
|
||||||
* 🇧🇷 Portuguese (Brazil)
|
|
||||||
* 🇷🇴 Romanian
|
|
||||||
* 🇪🇸 Spanish
|
|
||||||
* 🇸🇪 Swedish
|
|
||||||
* 🇵🇭 Tagalog
|
|
||||||
* 🇹🇷 Turkish
|
|
||||||
* 🇻🇳 Vietnamese
|
|
||||||
-->
|
|
||||||
|
|
|
@ -116,7 +116,7 @@ object CommonActivity {
|
||||||
* when setting the app language.
|
* when setting the app language.
|
||||||
**/
|
**/
|
||||||
val appLanguageExceptions = hashMapOf(
|
val appLanguageExceptions = hashMapOf(
|
||||||
"zh_TW" to Locale.TRADITIONAL_CHINESE
|
"zh-TW" to Locale.TRADITIONAL_CHINESE
|
||||||
)
|
)
|
||||||
|
|
||||||
fun setLocale(context: Context?, languageCode: String?) {
|
fun setLocale(context: Context?, languageCode: String?) {
|
||||||
|
|
|
@ -55,6 +55,7 @@ fun getCurrentLocale(context: Context): String {
|
||||||
// Emoji Character Encoding Data --> C/C++/Java Src
|
// Emoji Character Encoding Data --> C/C++/Java Src
|
||||||
// https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes leave blank for auto
|
// https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes leave blank for auto
|
||||||
val appLanguages = arrayListOf(
|
val appLanguages = arrayListOf(
|
||||||
|
/* begin language list */
|
||||||
Triple("", "Spanish", "es"),
|
Triple("", "Spanish", "es"),
|
||||||
Triple("", "English", "en"),
|
Triple("", "English", "en"),
|
||||||
Triple("", "Viet Nam", "vi"),
|
Triple("", "Viet Nam", "vi"),
|
||||||
|
@ -76,12 +77,13 @@ val appLanguages = arrayListOf(
|
||||||
Triple("", "Romanian", "ro"),
|
Triple("", "Romanian", "ro"),
|
||||||
Triple("", "Italian", "it"),
|
Triple("", "Italian", "it"),
|
||||||
Triple("", "Chinese Simplified", "zh"),
|
Triple("", "Chinese Simplified", "zh"),
|
||||||
Triple("\uD83C\uDDF9\uD83C\uDDFC", "Chinese Traditional", "zh_TW"),
|
Triple("\uD83C\uDDF9\uD83C\uDDFC", "Chinese Traditional", "zh-TW"),
|
||||||
Triple("\uD83C\uDDEE\uD83C\uDDE9", "Indonesian", "in"),
|
Triple("\uD83C\uDDEE\uD83C\uDDE9", "Indonesian", "in"),
|
||||||
Triple("", "Czech", "cs"),
|
Triple("", "Czech", "cs"),
|
||||||
Triple("", "Croatian", "hr"),
|
Triple("", "Croatian", "hr"),
|
||||||
Triple("", "Bulgarian", "bg"),
|
Triple("", "Bulgarian", "bg"),
|
||||||
Triple("", "Bengali", "bn"),
|
Triple("", "Bengali", "bn"),
|
||||||
|
/* end language list */
|
||||||
).sortedBy { it.second } //ye, we go alphabetical, so ppl don't put their lang on top
|
).sortedBy { it.second } //ye, we go alphabetical, so ppl don't put their lang on top
|
||||||
|
|
||||||
class SettingsGeneral : PreferenceFragmentCompat() {
|
class SettingsGeneral : PreferenceFragmentCompat() {
|
||||||
|
|
Loading…
Reference in a new issue