技术问询:在/admin/config/regional/translate/import导入.po文件时三个选项的含义
嘿,我来给你掰扯清楚Drupal后台/admin/config/regional/translate/import页面里这三个复选框的具体含义,都是实际用的时候会碰到的关键设置:
将导入的字符串视为自定义翻译
这个选项相当于给你导入的.po文件里的所有翻译打上「自定义」标签。在Drupal里,系统自带的翻译(比如核心模块、第三方贡献模块默认带的翻译)和用户手动添加/导入的自定义翻译是分开管理的。勾选这个后,导入的翻译会归为自定义类别,后续你更新模块时,哪怕模块自带的默认翻译有变化,你的自定义翻译也不会被自动覆盖——系统会优先保留你标记为自定义的内容。覆盖非自定义翻译
这个是专门针对系统默认翻译的。如果你的.po文件里的翻译字符串,和系统现有的非自定义(也就是模块自带的)翻译重复了,勾选这个选项后,导入时就会用你文件里的内容替换掉原来的系统默认翻译。但要注意,这个选项只会影响非自定义翻译,已经被标记为自定义的翻译不会被它改动。覆盖已有的自定义翻译
这个选项的作用对象是已经存在的自定义翻译。假设你之前已经给某个字符串添加过自定义翻译,现在导入的.po文件里又有同一个字符串的新翻译,勾选这个选项,系统就会用新导入的内容替换掉之前的自定义翻译;如果不勾选,系统会保留原来的自定义翻译,直接忽略新导入的同字符串内容。
举个简单例子帮你理解:假设你导入的.po里有字符串「提交」的翻译,之前系统默认翻译是「Submit」,你之前还自定义过翻译成「确认提交」。如果勾选了前两个选项,系统默认的「Submit」会被替换成你导入的内容,同时新翻译会被标记为自定义;如果再勾选第三个选项,那你之前自定义的「确认提交」也会被替换成新导入的内容。
内容的提问来源于stack exchange,提问作者dbj44

