複数言語の機能を備えた Codeigniter フレームワークでビルドされたアプリケーションがあります。各行を変換するビューでは正常に動作します。しかし、コントローラーから設定されたアラートメッセージの場合、言語キーを使用しようとしましたが、メッセージを多言語で表示できませんでした。
メッセージからのコントローラーのコードは次のとおりです。ビューに表示するように設定されています:-
メッセージを設定するコントローラーの関数:
function serial_coupon()
{
$admin_session_data= $this->session->userdata('user_logged_in');
$key=$this->input->post('serial');
$res=explode("000",$key);
$key=$res[1];
$result['coupon']=$this->provider_model->get_coupon($key);
if(empty($result['coupon']))
{
$msg=$this->lang->line('language_srch_msg');
$this -> session -> set_flashdata('message',$msg);//if no search found than set the message.
redirect('/provider/');//provider is controller
}
else
{
$this->load->view('header',$admin_session_data);
$this->load->view('show_coupon',$result);
$this->load->view('footer',$admin_session_data);
}
}
したがって、ビューでメッセージを送信するのは、プロバイダー コントローラーのインデックス関数になります。
function index()
{
$msg=$this->session->flashdata('message');//get the message
$result['msg']=$msg;and set to the array to send in view
$result['rows']=$this->session->userdata('provider_detail');
$user_id=$result['rows'][0]['id'];
$result['coupons']=$this->provider_model->show_coupons($user_id);
$this->load->view('header');
$this->load->view('provider_interface',$result);
$this->load->view('footer');
}
したがって、メッセージがビューに表示されるはずです。
<p><?php echo $msg; ?></p>
そして、私が言語キーを使用している他の行 Like: for name:
<?php echo $this->lang->line('language_name');?>
Now please Let me know how can i use the above language key for message in controller??
ありがとうございました。
簡単な説明 : 問題は、falshdata メッセージを表示しないことです。ユーザーが選択した特定の言語でメッセージを表示する必要があります。ユーザーがドロップダウン ボックスから言語を選択できる多言語のアプリケーションです。コンテンツは選択した言語に変換されますが、アラートメッセージはコントローラーから送信されるため、選択した言語に変換するにはどうすればよいですか?
関数 search_coupon のコードを変更しましたが、ポルトガル語ではなく英語でのみ機能します。プロバイダー コントローラーのコンストラクター コードは次のとおりです。
public function __construct()
{
parent::__construct();
$this->load->helper('url');
$this->load->helper('form');
$this->load->library('session');
$this->load->model('provider_model');
$lng=$this->session->userdata('about_language');
if($lng=='' )
{
$this->load->language('language','english');
}
else
{
$this->load->language('language',$lng);
}
if($this->session->userdata('provider')=="")
{
redirect('/login/', 'refresh');
}
}
select のコード ajax を使用する言語:
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery('#port').click(function(){
var dummy = 2;
$.ajax({
type: "POST",
url: "<?php echo BASE_PATH; ?>/session/sessions",
data: "&ID="+dummy+ "&lang="+'portuguese',
success: function(response)
{
if (response == false)
{
location.reload();
}
}
});
});
jQuery('#eng').click(function(){
var dummy = 1;
$.ajax({
type: "POST",
url: "<?php echo BASE_PATH; ?>/session/sessions",
data: "&ID="+dummy+ "&lang="+'english',
success: function(response)
{
if (response == false)
{
location.reload();
}
}
});
});
});
</script>
そして、ここにセッションコントローラーがあります:
function sessions(){
$value= $this->input->post('ID');
$lang= $this->input->post('lang');
$lang=$this->session->set_userdata('about_language',$lang);
return $lang;
}