我有XSL
个文件,需要由给定的Locale
动态呈现。
在此语言环境中,我们将从右向左或从左向右显示PDF。
当前,我有一个原始的XSL
文件,该文件需要两面都使用。
我已经添加了writing-mode="rl"
以便为该问题提供POC,并且工作正常。
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:fox="http://xmlgraphics.apache.org/fop/extensions" writing-mode="rl">
我想从Java代码中了解需要使用什么API,以便将给定的Locale
放入此属性,而无需创建我的XSL
的副本
我试图在网上找到答案,但找不到我需要的东西。
答案 0 :(得分:1)
您的Java代码大概可以包括基于语言环境的查找以确定写入模式。 “ How to find out locale-dependent text orientation in java?”问题中的一个例子来自某个不得不自己动手的人。
或者,您可以在XSLT中进行查找。首先,这是一个使用三字母语言标记的XSLT 2.0函数,我在前一阵子对《世界人权宣言》(UDHR)的译文进行格式化时就写了:
<xsl:function name="m:writing-mode" as="xs:string">
<xsl:param name="lang" />
<xsl:sequence
select="if ($lang = ('heb', 'arb', 'pnb', 'skr',
'ydd', 'pes', 'urd', 'pbu',
'mly_arab', 'uig_arab',
'aii', 'div'))
then 'rl'
else 'lr'" />
</xsl:function>