我正在开发一个以2种语言运行的应用程序,英语和波斯语(波斯语)。因此,用户可以选择他想要的语言,并以该语言显示应用程序。我该怎么办?
答案 0 :(得分:0)
首先,您应该使用领域,魔法记录或API来存储用户选择的内容。然后你可以创建一个自己类型的本地化字符串handeler,通过一个数组包含2个字典1和英语,1个用波斯语,你的应用程序中的所有文本都将从正常的本地化中读取。
答案 1 :(得分:0)
取决于您想要实现的目标,有一种方法可能对您的案例有用,即:
声明一个全局变量,该变量应代表应用程序中当前使用的语言的键,称之为appLanguageKey
字符串 - 例如 - :
var appLanguageKey = "english"
创建一个数据存储区,用于存储每个术语所需的两种语言标题,它可能看起来像(包含):
term_key term_english term_farsi
greeting_key Hello Hoi
bye_key Bye Doei
现在,如果您尝试这样做,可以获得所需的值:
desiredTerm = "select term_\(appLanguageKey) where term_key = 'greeting_key'"
将其视为伪代码,条件应与它类似。
通过实现这样一个返回字符串的函数(我假设它是:getDesiredCaption(_ termKey: String) -> String
在下面的代码片段中),你将能够为任何UI组件自动设置所需的标题,只需调用它在viewWillAppear
方法中,视图控制器:
override func viewWillAppear(_ animated: Bool) {
.
.
.
label.text = getDesiredCaption("greeting_key")
// Since that 'appLanguageKey' global viriable is "english",
// the output should be "Hello"
.
.
.
}
更改应用语言所需要做的就是将appLanguageKey
的值更改为"波斯语"。
对于与国际化和本地化相关的其他方法,您可能需要检查this answer,它应该会影响应用以使其导航从右到左。
希望这会有所帮助。