我们如何在DSpace数字存储库

时间:2018-04-04 06:10:36

标签: css right-to-left multilingual dspace

如何在DSpace数字存储库的语言变更中设置RTL的方向?我们实现的第二种语言是像波斯语这样的RTL语言。提供了rtl.css样式表。 我们需要一个解决方案来分配rtl.css来选择多种语言 此致;

1 个答案:

答案 0 :(得分:0)

这可以通过HTML /页面级文本方向设置和CSS切换一些页面元素的位置来实现。

以下是我在尝试阿拉伯语显示时所取得的成就,我认为波斯语会非常相似? (您可能只需要将' ar'区域设置更改为' fa'等等) 此示例在Mirage2中进行了测试,但这些概念可以应用于其他地方。

在我的新主题中,我覆盖了 <!-- switch to rtl if arabic locale --> <xsl:variable name="active-locale" select="/dri:document/dri:meta/dri:pageMeta/dri:metadata[@element='page'][@qualifier='currentLocale']"/> <xsl:choose> <xsl:when test="$active-locale='ar'"> <script><xsl:text>document.documentElement.setAttribute('dir','rtl');</xsl:text></script> </xsl:when> <xsl:otherwise> <script><xsl:text>document.documentElement.setAttribute('dir','ltr');</xsl:text></script> </xsl:otherwise> </xsl:if> ,并设置了整页文档&#39; dir&#39;属于&#39; rtl&#39;如果我检测到想要的区域设置(在这种情况下,阿拉伯语)

style

这应该足以整理页面中的文字......

我还使用自定义bootstrap rtl主题(https://github.com/morteza/bootstrap-rtl)来应用CSS(它可能类似于你拥有的CSS?)转换来翻转例如。菜单栏或容器,使页面在RTL中更具可读性 为此,我将缩小的CSS包含在我的主题page-structure.xsl文件夹中以及其他CSS中,并将此样式表引用添加到我的主题<!-- Add Bootstrap 3 RTL support if Arabic locale detected --> <xsl:if test="/dri:document/dri:meta/dri:pageMeta/dri:metadata[@element='page'][@qualifier='currentLocale']='ar'"> <link rel="stylesheet" href="{concat($theme-path, 'styles/bootstrap-rtl.min.css')}"/> </xsl:if>

var obj = { documents: [
  ...question.documents.length
    ? question.documents
    : [{}]
  ] 
};

您可以使用&#39; .flip&#39; class(在bootstrap-rtl的github页面上记录)更具体地说明了翻转某些元素(你编辑各种其他XMLUI模板以获取那些类)...我对事物的专业知识应该寻找RTL阅读缺乏所以我没有定制个别元素。

希望这有帮助!如果您在使用XMLUI / Mirage2自定义时遇到困难,那么在实际应用这些更改时,您可以阅读https://wiki.duraspace.org/display/DSDOC6x/Mirage+2+Configuration+and+Customization以提供更多背景知识。