2017-05-27 99 views
0

我正在开发一款以2种语言,英语和波斯语(波斯语)运行的应用程序。所以用户可以选择他想要的语言,应用程序以该语言显示。我该怎么办?如何实时更改应用程序语言?

+1

可能的重复https://stackoverflow.com/questions/9939885/manual-language-selection-in-an-ios-app-iphone-and-ipad – Bilal

+0

@Bilal我的问题是在迅速不客观c –

+0

有快速回答..只是滚动一下。 – Bilal

回答

0

取决于什么是你想要实现的,还有一个办法,可能是有益的你的情况,那就是:

  1. 声明这应该代表了目前使用的语言在关键的全局变量该应用程序,调用它appLanguageKey字符串 - 因为示例 - :

    var appLanguageKey = "english"

  2. 用于存储两种语言每学期所需的标题创建一个数据存储,它可能看起来像(包含):

    term_key term_english term_farsi

    greeting_key Hello Hoi

    bye_key Bye Doei

现在,你可以得到想要的值,如果你试图做的事:

desiredTerm = "select term_\(appLanguageKey) where term_key = 'greeting_key'" 

认为它是伪代码,c应该与它类似。

通过实施返回一个字符串这样的功能(我会认为它是:在下面的代码片段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,它应该不会影响应用,让其导航是从右到左。

希望这有助于。

0

首先,您应该使用领域,神奇记录或API来存储用户选择的内容。然后,您可以创建自己的可本地化字符串处理程序类型,方法是使用包含2个英语字典和1个波斯语的字典组成的数组,以使应用程序中的所有文本都可以读取,就像使用普通的可本地化一样。

+0

你有任何的代码示例? –

相关问题