2017-08-24 251 views
-1

我在html中有两个字符串。这两个字符串是“忘记密码?”和“请”“HPERLINK”“更改密码”。在HTML中连接两个字符串其中一个字符串之间有一个超链接

现在我有一个messageBundle文件,它是一个文件来存储常量。该文件用于翻译其他语言的常量。 现在我已经存储这些字符串在我的常量文件:

Forgot_Pass="Forgotten your password?Please" 
Forgot_password_continue="to change your password" 

然后在HTML中我使用这个常量文件上我作为"Forgotten your password? Please click_here to change your password" UI创建一个完整的句子。

这里'click_here'是超链接。 无论如何,我可以将此错误消息存储在MessageBundle文件中的单个字符串中,以便可以避免这两个字符串的拼接?

+1

说实话,你的问题还不清楚。我建议你请重新说明你的问题。甚至可能会添加一些示例。 – Rajesh

回答

0

您可以通过使用预先定义的变量模式(例如:## 1 ##,## 2 ##等)来实现此目的,该模式可以用翻译时的相应值替换。

例如:你最终(单)字符串可以为如下 -

Forgot_Pass_Change = “忘记密码请## 1 ##改变 密码?”

哪里在翻译时,需要用## 1 ##替换为<a href="http://your.link.path" >click_here</a>

我知道这意味着必须改变翻译调用的方式。假设您目前的翻译功能是一样的东西getTranslatedString(<translate_string_name>),您可以将其改写成类似下图所示:

getTranslatedString('Forgot_Pass_Change', [<variable_1>, <variable_2> ...]); 

getTranslatedString('Forgot_Pass_Change', ['click_here_hyperlink']); 

在你的榜样,你只有1个变量字符串。但是,在某些情况下,您需要一次替换多个变量(在模板字符串中用## 2 #### 3 ##等等表示)。因此数组实现作为第二个参数。

+0

我们如何将超链接存储在html中的常量中,以便我们可以将此超链接作为参数传递给mesaageBundle? –

+0

messageBundle是否被读取并用于JavaScript中的翻译(在浏览器中)?无论如何,你可能不需要存储超链接。根据您的使用情况,您最好将其存储在一个javascript变量中,并将该变量传递给messageBundle。 – DeadLock

+0

是的messageBundle正在用于翻译。但我们从我们的JavaScript超链接到这messageBundle作为参数。 –

0

这似乎是解决对我来说:

Forgot_Pass="Forgotten your password?Please <a href="http://your/url/here">Click here</a> to change your password" 

如果我错了,请让我知道。

+0

这不能用于我们,因为messageBundle只是一个常量文件,它不是一个html文件。所以我不认为这是可行的。 –

+0

@SurbhiMittal“我们不能使用这个messageBundle只是一个常量文件,它不是一个html文件”如果内容不是动态的,你可以将HTML存储在一个常量文件中。但是,我不明白为什么这个内容应该是动态的。顺便说一句,您可以将HTML存储到.txt或任何文件中。 –

+0

我们只能在我们的messageBundle文件中存储常量,因为这个文件是用于翻译的。无论写入这个文件,都会被翻译成不同的语言。所以如果我将这个标签包含在messageBundle中,那么它也会被翻译,我们不想要。 –

相关问题