相关疑难解决方法(0)

如何强制NSLocalizedString使用特定语言

在iPhone上NSLocalizedString返回iPhone 语言的字符串.是否可以强制NSLocalizedString使用特定语言使应用程序使用与设备不同的语言?

localization objective-c internationalization nslocalizedstring ios

261
推荐指数
16
解决办法
14万
查看次数

如何使用Swift以编程方式更改语言环境

我正在通过Swift在XCODE 6.3上制作ios应用程序.我的应用程序将具有选择语言功能,如下图所示

在此输入图像描述

我已经有了当地语言的故事板.但我无法找到如何通过按钮以编程方式更改应用程序的本地化.

任何人都知道如何做到这一点

xcode localization ios swift

62
推荐指数
8
解决办法
6万
查看次数

设置iOS语言而不重新启动

我知道有不少帖子说不应该这样做,或者不可能.我修改了一些想法,现在我问这个问题,因为我想绝对确定没有其他选择.

选项1:

最流行的解决方案是改变AppleLanguages这个岗位.我不介意要求重启,所以这对我来说是一个可以接受的解决方案,除了你不能以编程方式重启你的应用程序(找不到方法,或者被Apple拒绝).要求用户手动重启应用程序并不理想.

选项2:

接下来的解决办法是让合适的包和执行localizedStringForKey的每一个查询UILabel,UIButton等等.这可能是一个有点乏味,但还好我,因为我已经加入localizationProperties(类似于),这些意见让我能有一个集中的字符串文件.

AppDelegate.swift:

static var userLanguage: String?
    {
        set
        {
            let defaults = NSUserDefaults.standardUserDefaults();
            defaults.setObject(newValue, forKey: LanguageKey);
            defaults.synchronize();

            let storyboard = UIStoryboard(name: "Main", bundle: NSBundle.mainBundle());
            instance.window?.rootViewController = storyboard.instantiateInitialViewController();
        }

        get
        {
            let defaults = NSUserDefaults.standardUserDefaults();
            return defaults.stringForKey(LanguageKey);
        }
    }
Run Code Online (Sandbox Code Playgroud)

Localization.swift:

private var bundle: NSBundle
{
    get
    {
        let bundle: NSBundle;
        #if TARGET_INTERFACE_BUILDER
            bundle = NSBundle(forClass: self.dynamicType);
        #else
            bundle = NSBundle.mainBundle();
        #endif

        let lang: String;
        if(AppDelegate.userLanguage …
Run Code Online (Sandbox Code Playgroud)

localization ios swift

11
推荐指数
1
解决办法
4954
查看次数

如何为 UILabel 指定日语编码?

当我尝试在 iOS 上的 UILabel 中显示日语字符串时,它会使用中文编码而不是日语显示。

\n

除了少数特定情况外,这两种编码几乎相同。例如,以下是字符 \xe7\x9b\xb4 (Unicode U+76F4) 在中文(上)与日文(下)中的呈现方式:

\n

中国人 vs 日本人

\n

(请参阅此处了解更多示例)

\n

日语字符串正确呈现的唯一时间是当用户的系统区域设置为ja-jp(日本)时,但我希望它为所有用户呈现为日语。

\n

有没有办法强制日语编码? Android 有TextView.TextLocale,但我在 iOS 上没有看到类似的东西UILabel

\n

对于 Android 也是同样的问题。我标记了这个 Swift/Objective-C,因为虽然我正在寻找 Xamarin.iOS 解决方案,但 API 几乎是相同的)

\n

objective-c uilabel xamarin.ios xamarin.forms swift

6
推荐指数
1
解决办法
902
查看次数