【发布时间】:2020-06-21 21:55:51
【问题描述】:
我正在尝试将 autotools 项目转换为 Meson 并坚持翻译桌面文件。
创建所有 .mo 文件没有问题。
根据manual,POTFILES 和 LINGUAS 位于“po”文件夹中。
唯一的问题是 i18n.merge_file 没有生成带有翻译的文件。
我的 meson.build 看起来像
...
package = meson.project_name()
i18n = import('i18n')
add_project_arguments('-DGETTEXT_PACKAGE="@0@"'.format(package), language:'c')
subdir('po')
i18n.merge_file(
input: 'data/clipit.desktop.in',
output: 'clipit.desktop',
type: 'desktop',
po_dir: 'po',
install: true,
install_dir: '/usr/share/applications'
)
...
po/meson.build
i18n.gettext(package, preset: 'glib')
clipit.desktop.in
[Desktop Entry]
_Name=ClipIt
_Comment=Clipboard Manager
Icon=clipit-trayicon-offline
Exec=clipit
Terminal=false
Type=Application
Categories=GTK;GNOME;Application;Utility;
ninja 安装后输出为:
[Desktop Entry]
Icon=clipit-trayicon-offline
Exec=clipit
Terminal=false
Type=Application
Categories=GTK;GNOME;Application;Utility;
它基于 (https://mesonbuild.com/Porting-from-autotools.html) 但也尝试遵循“侏儒之眼”meson.build。没有运气。
github 上的当前代码版本。
编辑: 留下可以使用的 sn-p,因为介子文档不包括使用 intltool。
custom_target('clipit.desktop',
input : 'data/clipit.desktop.in',
output : 'clipit.desktop',
command: [intltool_merge, '-d', '-u', join_paths(meson.source_root(), 'po'), '@INPUT@', '@OUTPUT@'],
install : true,
install_dir : get_option('datadir') / 'applications')
【问题讨论】:
标签: meson-build