QT更新翻译文件

一、QT命令,可以根据pro文件 和资源文件进行选择翻译

注意:

  • pro文件需要自行添加好翻译文件
  • 需要翻译的class要Q_OBJECT宏 ,或者使用QObject::tr()

// 操作       
    -help  显示帮助并退出
    -no-obsolete 弃用无效字符串
    -extensions <ext>[,<ext>]...
           指定特定的文件更新翻译,扩展名列表必须用逗号分隔
           默认: 'java,jui,ui,c,c++,cc,cpp,cxx,ch,h,h++,hh,hpp,hxx,js,qs,qml,qrc'.
    -pluralonly
          仅仅包含界面消息
    -silent
           Do not explain what is being done.
    -no-sort
           不要对TS文件中的上下文进行排序
    -no-recursive
           不要递归扫描目录。
    -recursive
           递归扫描目录(default).
    -I <includepath> or -I<includepath>
         查找包含文件的其他位置。可以指定多次。
    -locations {absolute|relative|none}
            可以指定并覆盖ts文件,若不指定且ts文件不存在,则会创建新的ts文件
    -no-ui-lines
          不记录UI文件里面的行号
    -disable-heuristic {sametext|similartext|number}
           禁用名称合法性检测,可被多次指定
    -pro <filename>
           project文件
    -pro-out <directory>
          输出目录
    -pro-debug
           处理两次pro文件
    -source-language <language>[_<region>]
            指定源文件的语言。
            如果未指定,则默认为POSIX。
    -target-language <language>[_<region>]
            指定翻译文件的语言。
            如果未指定,则从文件名判断。
    -tr-function-alias <function>{+=,=}<alias>[,<function>{+=,=}<alias>]...
           With +=, recognize <alias> as an alternative spelling of <function>.
           With  =, recognize <alias> as the only spelling of <function>.
           Available <function>s (with their currently defined aliases) are:
             Q_DECLARE_TR_FUNCTIONS (=Q_DECLARE_TR_FUNCTIONS)
             QT_TR_NOOP (=QT_TR_NOOP)
             QT_TRID_NOOP (=QT_TRID_NOOP)
             QT_TRANSLATE_NOOP (=QT_TRANSLATE_NOOP)
             QT_TRANSLATE_NOOP3 (=QT_TRANSLATE_NOOP3)
             QT_TR_NOOP_UTF8 (=QT_TR_NOOP_UTF8)
             QT_TRANSLATE_NOOP_UTF8 (=QT_TRANSLATE_NOOP_UTF8)
             QT_TRANSLATE_NOOP3_UTF8 (=QT_TRANSLATE_NOOP3_UTF8)
             findMessage (=findMessage)
             qtTrId (=qtTrId)
             tr (=tr)
             trUtf8 (=trUtf8)
             translate (=translate)
             qsTr (=qsTr)
             qsTrId (=qsTrId)
             qsTranslate (=qsTranslate)
    -ts <ts-file>...
           指定输出文件,并且覆盖原有的
    -version
          显示lupdate的版本
    @lst-file
            读取其他文件名(每行一个)或包含路径(每行一个)
            行,并在lst-file中以-I为前缀。

二、编写脚本更新所有文件的翻译

    A、简单脚本:通过pro文件更新翻译 

@echo on
cd..
lupdate -no-obsolete project.pro
@pause
  • 优点:方便快
  • 缺点:需要针对每一个项目配置好  .ts 文件,多个翻译文件

   B、复杂脚本:通过工程项目和源文件更新翻译

@echo off

md Translation
cd Translation
md en
md ko
cd ..

cd source

for /d %%i in (*) do (
cd %%i

if exist ./translate_lupdate.bat (
translate_lupdate.bat
)else (
if exist "*.vcxproj" (
if exist GeneratedFiles del /F /S /Q .\GeneratedFiles
lupdate .\ -locations absolute -no-obsolete -ts ..\..\Translation\en\%%i_en.ts
lupdate .\ -locations absolute -no-obsolete -ts ..\..\Translation\ko\%%i_ko.ts
)
)

cd ..
)

@pause
@echo off
  • 优点:能通过工程文件生产单独的ts文件,不需要配置pro文件
  • 缺点:每一个项目存在一个  .ts 文件

 C、简单脚本:通过源文件更新成一个翻译

@echo on
cd..
lupdate -no-obsolete ./application ./src ./include -ts .\Translation\en\hirender_en.ts
lupdate -no-obsolete ./application ./src ./include -ts .\Translation\ko\hirender_ko.ts
@pause
  • 优点:通过源文件生产一个翻译文件,简化操作,避免重复翻译
  • 缺点:耦合度高,不需要的项目可能也会用到翻译文件

 

 

 

 

 

 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值