【发布时间】:2020-08-28 03:07:54
【问题描述】:
我们的 iOS 应用被翻译成 19 种语言,最近我发现屏幕上的两个按钮标题相同的问题 - 这意味着用户不知道该按哪个!
我想编写一个单元测试来检查特定语言环境中的两个 NSLocalizedString 键,并确保它们不会发生冲突。
如何在任意语言环境中查找 NSLocalizedString 的值?
(例如,假设我想查找“Delete”和“Remove”的翻译版本,或类似的东西,并确保这两个翻译的字符串不相同。)
(我猜答案会涉及到Bundle?)
这是我正在寻找的伪代码:
class TranslationTest: XCTest {
func testNoTranslationCollision() {
let allLocales = // list of all supported locales in the app
allLocales.forEach { locale in
let translatedStringA = "Remove".asTranslatedIn(locale)
let translatedStringB = "Delete".asTranslatedIn(locale)
XCTAssertNotEqual(
translatedStringA,
translatedStringB,
"The translations for these different strings shouldn't be identical!"
)
}
}
}
【问题讨论】:
标签: ios localization nsbundle nslocalizedstring