You've already forked ReZygisk
mirror of
https://github.com/PerformanC/ReZygisk.git
synced 2025-09-06 06:37:01 +00:00
improve: language system based on json file
This commit will introduce new language system based on json file for easier to translate using crowdin in the future, also fix webui cannot load
This commit is contained in:
6
TRANSLATOR.md
Normal file
6
TRANSLATOR.md
Normal file
@@ -0,0 +1,6 @@
|
||||
# 🌎 Translator
|
||||
- **en_US** by [@PerformanC (The PerformanC Organization)](https://github.com/PerformanC)
|
||||
- **pt_BR** by [@ThePedroo](https://github.com/ThePedroo)
|
||||
- **ro_RO** by [@ExtremeXT](https://github.com/ExtremeXT)
|
||||
- **ru_RU** by [@Emulond](https://github.com/Emulond)
|
||||
- **vi_VN** by [@RainyXeon](https://github.com/RainyXeon)
|
||||
@@ -171,13 +171,15 @@ androidComponents.onVariants { variant ->
|
||||
|
||||
set.add(Pair(root.file("webroot/js/list/module.js").asFile, null))
|
||||
set.add(Pair(root.file("webroot/js/list/settings.js").asFile, null))
|
||||
set.add(Pair(root.file("webroot/js/list/lang.js").asFile, null))
|
||||
set.add(Pair(root.file("webroot/js/list/language.js").asFile, null))
|
||||
|
||||
set.add(Pair(root.file("webroot/js/lang/en_US.js").asFile, null))
|
||||
set.add(Pair(root.file("webroot/js/lang/vi_VN.js").asFile, null))
|
||||
set.add(Pair(root.file("webroot/js/lang/index.js").asFile, null))
|
||||
set.add(Pair(root.file("webroot/languages/en_US/main.json").asFile, null))
|
||||
set.add(Pair(root.file("webroot/languages/pt_BR/main.json").asFile, null))
|
||||
set.add(Pair(root.file("webroot/languages/ro_RO/main.json").asFile, null))
|
||||
set.add(Pair(root.file("webroot/languages/ru_RU/main.json").asFile, null))
|
||||
set.add(Pair(root.file("webroot/languages/vi_VN/main.json").asFile, null))
|
||||
|
||||
set.add(Pair(root.file("webroot/js/modal/lang.js").asFile, null))
|
||||
set.add(Pair(root.file("webroot/js/modal/language.js").asFile, null))
|
||||
|
||||
set.add(Pair(root.file("webroot/css/index.css").asFile, null))
|
||||
|
||||
|
||||
@@ -122,13 +122,15 @@ extract "$ZIPFILE" 'webroot/js/language.js' "$MODPATH/webroot/js" true
|
||||
|
||||
extract "$ZIPFILE" 'webroot/js/list/module.js' "$MODPATH/webroot/js/list" true
|
||||
extract "$ZIPFILE" 'webroot/js/list/settings.js' "$MODPATH/webroot/js/list" true
|
||||
extract "$ZIPFILE" 'webroot/js/list/lang.js' "$MODPATH/webroot/js/list" true
|
||||
extract "$ZIPFILE" 'webroot/js/list/language.js' "$MODPATH/webroot/js/list" true
|
||||
|
||||
extract "$ZIPFILE" 'webroot/js/lang/en_US.js' "$MODPATH/webroot/js/lang" true
|
||||
extract "$ZIPFILE" 'webroot/js/lang/vi_VN.js' "$MODPATH/webroot/js/lang" true
|
||||
extract "$ZIPFILE" 'webroot/js/lang/index.js' "$MODPATH/webroot/js/lang" true
|
||||
extract "$ZIPFILE" 'webroot/languages/en_US/main.json' "$MODPATH/webroot/languages/en_US" true
|
||||
extract "$ZIPFILE" 'webroot/languages/pt_BR/main.json' "$MODPATH/webroot/languages/pt_BR" true
|
||||
extract "$ZIPFILE" 'webroot/languages/ro_RO/main.json' "$MODPATH/webroot/languages/ro_RO" true
|
||||
extract "$ZIPFILE" 'webroot/languages/ru_RU/main.json' "$MODPATH/webroot/languages/en_US" true
|
||||
extract "$ZIPFILE" 'webroot/languages/vi_VN/main.json' "$MODPATH/webroot/languages/vi_VN" true
|
||||
|
||||
extract "$ZIPFILE" 'webroot/js/modal/lang.js' "$MODPATH/webroot/js/modal" true
|
||||
extract "$ZIPFILE" 'webroot/js/modal/language.js' "$MODPATH/webroot/js/modal" true
|
||||
|
||||
extract "$ZIPFILE" 'webroot/css/index.css' "$MODPATH/webroot/css" true
|
||||
|
||||
|
||||
@@ -171,6 +171,14 @@ a {
|
||||
transform: scale(80%)
|
||||
}
|
||||
|
||||
.element_animation {
|
||||
transition: transform 0.15 ease-in-out;
|
||||
}
|
||||
|
||||
.element_animation:active {
|
||||
transform: scale(95%)
|
||||
}
|
||||
|
||||
/* Card type */
|
||||
.bright {
|
||||
border: 5px solid var(--bright);
|
||||
|
||||
@@ -8,9 +8,9 @@
|
||||
<script src="js/theme.js" type="module"></script>
|
||||
<script src="js/list/module.js" type="module"></script>
|
||||
<script src="js/list/settings.js" type="module"></script>
|
||||
<script src="js/list/lang.js" type="module"></script>
|
||||
<script src="js/list/language.js" type="module"></script>
|
||||
<script src="js/main.js" type="module"></script>
|
||||
<script src="js/modal/lang.js" type="module"></script>
|
||||
<script src="js/modal/language.js" type="module"></script>
|
||||
<link rel="stylesheet" href="css/index.css">
|
||||
</head>
|
||||
<body id="main_body">
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
/* INFO: Translated by @PerformanC (The PerformanC Organization) */
|
||||
|
||||
export const en_US = {
|
||||
langName: 'English (United States)',
|
||||
langModal: {
|
||||
header: 'Choose your new language'
|
||||
},
|
||||
infoCard: {
|
||||
status: {
|
||||
unknown: 'ReZygisk is at an unknown state!',
|
||||
notWorking: 'ReZygisk is not functioning!',
|
||||
ok: 'ReZygisk is fully functioning!',
|
||||
partially: 'ReZygisk is partially functioning!'
|
||||
},
|
||||
version: 'Version',
|
||||
root: 'Root Implementation',
|
||||
zygote: {
|
||||
injected: 'Injected',
|
||||
notInjected: 'Not Injected',
|
||||
unknown: 'Unknown'
|
||||
}
|
||||
},
|
||||
moduleCard: {
|
||||
header: 'Modules',
|
||||
arch: 'Arch: '
|
||||
},
|
||||
settings: {
|
||||
header: 'Settings',
|
||||
daemonButton: {
|
||||
start: 'Start',
|
||||
stop: 'Stop',
|
||||
exit: 'Exit'
|
||||
}
|
||||
},
|
||||
cmdErrors: {
|
||||
ptrace64: 'Error while executing zygisk-ptrace64',
|
||||
ptrace32: 'Error while executing zygisk-ptrace32',
|
||||
ls: 'Error while listing files in zygisk folder of module',
|
||||
cat: 'Error while reading module.prop from module',
|
||||
find: 'Error while finding zygisk modules'
|
||||
},
|
||||
global: {
|
||||
unknown: 'Unknown'
|
||||
}
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
import { en_US } from './en_US.js'
|
||||
import { pt_BR } from './pt_BR.js'
|
||||
import { ro_RO } from './ro_RO.js'
|
||||
import { ru_RU } from './ru_RU.js'
|
||||
import { vi_VN } from './vi_VN.js'
|
||||
|
||||
export const lang = {
|
||||
en_US,
|
||||
pt_BR,
|
||||
ro_RO,
|
||||
ru_RU,
|
||||
vi_VN
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
/* INFO: Translated by @ThePedroo */
|
||||
|
||||
export const pt_BR = {
|
||||
langName: 'Português (Brasil)',
|
||||
langModal: {
|
||||
header: 'Escolha sua nova língua'
|
||||
},
|
||||
infoCard: {
|
||||
status: {
|
||||
unknown: 'ReZygisk está em um estado desconhecido!',
|
||||
notWorking: 'ReZygisk não está funcionando!',
|
||||
ok: 'ReZygisk está totalmente funcionando!',
|
||||
partially: 'ReZygisk está parcialmente funcionando!'
|
||||
},
|
||||
version: 'Versão',
|
||||
root: 'Implementação de root',
|
||||
zygote: {
|
||||
injected: 'Injetado',
|
||||
notInjected: 'Não Injetado',
|
||||
unknown: 'Desconhecido'
|
||||
}
|
||||
},
|
||||
moduleCard: {
|
||||
header: 'Módulos',
|
||||
arch: 'Arquitetura: '
|
||||
},
|
||||
settings: {
|
||||
header: 'Configurações',
|
||||
daemonButton: {
|
||||
start: 'Iniciar',
|
||||
stop: 'Parar',
|
||||
exit: 'Sair'
|
||||
}
|
||||
},
|
||||
cmdErrors: {
|
||||
ptrace64: 'Erro ao executar zygisk-ptrace64',
|
||||
ptrace32: 'Erro ao executar zygisk-ptrace32',
|
||||
ls: 'Erro ao listar arquivos na pasta zygisk do módulo',
|
||||
cat: 'Erro ao ler module.prop do módulo',
|
||||
find: 'Erro ao encontrar módulos que usam o zygisk'
|
||||
},
|
||||
global: {
|
||||
unknown: 'Desconhecido'
|
||||
}
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
/* INFO: Translated by @ExtremeXT */
|
||||
|
||||
export const ro_RO = {
|
||||
langName: 'Română (România)',
|
||||
langModal: {
|
||||
header: 'Alegeți limba prestabilită'
|
||||
},
|
||||
infoCard: {
|
||||
status: {
|
||||
unknown: 'ReZygisk este într-o stare necunoscută!',
|
||||
notWorking: 'ReZygisk nu este în funcțiune!',
|
||||
ok: 'ReZygisk funcționează în totalitate!',
|
||||
partially: 'ReZygisk funcționează parțial!'
|
||||
},
|
||||
version: 'Versiune',
|
||||
root: 'Implementare Root',
|
||||
zygote: {
|
||||
injected: 'Injectat',
|
||||
notInjected: 'Neinjectat',
|
||||
unknown: 'Necunoscut'
|
||||
}
|
||||
},
|
||||
moduleCard: {
|
||||
header: 'Module',
|
||||
arch: 'Arhitectură: '
|
||||
},
|
||||
settings: {
|
||||
header: 'Setări',
|
||||
daemonButton: {
|
||||
start: 'Start',
|
||||
stop: 'Stop',
|
||||
exit: 'Ieșire'
|
||||
}
|
||||
},
|
||||
cmdErrors: {
|
||||
ptrace64: 'Eroare în timpul executării zygisk-ptrace64',
|
||||
ptrace32: 'Eroare în timpul executării zygisk-ptrace32',
|
||||
ls: 'Eroare în timpul listării fișierelor din folderul Zygisk al modulului',
|
||||
cat: 'Eroare în timpul citirii fișierului module.prop din modul',
|
||||
find: 'Eroare la găsirea modulelor Zygisk'
|
||||
},
|
||||
global: {
|
||||
unknown: 'Necunoscut'
|
||||
}
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
/* INFO: Translated by Emulond Argent (@Emulond) */
|
||||
|
||||
export const ru_RU = {
|
||||
langName: 'Русский (Россия)',
|
||||
langModal: {
|
||||
header: 'Выберите Ваш новый язык'
|
||||
},
|
||||
infoCard: {
|
||||
status: {
|
||||
unknown: 'ReZygisk в неопределённом состоянии!',
|
||||
notWorking: 'ReZygisk не функционирует!',
|
||||
ok: 'ReZygisk работает в штатном режиме!',
|
||||
partially: 'ReZygisk функционирует частично!'
|
||||
},
|
||||
version: 'Версия',
|
||||
root: 'Реализация ROOT',
|
||||
zygote: {
|
||||
injected: 'Инъецирован',
|
||||
notInjected: 'Не инъецирован',
|
||||
unknown: 'Неизвестно'
|
||||
}
|
||||
},
|
||||
moduleCard: {
|
||||
header: 'Модули',
|
||||
arch: 'Архи-ра: '
|
||||
},
|
||||
settings: {
|
||||
header: 'Настройки',
|
||||
daemonButton: {
|
||||
start: 'Старт',
|
||||
stop: 'Пауза',
|
||||
exit: 'Стоп'
|
||||
}
|
||||
},
|
||||
cmdErrors: {
|
||||
ptrace64: 'Ошибка выполнения zygisk-ptrace64',
|
||||
ptrace32: 'Ошибка выполнения zygisk-ptrace32',
|
||||
ls: 'Ошибка перечисления файлов в zygisk папке модуля',
|
||||
cat: 'Ошибка чтения module.prop модуля',
|
||||
find: 'Ошибка обнаружения zygisk модулей'
|
||||
},
|
||||
global: {
|
||||
unknown: 'Неизвестно'
|
||||
}
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
/* INFO: Translated by @RainyXeon */
|
||||
|
||||
export const vi_VN = {
|
||||
langName: 'Tiếng Việt',
|
||||
langModal: {
|
||||
header: 'Chọn ngôn ngữ mới của bạn'
|
||||
},
|
||||
infoCard: {
|
||||
status: {
|
||||
unknown: 'ReZygisk đang ở trạng thái không xác định!',
|
||||
notWorking: 'ReZygisk không hoạt động!',
|
||||
ok: 'ReZygisk đang hoạt động!',
|
||||
partially: 'ReZygisk đang hoạt động một phần!'
|
||||
},
|
||||
version: 'Phiên bản',
|
||||
root: 'Hệ thống root',
|
||||
zygote: {
|
||||
injected: 'Đã can thiệp',
|
||||
notInjected: 'Chưa can thiệp',
|
||||
unknown: 'Không xác định'
|
||||
}
|
||||
},
|
||||
moduleCard: {
|
||||
header: 'Mô Đun',
|
||||
arch: 'Loại: '
|
||||
},
|
||||
settings: {
|
||||
header: 'Cài đặt',
|
||||
daemonButton: {
|
||||
start: 'Chạy',
|
||||
stop: 'Dừng',
|
||||
exit: 'Thoát'
|
||||
}
|
||||
},
|
||||
cmdErrors: {
|
||||
ptrace64: 'Đã xảy ra lỗi khi chạy zygisk-ptrace64',
|
||||
ptrace32: 'Đã xảy ra lỗi khi chạy zygisk-ptrace32',
|
||||
ls: 'Đã xảy ra lỗi khi liệt kê tệp tin của mô đun trong thư mục zygisk',
|
||||
cat: 'Đã xảy ra lỗi khi đọc tệp tin module.prop từ mô đun',
|
||||
find: 'Đã xảy ra lỗi khi tìm mô đun thuộc zygisk'
|
||||
},
|
||||
global: {
|
||||
unknown: 'Không xác định'
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,3 @@
|
||||
import { lang } from './lang/index.js'
|
||||
|
||||
/* INFO: info card */
|
||||
const version_info_title = document.getElementById('version_info_title')
|
||||
const version_code = document.getElementById('version_code')
|
||||
@@ -26,9 +24,9 @@ const rezygisk_state = document.getElementById('rezygisk_state')
|
||||
const zygote32_status_div = document.getElementById('zygote32_status')
|
||||
const zygote64_status_div = document.getElementById('zygote64_status')
|
||||
|
||||
export function setNewLang(locate, initialize) {
|
||||
const old_translations = lang[initialize ? 'en_US' : localStorage.getItem('/system/language')]
|
||||
const new_lang = lang[locate]
|
||||
export async function setNewLanguage(locate, initialize) {
|
||||
const old_translations = await getTranslations(initialize ? 'en_US' : localStorage.getItem('/system/language'))
|
||||
const new_lang = await getTranslations(locate)
|
||||
|
||||
/* INFO: info card */
|
||||
version_info_title.innerHTML = new_lang.infoCard.version
|
||||
@@ -126,6 +124,16 @@ export function setNewLang(locate, initialize) {
|
||||
}
|
||||
}
|
||||
|
||||
export function getTranslations(locate) {
|
||||
return lang[locate]
|
||||
}
|
||||
export async function getTranslations(locate) {
|
||||
const translateData = await fetch(`./languages/${locate}/main.json`)
|
||||
.catch(error => reject(error))
|
||||
return await translateData.json()
|
||||
}
|
||||
|
||||
export const avaliableLanguages = [
|
||||
"en_US", /* INFO: Translated by @PerformanC (The PerformanC Organization) */
|
||||
"pt_BR", /* INFO: Translated by @ThePedroo */
|
||||
"ro_RO", /* INFO: Translated by @ExtremeXT */
|
||||
"ru_RU", /* INFO: Translated by Emulond Argent (@Emulond) */
|
||||
"vi_VN", /* INFO: Translated by @RainyXeon (unexpected unresolved) */
|
||||
]
|
||||
@@ -1,27 +0,0 @@
|
||||
import { lang } from '../lang/index.js'
|
||||
import { setNewLang } from '../language.js'
|
||||
|
||||
const lang_list = document.getElementById('lang_modal_list')
|
||||
const target = document.getElementById('lang_modal')
|
||||
const key_list = Object.keys(lang)
|
||||
let index = 0
|
||||
|
||||
for (const lang_key of key_list) {
|
||||
index += 1
|
||||
|
||||
const value = lang[lang_key]
|
||||
lang_list.innerHTML += `
|
||||
<div lang_section="true" id="${lang_key}" class="${index === key_list.length ? '' : 'spliter'}" style="padding-top: 25px; padding-bottom: 25px; font-size: 1.3em;">
|
||||
${value.langName}
|
||||
</div>`
|
||||
}
|
||||
|
||||
document.addEventListener('click', (event) => {
|
||||
if (!event.target.getAttribute('lang_section')) return;
|
||||
|
||||
setNewLang(event.target.id)
|
||||
|
||||
target.style.top = '100%'
|
||||
localStorage.setItem('/cache/modal/language/state', 'closed')
|
||||
localStorage.setItem('/system/language', event.target.id)
|
||||
}, false)
|
||||
30
webroot/js/list/language.js
Normal file
30
webroot/js/list/language.js
Normal file
@@ -0,0 +1,30 @@
|
||||
import {
|
||||
avaliableLanguages,
|
||||
getTranslations,
|
||||
setNewLanguage
|
||||
} from '../language.js'
|
||||
const lang_list = document.getElementById('lang_modal_list')
|
||||
const target = document.getElementById('lang_modal')
|
||||
let index = 0
|
||||
|
||||
for (const langKey of avaliableLanguages) {
|
||||
index += 1
|
||||
|
||||
getTranslations(langKey).then(data => {
|
||||
lang_list.innerHTML += `
|
||||
<div lang-data="${langKey}" class="${index === avaliableLanguages.length ? '' : 'spliter'}" style="padding-top: 25px; padding-bottom: 25px; font-size: 1.3em;">
|
||||
<div lang-data="${langKey}" class="element_animation">${data.langName}</div>
|
||||
</div>`
|
||||
})
|
||||
}
|
||||
|
||||
document.addEventListener('click', async (event) => {
|
||||
const getLangLocate = event.target.getAttribute('lang-data')
|
||||
if (!getLangLocate || typeof getLangLocate !== "string") return;
|
||||
|
||||
await setNewLanguage(getLangLocate)
|
||||
|
||||
target.style.top = '100%'
|
||||
localStorage.setItem('/cache/modal/language/state', 'closed')
|
||||
localStorage.setItem('/system/language', getLangLocate)
|
||||
}, false)
|
||||
@@ -1,5 +1,5 @@
|
||||
import { fullScreen, exec, toast } from './kernelsu.js'
|
||||
import { setNewLang, getTranslations } from './language.js'
|
||||
import { setNewLanguage, getTranslations } from './language.js'
|
||||
|
||||
(async () => {
|
||||
const EXPECTED = 1
|
||||
@@ -10,9 +10,9 @@ import { setNewLang, getTranslations } from './language.js'
|
||||
let sys_lang = localStorage.getItem('/system/language')
|
||||
|
||||
if (!sys_lang) sys_lang = setLangData('en_US')
|
||||
if (sys_lang !== 'en_US') setNewLang(sys_lang, true)
|
||||
if (sys_lang !== 'en_US') await setNewLanguage(sys_lang, true)
|
||||
|
||||
const translations = getTranslations(sys_lang)
|
||||
const translations = await getTranslations(sys_lang)
|
||||
|
||||
const loading_screen = document.getElementById('loading_screen')
|
||||
|
||||
|
||||
43
webroot/languages/en_US/main.json
Normal file
43
webroot/languages/en_US/main.json
Normal file
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"langName": "English (United States)",
|
||||
"langModal": {
|
||||
"header": "Choose your new language"
|
||||
},
|
||||
"infoCard": {
|
||||
"status": {
|
||||
"unknown": "ReZygisk is at an unknown state!",
|
||||
"notWorking": "ReZygisk is not functioning!",
|
||||
"ok": "ReZygisk is fully functioning!",
|
||||
"partially": "ReZygisk is partially functioning!"
|
||||
},
|
||||
"version": "Version",
|
||||
"root": "Root Implementation",
|
||||
"zygote": {
|
||||
"injected": "Injected",
|
||||
"notInjected": "Not Injected",
|
||||
"unknown": "Unknown"
|
||||
}
|
||||
},
|
||||
"moduleCard": {
|
||||
"header": "Modules",
|
||||
"arch": "Arch: "
|
||||
},
|
||||
"settings": {
|
||||
"header": "Settings",
|
||||
"daemonButton": {
|
||||
"start": "Start",
|
||||
"stop": "Stop",
|
||||
"exit": "Exit"
|
||||
}
|
||||
},
|
||||
"cmdErrors": {
|
||||
"ptrace64": "Error while executing zygisk-ptrace64",
|
||||
"ptrace32": "Error while executing zygisk-ptrace32",
|
||||
"ls": "Error while listing files in zygisk folder of module",
|
||||
"cat": "Error while reading module.prop from module",
|
||||
"find": "Error while finding zygisk modules"
|
||||
},
|
||||
"global": {
|
||||
"unknown": "Unknown"
|
||||
}
|
||||
}
|
||||
43
webroot/languages/pt_BR/main.json
Normal file
43
webroot/languages/pt_BR/main.json
Normal file
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"langName": "Português (Brasil)",
|
||||
"langModal": {
|
||||
"header": "Escolha sua nova língua"
|
||||
},
|
||||
"infoCard": {
|
||||
"status": {
|
||||
"unknown": "ReZygisk está em um estado desconhecido!",
|
||||
"notWorking": "ReZygisk não está funcionando!",
|
||||
"ok": "ReZygisk está totalmente funcionando!",
|
||||
"partially": "ReZygisk está parcialmente funcionando!"
|
||||
},
|
||||
"version": "Versão",
|
||||
"root": "Implementação de root",
|
||||
"zygote": {
|
||||
"injected": "Injetado",
|
||||
"notInjected": "Não Injetado",
|
||||
"unknown": "Desconhecido"
|
||||
}
|
||||
},
|
||||
"moduleCard": {
|
||||
"header": "Módulos",
|
||||
"arch": "Arquitetura: "
|
||||
},
|
||||
"settings": {
|
||||
"header": "Configurações",
|
||||
"daemonButton": {
|
||||
"start": "Iniciar",
|
||||
"stop": "Parar",
|
||||
"exit": "Sair"
|
||||
}
|
||||
},
|
||||
"cmdErrors": {
|
||||
"ptrace64": "Erro ao executar zygisk-ptrace64",
|
||||
"ptrace32": "Erro ao executar zygisk-ptrace32",
|
||||
"ls": "Erro ao listar arquivos na pasta zygisk do módulo",
|
||||
"cat": "Erro ao ler module.prop do módulo",
|
||||
"find": "Erro ao encontrar módulos que usam o zygisk"
|
||||
},
|
||||
"global": {
|
||||
"unknown": "Desconhecido"
|
||||
}
|
||||
}
|
||||
43
webroot/languages/ro_RO/main.json
Normal file
43
webroot/languages/ro_RO/main.json
Normal file
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"langName": "Română (România)",
|
||||
"langModal": {
|
||||
"header": "Alegeți limba prestabilită"
|
||||
},
|
||||
"infoCard": {
|
||||
"status": {
|
||||
"unknown": "ReZygisk este într-o stare necunoscută!",
|
||||
"notWorking": "ReZygisk nu este în funcțiune!",
|
||||
"ok": "ReZygisk funcționează în totalitate!",
|
||||
"partially": "ReZygisk funcționează parțial!"
|
||||
},
|
||||
"version": "Versiune",
|
||||
"root": "Implementare Root",
|
||||
"zygote": {
|
||||
"injected": "Injectat",
|
||||
"notInjected": "Neinjectat",
|
||||
"unknown": "Necunoscut"
|
||||
}
|
||||
},
|
||||
"moduleCard": {
|
||||
"header": "Module",
|
||||
"arch": "Arhitectură: "
|
||||
},
|
||||
"settings": {
|
||||
"header": "Setări",
|
||||
"daemonButton": {
|
||||
"start": "Start",
|
||||
"stop": "Stop",
|
||||
"exit": "Ieșire"
|
||||
}
|
||||
},
|
||||
"cmdErrors": {
|
||||
"ptrace64": "Eroare în timpul executării zygisk-ptrace64",
|
||||
"ptrace32": "Eroare în timpul executării zygisk-ptrace32",
|
||||
"ls": "Eroare în timpul listării fișierelor din folderul Zygisk al modulului",
|
||||
"cat": "Eroare în timpul citirii fișierului module.prop din modul",
|
||||
"find": "Eroare la găsirea modulelor Zygisk"
|
||||
},
|
||||
"global": {
|
||||
"unknown": "Necunoscut"
|
||||
}
|
||||
}
|
||||
43
webroot/languages/ru_RU/main.json
Normal file
43
webroot/languages/ru_RU/main.json
Normal file
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"langName": "Русский (Россия)",
|
||||
"langModal": {
|
||||
"header": "Выберите Ваш новый язык"
|
||||
},
|
||||
"infoCard": {
|
||||
"status": {
|
||||
"unknown": "ReZygisk в неопределённом состоянии!",
|
||||
"notWorking": "ReZygisk не функционирует!",
|
||||
"ok": "ReZygisk работает в штатном режиме!",
|
||||
"partially": "ReZygisk функционирует частично!"
|
||||
},
|
||||
"version": "Версия",
|
||||
"root": "Реализация ROOT",
|
||||
"zygote": {
|
||||
"injected": "Инъецирован",
|
||||
"notInjected": "Не инъецирован",
|
||||
"unknown": "Неизвестно"
|
||||
}
|
||||
},
|
||||
"moduleCard": {
|
||||
"header": "Модули",
|
||||
"arch": "Архи-ра: "
|
||||
},
|
||||
"settings": {
|
||||
"header": "Настройки",
|
||||
"daemonButton": {
|
||||
"start": "Старт",
|
||||
"stop": "Пауза",
|
||||
"exit": "Стоп"
|
||||
}
|
||||
},
|
||||
"cmdErrors": {
|
||||
"ptrace64": "Ошибка выполнения zygisk-ptrace64",
|
||||
"ptrace32": "Ошибка выполнения zygisk-ptrace32",
|
||||
"ls": "Ошибка перечисления файлов в zygisk папке модуля",
|
||||
"cat": "Ошибка чтения module.prop модуля",
|
||||
"find": "Ошибка обнаружения zygisk модулей"
|
||||
},
|
||||
"global": {
|
||||
"unknown": "Неизвестно"
|
||||
}
|
||||
}
|
||||
43
webroot/languages/vi_VN/main.json
Normal file
43
webroot/languages/vi_VN/main.json
Normal file
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"langName": "Tiếng Việt",
|
||||
"langModal": {
|
||||
"header": "Chọn ngôn ngữ mới của bạn"
|
||||
},
|
||||
"infoCard": {
|
||||
"status": {
|
||||
"unknown": "ReZygisk đang ở trạng thái không xác định!",
|
||||
"notWorking": "ReZygisk không hoạt động!",
|
||||
"ok": "ReZygisk đang hoạt động!",
|
||||
"partially": "ReZygisk đang hoạt động một phần!"
|
||||
},
|
||||
"version": "Phiên bản",
|
||||
"root": "Hệ thống root",
|
||||
"zygote": {
|
||||
"injected": "Đã can thiệp",
|
||||
"notInjected": "Chưa can thiệp",
|
||||
"unknown": "Không xác định"
|
||||
}
|
||||
},
|
||||
"moduleCard": {
|
||||
"header": "Mô Đun",
|
||||
"arch": "Cấu trúc: "
|
||||
},
|
||||
"settings": {
|
||||
"header": "Cài đặt",
|
||||
"daemonButton": {
|
||||
"start": "Chạy",
|
||||
"stop": "Dừng",
|
||||
"exit": "Thoát"
|
||||
}
|
||||
},
|
||||
"cmdErrors": {
|
||||
"ptrace64": "Đã xảy ra lỗi khi chạy zygisk-ptrace64",
|
||||
"ptrace32": "Đã xảy ra lỗi khi chạy zygisk-ptrace32",
|
||||
"ls": "Đã xảy ra lỗi khi liệt kê tệp tin của mô đun trong thư mục zygisk",
|
||||
"cat": "Đã xảy ra lỗi khi đọc tệp tin module.prop từ mô đun",
|
||||
"find": "Đã xảy ra lỗi khi tìm mô đun thuộc zygisk"
|
||||
},
|
||||
"global": {
|
||||
"unknown": "Không xác định"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user