Marklogic “本月俄语翻译”;五月";

Marklogic “本月俄语翻译”;五月";,marklogic,Marklogic,用俄语翻译5月份的英语单词可以是两种选择之一。如果说“5月31日”,那么“五月”一词应翻译为“Маа”,如果说“2014年5月”,那么“五月”一词应翻译为“Маа”,因为它不再使用“五月” 使用Marklogic的fn:format date函数实现,我无法确定如何获得May的“ааа”版本 下面是函数调用: fn:格式日期(xs:date(“2014-05-01”)、“[MNn][Y]、“ru”) 是否有办法获得“Маа”版本的May或format date是否只返回“Мааа” 从图片格式的

用俄语翻译5月份的英语单词可以是两种选择之一。如果说“5月31日”,那么“五月”一词应翻译为“Маа”,如果说“2014年5月”,那么“五月”一词应翻译为“Маа”,因为它不再使用“五月”

使用Marklogic的fn:format date函数实现,我无法确定如何获得May的“ааа”版本

下面是函数调用:

fn:格式日期(xs:date(“2014-05-01”)、“[MNn][Y]、“ru”)

是否有办法获得“Маа”版本的May或format date是否只返回“Мааа”


从图片格式的文档中可以看出,这取决于实现。可能是XQuery无法指定不同版本的月份名称。

MarkLogic将库“ICU”用于大多数Unicode和本地化相关功能。这是我们所知道的最好的图书馆,但无论如何也不完美。 该库不了解用于日期显示的XQuery模式,因此需要进行一些复杂的工作来解析XQuery模式,然后使用较低级别的API获取相关数据。 即使如此,像日期和日期这样的名称在现实中也比库及其内部数据库所能表示的更微妙

为了获得更好的控制,您需要编写一些或部分自己的日期时间格式化程序。 您可以使用工作的零件,然后更换不工作的零件。 例如,您可以使用

let $d := xs:date("2014-05-01"), 
  $f := fn:format-date($d, "%%%%MONTH%%%% [Y]", 'ru') ,
  $final := fn:replace( $f , "%%%%MONTH%%%%" , my-own-month-formatter( $d ) )
其中提供了一个函数my-own-month-formatter(),该函数返回正确的月份名称 基于总日期。从日期时间字段中提取值的函数可用 在xquery以及functx模块中

以下是来自functx的自定义日期名称转换函数的示例


如果您总体上感到满意,但希望解决您描述的具体案例:fn:replace(fn:format date(xs:date)(“2014-05-01”)、“[MNn][Y]、“ru”)、“mmaаа”、“mmaаааа