fix: localize user-facing and accessibility text (2/3) - #6025
Conversation
|
As a small follow-up addition, I instructed GPT5.6 to download and read a bunch of academic linguistic materials about Bakhtiari dialect phonology, orthography, and lexicon. Hopefully, it managed to clean up the majority of Persian and Arabic calques. If a native speaker can take a look, that would be great. |
|
rebase 到最新的 2dust:master |
Replace the remaining Persian confirmation fallbacks, correct stale or mismatched UI meanings, and normalize established Bakhtiari terms without translating xray-core identifiers. Primary source: Erik Anonby and Ashraf Asadi, Bakhtiari Studies II: Orthography (2018), sections 6.1.1, 6.8.1, 6.8.2, 6.8.7, and 6.8.9. https://www.diva-portal.org/smash/get/diva2%3A1231755/FULLTEXT02.pdf The standard recommends that "Arabic letters be retained for Bakhtiari words borrowed from Persian" and reports that speakers view soft d as "a defining feature of how the language is pronounced." Lexicon and phonology source: Erik Anonby and Ashraf Asadi, Bakhtiari Studies: Phonology, Text, Lexicon (2014). https://uu.diva-portal.org/smash/record.jsf?pid=diva2%3A758171 Historical corroboration: D. L. R. Lorimer, The Phonology of the Bakhtiari, Badakhshani, and Madaglashti Dialects of Modern Persian (1922). https://archive.org/details/phonologyofbakht06loriuoft
aae0a4e to
fba58ad
Compare
It's ready... |
| private fun launchCore(service: Service, vpnInterface: ParcelFileDescriptor?, isReload: Boolean = false) { | ||
| val guid = MmkvManager.getSelectServer() ?: error("No server selected") | ||
| val config = MmkvManager.decodeServerConfig(guid) ?: error("Failed to decode server config") | ||
| val guid = MmkvManager.getSelectServer() |
There was a problem hiding this comment.
我认为 core 里面这些字符串不应该处理。
因为这些有部分是会写入logcat ,这样会导致 log 中出现非英文内容; 且提示了给用户,用户也看不明白。
There was a problem hiding this comment.
Maybe we can separate user-visible error text and Logcat error text? See the new commit.
There was a problem hiding this comment.
看到了。
完全没有必要做的这样复杂,用户无需知道这么详细的错误信息;应该直接在最后提示启动失败,然后去查看日志,因为日志中才会有完整的内容。
There was a problem hiding this comment.
另外,这种单例和服务代码中,尽量还是不引入 string ,原来已有的地方也要考虑移除掉。
There was a problem hiding this comment.
另外,这种单例和服务代码中,尽量还是不引入 string ,原来已有的地方也要考虑移除掉。
Got it. I'll see what is left in terms of localization tomorrow. Looks like part 3 won't add anything. I'll probably just clean up unused strings added in part 2, and compile it to see how everything fits. Then we can call localization audit complete.
Context
Partially fixes #6005.
Fixes #6022.
This is part 2 of 3 extracted from the original combined localization PR #6021. It follows the merged #6024 (part 1), which aligns the locale catalogs and repairs missing/divergent translations.
The branch has now been rebased onto current
upstream/masterafter #6024 merged. Its commit list and Files changed view contain only the five focused part-2 commits.Focused range:
d8b857665c32f73d34dab220b324f54af336679a...5f7c8dc9c298dc3baf2d6bdabb0f39f5934cda64What changed
Localize user-facing runtime text
Unknownfallback for missing country/IP data and an unavailable native-core version; the core-version API is now nullable instead of leaking an English sentinel into the UI.Camera,Notifications, andLocal network) resources and formats permission-denied messages so each language can order the permission name naturally.Give TalkBack controls dedicated descriptions
acc_resources whose wording describes the action or state when spoken aloud.Turn torch on/Turn torch off).Pull down to refreshtoast shown when Logcat opens now that the screen exposes a dedicated refresh button, and gives that button the spoken descriptionRefresh log.Complete and review Bakhtiari (BQI) coverage
Orthography references used for the BQI review:
Scope and sequencing
The logical part-2 diff changes 30 Kotlin files and the nine maintained
strings.xmlcatalogs. It introduces 49 referenced resource identifiers and leaves each catalog with the same 448-resource sequence and row layout established by part 1.Impact
Validation
:app:processPlaystoreDebugResources:app:compilePlaystoreDebugKotlin --no-daemon --stacktracegit diff --checktranslatable/formattedattributes, format placeholders, string-array/plural shapes, and identical values fortranslatable="false"resources.contentDescriptionliterals.