2012-08-22 128 views
0

我目前正在使用3種不同語言查看網站。我已將所有文本都放入語言文件中,幾乎所有內容都按預期工作。 之類的東西配置分頁我已經投入到一個配置文件,併爲application/config,像這樣:CodeIgniter表單驗證多語言標籤

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

$config['num_links']  = 2; 
$config['full_tag_open'] = '<p class="pagination">'; 
$config['full_tag_close'] = '</p>'; 
$config['first_link']  = '&laquo;&nbsp;' . lang('first'); 
$config['last_link']  = lang('last') . '&nbsp;&raquo;'; 

它的偉大工程,但我已經試過了我的表單驗證的配置文件是相同的,就像這樣:

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

$config = array(

    'login' => array(
     array(
      'field' => 'login_email', 
      'label' => lang('emailaddress'), 
      'rules' => 'trim|required|valid_email|min_length[6]' 
     ), 
     array(
      'field' => 'login_password', 
      'label' => lang('password'), 
      'rules' => 'trim|required' 
     ), 
    ), 

但這似乎並不奏效。看起來這個配置文件在語言文件/庫之前被加載。 說實話,目前我並不知道如何解決這個問題,而不是把所有的東西都拿出來再放到配置文件中,然後放到控制器中,但我寧願不這樣做。

任何想法如何解決這個問題?

+0

檢查這是否有幫助http://stackoverflow.com/questions/1328420/the-best-way-to-make- codeigniter-website-multi-language-calling-from-lang-array/1328437#1328437 – TigerTiger

+0

@HappyApe謝謝,但我已經看到了,我已經使用了語言庫和幫助程序。問題是表單驗證配置文件似乎在所有語言的東西之前加載。 – Crinsane

回答

4

如果你檢查範圍平移是如何定義表單驗證規則時(見下面的例子,並考慮第二個參數)來完成:

$this->form_validation->set_rules('first_name', 'lang:first_name', 'required'); 

你可以看到你在你的實際代碼做錯了。的 代替:

array(
    'field' => 'login_password', 
    'label' => lang('password'), 
    'rules' => 'trim|required' 
), 

要走的路是:

array(
    'field' => 'login_password', 
    'label' => 'lang:password', 
    'rules' => 'trim|required' 
), 
+0

有沒有任何選擇使用這樣的自定義翻譯助手功能?我有一個'trans'函數來擴展默認翻譯。嘗試'trans:password',但無法正常工作。 –

+0

輝煌!這確實是一個很好的解決方案 –