gtranslator 的问题不太清楚,有可能是 gtranslator 的 bug,或者 po 文件的字符串属性的标注问题,导致把字符串当成 C 的 printf 字符串来识别了。
zh_CN 的 locale 下,%b 应该是“1月”,%B 应该是“一月”,可以用 date +%b%B 命令验证。这部分的定义在 glibc 的 localedata 源码里:https://sourceware.org/git/?p=glibc.git;a=blob;f=localedata/locales/zh_CN 如果 evolution 显示的时间不好看,应该先看看 po 文件里有没有可以翻译的时间格式字符串。比如以前 mate-screensaver 里的时间格式字符串“%A, %B %e”就没有翻译,这样锁屏界面的时间格式就是“星期一, 二月 3”。我改成了“%-m月%-d日%A”,就会显示成“2月3日星期一”了。如果没有这种字符串,应该考虑向上游提 issue。 On Monday, February 3, 2025 at 2:24:36 PM UTC+8 [email protected] wrote: > > 其实我也有这个问题,之前我用gtranslator给gnome部分软件翻译的时候突然发现%m和%d两种日期格式占位符无法通过文件验证了,不确定是gnu那边做了修改还是出了bug? > 我不确定%b格式在中文区域中的表现形式,但我确定原发件人说的问题是有可能存在的,因为evolution就存在这个问题。%b格式在英文中是完整名称的简写如Nov > > Dec这些,但在中文中到底是一月还是1月亦或是01月我就不确定了。 > > > > > > > -------- 原始邮件 -------- > 发件人: Wenbin Lv <[email protected]> > 日期: 2025年2月3日周一 01:39 > 收件人: i18n-zh <[email protected]> > 主 题: Re: 关于 coreutils 中 ls 命令的日期显示格式 > > Hello, > > ls -l 命令的时间格式是我在 2022 年修改的,当时发了封邮件征求意见( > https://groups.google.com/g/i18n-zh/c/FAVbnR1jGQo/m/miAVoHLaAwAJ > ),不过没有人回复。当时比较担心脚本兼容性问题和长度过长的问题,好在改完以后没有人抱怨出了这两种问题。 > > 目前的翻译应该不会显示成“一月 3日 12:03”,应该是“ 1月 3日 12:03”(如果你那边显示成“一月”的话,可能是 > bug?),这个写法在中文里应该已经足够自然。具体效果是: > > 中文: > -rwxr-xr-x 1 lwb lwb 171 2021年12月12日 weather.sh > drwxr-xr-x 40 lwb lwb 4096 10月23日 01:31 webwml > 英文: > -rwxr-xr-x 1 lwb lwb 171 Dec 12 2021 weather.sh > drwxr-xr-x 40 lwb lwb 4096 Oct 23 01:31 webwml > > 如果要让两种时间格式的“xx月xx日”对齐,就无法按自然的中文语序显示时间(比如要改成“01:31 > 10月23日”)。如果要统一改成一个格式,就和英文原文显示的信息不一致(大部分人应该希望能显示刚刚修改的文件是在几点几分修改的,同时也希望能看到几年前修改的文件是在哪年修改的)。如果统一把年月日时分全显示出来,长度就太长了。所以我觉得目前的版本就挺好,不需要修改。如果你有更好的显示方式,可以提出来。如果有比较小众的需求,可以使用“--time-style”选项或“TIME_STYLE”环境变量进行定制(参见“ls > > --help”)。 > > Regards, > Wenbin Lv > > On Sunday, February 2, 2025 at 1:22:08 AM UTC+8 Funda Wang wrote: > > Hello, > > 当前coreutils中的 ls -l 命令默认读取以下字符串用于显示文件时间: > > #. TRANSLATORS: ls output needs to be aligned for ease of reading, > #. so be wary of using variable width fields from the locale. > #. Note %b is handled specially by ls and aligned correctly. > #. Note also that specifying a width as in %5b is erroneous as strftime > #. will count bytes rather than characters in multibyte locales. > #: src/ls.c:810 > msgid "%b %e %Y" > msgstr "%Y年%b%e日" > > #. TRANSLATORS: ls output needs to be aligned for ease of reading, > #. so be wary of using variable width fields from the locale. > #. Note %b is handled specially by ls and aligned correctly. > #. Note also that specifying a width as in %5b is erroneous as strftime > #. will count bytes rather than characters in multibyte locales. > #: src/ls.c:823 > msgid "%b %e %H:%M" > msgstr "%b%e日 %H:%M" > > 不知这个翻译是否有修改的计划。因为默认六个月内会显示为:一月 3日 > 12:03,这真的太难看了,且六个月内的文件和六个月以上的文件的时间格式有较大差异。 > > Regards > > -- > 您收到此邮件是因为您订阅了Google群组上的“i18n-zh”群组。 > 要退订此群组并停止接收此群组的电子邮件,请发送电子邮件到[email protected]。 > 如需查看此讨论,请访问 > https://groups.google.com/d/msgid/i18n-zh/4d9e3b3f-f651-4d2f-9687-a5f78328f3f0n%40googlegroups.com > > <https://groups.google.com/d/msgid/i18n-zh/4d9e3b3f-f651-4d2f-9687-a5f78328f3f0n%40googlegroups.com?utm_medium=email&utm_source=footer> > 。 > > -- 您收到此邮件是因为您订阅了 Google 群组的“i18n-zh”群组。 要退订此群组并停止接收此群组的电子邮件,请发送电子邮件到[email protected]。 如需查看此讨论,请访问 https://groups.google.com/d/msgid/i18n-zh/6e88c2ad-86ca-4b3d-bff9-4e6492960989n%40googlegroups.com。
