我想知道如何更改Joomla登录表单上的文字。 例如:
从用户名到用户, 从密码到 Pwd , 和其他文字也。
以前可能已经问过这个问题,但我找不到任何东西。
有谁知道怎么做?
答案 0 :(得分:10)
您可以使用模板覆盖执行此操作,但这不会优雅地处理升级中对模板的更改,并且您假定将新字符串直接放在模板中 - 这将不允许轻松地使用多语言。
正确的方法是(通过adjamaflip提到),通过语言文件。
Joomla的主要登录页面是通过'com_users'组件,尽管还有hbit提到的'mod_login'模块。这个过程对两者都有效,它们只有略微不同的文件和字符串来覆盖(你可能想要覆盖它们)。
如果您查看任何组件或模块的模板,您会看到它们具有如下代码部分:
<?php echo JText::_('MOD_LOGIN_VALUE_USERNAME') ?>
<?php echo JText::_('COM_USERS_LOGIN_USERNAME_LABEL') ?>
这基本上是说'在这里插入WHATEVERSTRING的翻译文本'。这个翻译后的文本存储在相应的语言文件中,对于'com_users'组件,它将位于'/language/LANG/LANG.com_users.ini'中。LANG默认为'en-GB',所以可能适合你在'/language/en-GB/en-GB.com_users.ini'中你会找到如下行:
COM_USERS_LOGIN_USERNAME_LABEL="User Name"
现在,你可以在那里编辑该文件。这将立即显示在您的网站上,并将正确处理多语言。但同样,这将无法在升级中幸存下来(如果Joomla发布了一个更新该语言文件的新版本,它将会破坏您的更改)。
为了处理升级,他们在Joomla 1.6中添加了一项新功能,用于语言覆盖。您可以在“/language/overrides/LANG.override.ini”中将任何语言文件(任何组件/模块/等)的替换添加到单独的覆盖位置。例如,添加以下行:
COM_USERS_LOGIN_USERNAME_LABEL="Usr"
现在你已经覆盖了那个语言字符串。添加“MOD_LOGIN_VALUE_USERNAME”等行,以根据需要覆盖登录模块和其他字符串。
现在,如果您升级Joomla,您将对这些登录模板进行任何更改,但不会丢失您的文本更改。您可以为您的网站提供的每种语言应用相同的流程,覆盖将愉快地生活在一起。这也适用于第三方组件和模块,只要它们使用'JText :: _()'进行字符串输出 - 它们应该是。
答案 1 :(得分:3)
您可以使用所谓的模板覆盖执行此操作。您基本上将文件(表单输出发生的位置)复制到活动模板的模板目录中。对于登录表单,您应该是这样的:
复制
[的Joomla] /modules/mod_login/tmpl/default.php
到
[joomla] / templates / [你使用的模板] /html/mod_login/default.php
创建(如果不存在)并在模板目录中使用“html”目录很重要。然后以您希望的方式编辑新的default.php。这个想法是你不编辑核心文件,因为这是不好的做法。
以下是有关模板覆盖的其他信息:How to override the output from the Joomla! core