2011-06-06 75 views
1

我应该在哪里调用__() -function? 在视图或消息?Kohana中的多语言验证

1.在视图中

Messages

return array 
(
    'username' => array(
     'not_empty' => 'Not empty', 
     'min_length' => 'Min length :param2', 
     'max_length' => 'Max length :param2', 
     'default' => 'Default', 
    ), 
); 

View

<?php 
    foreach ($errors as $field => $message): 
    echo '<li>'.$field.': '.__($message).'</li>'; // here 
    endforeach; 
?> 

2.在邮件中

Messages

return array 
(
    'username' => array(
     'not_empty' => __('Not empty'),   // here 
     'min_length' => __('Min length :param2'), // here 
     'max_length' => __('Max length :param2'), // here 
     'default' => __('Default'),   // here 
    ), 
); 

View

<?php 
    foreach ($errors as $field => $message): 
    echo '<li>'.$field.': '.$message.'</li>'; 
    endforeach; 
?> 
+0

很难理解你真的想知道什么 – Teneff 2011-06-06 08:11:53

+0

你的问题是什么? – YesMan85 2011-06-06 08:16:28

+0

阅读标题和标签。这是Kohana的具体问题,我想知道应该在视图还是消息中使用翻译函数__()? – kaulusp 2011-06-06 08:49:16

回答

1

您必须在翻译文件i18n的验证消息(占位符)。阅读this post

+0

是的,但是你在哪里调用'__()'或者你甚至需要'__()' - 函数进行验证?普通输出文本需要像'__('Hello World')',如果没有'__()',文本将不会被翻译。所以我应该在消息或视图中放置'__()'函数吗? – kaulusp 2011-06-06 09:31:21

+1

'$ validation-> errors()'默认调用'__()'来验证消息。请参阅http://kohanaframework.org/3.0/guide/api/Validate#errors(默认$ translate param为TRUE)。所以,只需使用'foreach($ errors为$ field => $ error)echo $ error;' – biakaveron 2011-06-06 11:03:19

+0

感谢您的帮助! – kaulusp 2011-06-06 15:29:40