美文网首页
国际化key是否存在检测方案

国际化key是否存在检测方案

作者: 大写的空气 | 来源:发表于2022-02-07 21:48 被阅读0次

App面对多个国家开放时,会遇到国际化需求,正常使用系统提供的国际化方法通过key-value形式就能实现国际化。在使用时可能会遇到代码中写好了key值,国际化文件中由于某些原因,未同步实现key-value,造成国际化失败

怎样就造成此类问题?

专项测试时,国际化问题一切正常。当切换到集测阶段,或者在发版前通过国际化分支重新拉取国际化文件后。国际化key被其他人改变或者合并冲突时不小心处理错误,原来正常的东西,突然就变的不正常了
给到测试手中,被测试测出,可能被鄙视怎么出这么低级的bug;未被测出,流出到用户手中,职业性被狠狠的践踏

怎样去解决此类问题?

问题造成的根本原因是国际化文件被改变,代码中的key未同步变更。想个办法让代码中的key能自动检查出缺失情况。跟安卓那样,国际化文件中少了key,直接就无法正常编译
编译期会做变量检测,想办法把字符串形式的key变成一个独立的变量。变化后的形式如key = @"key",使用时直接将原来国际化调用方式NSLocalizedString(@"key", nil)换成NSLocalizedString(key, nil)此次只是一个简单的例子。现实中,基本不会直接使用NSLocalizedString去做国际化的显示,谁让语言还可以自己切换呢,谁让我还不太会改Bundle呢

开始去解决此类问题

定义一个变量去对应原国际化的key,虽然能通过编译报错,但是怎样保证定义的key确确实实是需要的key。靠手工去慢慢添加国际化文件的key,再去国际化变量的文件中加上对应的key变量,是不是会被同行嘲笑? 反正我曾经就是这样一个一个自己加的😓
自动将国际化Excel文件转换为.strings文件,以前使用的是localio,支持ios/android,这货会自动生成一个满是宏的头文件,以前还不是特别明白为什么要有它。
以前的已经忘记,也只能很好的兼容OC代码,就不讲了,现在使用的是一套js自动转换Excel文件的脚步文件。通过这套文件,自动转换出需要的国际化文件,支持ios/android/web。通过修改脚步内容,使每次产生国际化文件时,同时创建一个.swift文件,此文件能完美兼容OC/Swift,后期国际化时,只需要使用这个文件中的相关常量
国际化脚本内容如下

国际化
生成的国际化文件如下
生成完毕
最终调用的方式如下_localizeLbl.text = [IMILocalizeKit local:IMILocalizableConst.loc_main_bottom_bar_tab comment: @"没找到国际化就显示它"];此时偷懒,直接把现在项目中封装好的国际化方法粘贴出。由于都是通过同一个Excel生成,当新生成的swift文件替换旧文件后,发生编译报错,能通过报错快速定位问题发生的地方

相关文章

  • 国际化key是否存在检测方案

    App面对多个国家开放时,会遇到国际化需求,正常使用系统提供的国际化方法通过key-value形式就能实现国际化。...

  • redis基础类型

    key的相关指令介绍: exists key : 检测指定key是否存在,返回1表示存在,返回0表示不存在 ...

  • 手动实现KVO

    1 首先根据key 生成Set方法 2 检测observer 检测set方法 是否存在 不存在抛出异常 3 根绝当...

  • mysql 更新OR插入

    当插入数据的时候,先判断其是否存在,若存在则插入,否则更新 方案1: insert into table (key...

  • dict' object has no attribut

    在python2中对于一个dict,可以用dict.has_key(key_name)检测键是否存在在python...

  • SSH key

    1、检测SSH key 是否存在 ls -al ~/.ssh 我的是不存在的 如果存在的话,会显示出来id_rsa...

  • Redis常见数据类型操作命令

    Key keys *---查询所有key exists key---判断key是否存在 move key db--...

  • 这 6 个Python字典操作你必须知道

    key是否存在 使用in关键字判断key是否存在字典中 不要使用key in d.keys(), 这是一种画蛇添足...

  • Python 6 个字典操作你必须知道

    key是否存在 使用in关键字判断key是否存在字典中 不要使用key in d.keys(), 这是一种画蛇添足...

  • SSH KEY相关

    检查SSH key是否已经存在 进行检查id_rsa.pub(生成的ssh key名字)是否存在,如果存在, 就不...

网友评论

      本文标题:国际化key是否存在检测方案

      本文链接:https://www.haomeiwen.com/subject/tnhvkrtx.html