【问题标题】:Translation of interval区间的翻译
【发布时间】:2015-09-09 01:30:45
【问题描述】:

也许有一种方法可以将 postgresql 显示的间隔(例如“1330 天 10:54:54.266684”)自动翻译成其他语言?例如使用语言环境或其他设置,或者我必须使用替换,例如regexp_replace((now()-t.another_date)::text, 'day','dzień')?

【问题讨论】:

  • 你可能想要to_char
  • 当你没有使用正则表达式时,至少不要使用昂贵的regexp_replace,还有正常的replace函数。但通常显示语义是在表示层中完成的,而不是在数据库本身中,如果可能的话。
  • 我使用的是特定的框架,它与数据库非常“接近”,中间没有中间层,所以浏览器中显示的是“3天”的数据。我不确定简单的替换,因为天和天->我宁愿避免像“3 dzieńs”这样带有额外's'的结构
  • @CraigRinger - 我在 to_char 中看到我可以得到类似 'HH12:MI:SS' 的结果,但我更喜欢其他语言的全名。也可以吗?
  • @HWid 虽然to_char 支持本地化字符串并尊重LC_TIME,但它没有用于连接词的占位符,如“天”,所以我认为你不走运。支持DAYSMONTHS 之类的东西作为本地化单词的间隔格式占位符是一个很好的功能......也许建议 pgsql-hackers 邮件列表?

标签: postgresql datetime translation intervals postgresql-8.4


【解决方案1】:

我认为没有。对不起。日、月等是类型间隔中的字段。它将是英文的。就像你不希望使用“vybrac”而不是选择:) 但是你可以在时间值上拥有locale,是的。

td=# set lc_time TO pl_PL;
SET
td=# SELECT to_char(to_timestamp (4::text, 'MM'), 'TMmon');
 to_char
---------
 kwi
(1 row)

所以可能唯一的选择是用波兰语名称替换时间戳文件值

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-15
    • 2016-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-07
    相关资源
    最近更新 更多