• iOS APP语言国际化之应用内切换语言环境


      最近接了一个项目,需求是要做一款应用的英文版本,客户并不清楚,以为要另做一个APP。沟通后告诉他们在之前应用基础上加个国际化功能就好,把之前的语言国际化重新梳理记录一下。

      一般设置更改本地语言环境后,需要重启应用才可以生效,客户那边是要求不能重启应用,必须是切换后立即生效。

      首先新建个工程:

      

      接下来要配置你想添加的国际化语言类型:

      

      对应有 XIB 或 Storyboard 文件也对应国际化:

      

      新建 String File,命名为 "InfoPlist" (必须是这个字符串,后缀.strings为默认自带的),用于配置应用名称等信息。

      

      

      选中 InfoPlist.strings 文件,点击 Xcode 右侧的 Localize 按钮,选择要国际化的语言。

      

      

      在里面可以对应用名称国际化:

      在 English 对应文件中添加:

    CFBundleDisplayName = "Internationalization";

      在 Chinese (Simplifierd) 添加:

    // Localizable App Name是App在中文环境环境下显示的名称
    CFBundleDisplayName = "国际化";

      这时切换系统语言环境,APP 名称就会对应更改。

      接下来是应用内容的国际化:

      新建 Localizable.strings,方法同上

      在对应的中文和英文文件中添加 需要国际化的内容

    "home" = "HomePage";
    "service" = "ServicePage";
    "account" = "AccountPage";
    "home" = "首页";
    "service" = "服务";
    "account" = "账户";

      在应用中使用 NSLocalizedString(@"home", nil)

    HomeViewController *homeVC = [[HomeViewController alloc] init];
    UINavigationController *homeNC = [[UINavigationController alloc] initWithRootViewController:homeVC];
    homeNC.tabBarItem.title = NSLocalizedString(@"home", nil);
        
    ServiceViewController *serviceVC = [[ServiceViewController alloc] init];
    UINavigationController *serviceNC = [[UINavigationController alloc] initWithRootViewController:serviceVC];
    serviceNC.tabBarItem.title = NSLocalizedString(@"service", nil);
        
    AccountViewController *accountVC = [[AccountViewController alloc] init];
    UINavigationController *accountNC = [[UINavigationController alloc] initWithRootViewController:accountVC];
    accountNC.tabBarItem.title = NSLocalizedString(@"account", nil);
        
    [self setViewControllers:@[homeNC, serviceNC, accountNC]];

      这时切换系统语言环境,就可以对应显示应用内容了。

      但是这种必须要重启应用才可以,如果不重启应用

      需要重新设置 窗口的 根视图:

      详细代码及效果参见 GitHub

      效果如下: 

      

     

      

  • 相关阅读:
    oracle 按关键字排序前几行
    oracle 查看某表的前10行
    linux 7安装部署Redis
    oracle 查看库表状态
    centos 7 启动和关闭zabbix 服务
    oracle 创建用户密码及赋予登录权限
    linux 控制root登录宿主机时间
    centos 更改用户登录宿主机时间
    oracle 查询、创建、删除 数据库用户
    Django基础四之模板系统
  • 原文地址:https://www.cnblogs.com/ZachRobin/p/7839011.html
Copyright © 2020-2023  润新知