2015-12-09 181 views
2

我使用Java Web(Spring框架)和LESS作爲CSS預處理器。i18n在CSS屬性「內容」

將國際化應用於我的項目時,我成功將message.properties文件中的JSP和JS代碼中的每條消息都遷移了出來。但我不知道是否可以在CSS/LESS代碼中執行相同的操作。我真的需要這樣做,因爲內容屬性中有消息。

我已經看到了使用:lang選擇器的解決方案,但是如果我可以從中央輸入文件導入消息會好得多。

回答

0

,我遲到了,但我想指出an answer to another Stack Overflow question它原來你可以使用一個attr()content屬性,引用所選HTML元素上的屬性。無恥地抄襲從鏈接答案的例子,你可以寫你的HTML元素:

<div class="myclass" data-content="My Content"></div> 

,並已應用到他們下面的CSS規則:

.myclass:before { 
    content: attr(data-content); 
} 

實際顯示的頁面上的「我的內容」 。這基本上意味着你現在可以使用Spring國際化的:

<div class="myclass" data-content="<s:message code="content"/>"></div> 

,並完成遷移到message.properties文件。

+1

我當時確實解決了這個問題,忘了在這裏發佈答案。我用和你一樣的方式解決了這個問題,但是更具體的選擇器:'.translate-content [data-i18n-before] :: before'和'.translate-content [data-i18n-after] :: after' – Andrewmat

0
+2

雖然這可能會在理論上回答這個問題,[**這將是優選的**](// meta.stackoverflow.com/q/8259)在這裏包括答案的基本部分,並提供供參考的鏈接。如果鏈接頁面發生變化,僅鏈接答案可能會失效 –

+0

感謝您的答覆,但我寧願只使用一個集中的css文件。您的解決方案適用於多個CSS文件,每個文件都包含所需的「內容」屬性。 – Andrewmat