zoukankan      html  css  js  c++  java
  • iOS 程序内国际化的一些心得(1)

    最近接到需求,原有的app需要做一个程序内的国际化,可以让用户选择要展示的语言。

    but哥可是没有一点思路。。。。

    肿么办。

    百度。。。

    百度下来,取到了一些思路。

    自己写到可能有些不尽如人意的地方,烦请各位大牛批评指正。

    现总结如下:

    1,判断用户手机设置的语言是否包含在当前app支持的语言里面。

    如果包含着app支持语言里面。直接根据这个语言设置配置项。

    如果不包含在app支持语言里面,弹出语言设置页面,让用户设置。

        VShowSetLanguage *setlanguage = [[VShowSetLanguage alloc] init];
        [setlanguage settinglanguage:^(BOOL isShowUserSelectView)
        {
            if (isShowUserSelectView)
            {
                //加载语言选择界面
                [self loadLanguageChooseView];
                
            }else{
                //用户已经设置过语言 或者用户当前系统语言 在app支持语言内
                [self reloadRootView];
                
            }
        }];
    

    VShowSetLanguage:判断是否加载语言选择界面处理类

    实现如下:

    .h文件

    #import <Foundation/Foundation.h>
    typedef void(^showLanguageView)(BOOL isShowUserSelectView);
    @interface VShowSetLanguage : NSObject
    - (void)settinglanguage:(showLanguageView)isshow;
    @end
    

     .m文件

    #import "VShowSetLanguage.h"
    
    @implementation VShowSetLanguage
    
    /*!
     *  @Author Yunis_song, 14-12-15 19:12:49
     *
     *  @brief  判断是否加载语言选择界面
     *
     *  @param isshow 返回值 yes加载选择界面  no不加载选择页面
     */
    - (void)settinglanguage:(showLanguageView)isshow
    {
        NSString *language = [[NSUserDefaults standardUserDefaults] objectForKey:VShowUserLanguage];
        if (![VShowUtil isEmptyString:language]) {//判断用户是否已经设置过默认语言 如果不为空则用户已经选择过页面或者app支持当前用户手机设置语言 不展示选择页面
            
            isshow(NO);
            
        }else
        {
            //获取用户当前手机系统设置的语言
            NSString *userLanguage = [VShowUtil getPreferredLanguage];
            
            //如果用户当前设置语言 包含在app预设国际化语言李选择当前国际化语言 相应设置服务器地址
            if ([userLanguage isEqualToString:@"en"] || [userLanguage isEqualToString:@"th"] || [userLanguage isEqualToString:@"zh-Hans"])
            {
                //设置一些对应语言的配置信息 service地址 国际化资源
                [VShowUtil setUserLanguageAddServiceAddress:userLanguage];
                
                isshow(NO);
                
            }else
                //如果用户当前设置语言没有包含在app预设国际化语言 让用户从当前app支持的语言李选择显示的语言。
            {
                isshow(YES);
            }
    
        }
        
    }
    @end
    

    未完待续。。。。。

  • 相关阅读:
    WebApp 里Meta标签大全,webappmeta标签大全
    写给自己的Java程序员学习路线图
    JAVA学习路线图
    JavaScript经典作用域问题(转载)
    js 判断当前操作系统是ios还是android还是电脑端
    css动画,展开折叠图标
    CSU 1335 高桥和低桥
    codevs 1341 与3和5无关的数
    noi 7827 质数的和与积
    51nod 1082 与7无关的数
  • 原文地址:https://www.cnblogs.com/yunis/p/4165701.html
Copyright © 2011-2022 走看看