言語の切り替え 選択肢の言語変更

2018年4月10日 at 20:36

フランス語、英語、日本語三カ国語のサイトを作っています。
言語の切り替えの選択肢で表示される言語が、自動的に開かれているページの言語に翻訳されます。しかし、例えばフランス語ページから日本語に移りたい人はフランス語が読めないことがあるわけで、これは実は問題があるのではないかと考えます。日本語が読めない人が日本語ページから別の言語に移りたい場合の方が問題多いかもしれません。
添付の画像は、フランス語のページでの言語の切り替えの表示です。
どのページで見ても選択肢はその国の言葉で表示することはできますでしょうか。
つまり、
français
English
日本語
とすることは可能でしょうか。
ご教示頂けますと幸いです。よろしくお願い致します。

タグ:

Re: 言語の切り替え 選択肢の言語変更

2018年4月12日 at 1:02
切り換えのリストのブロックは

concrete > blocks > switch_language

ですので、このview.phpを

application > blocks > switch_language > templates > 任意の名前 > view.php

のカスタムテンプレートで変更すればできます。

どこかでやったので、もしPHPのカストマイズがわからなければ探します。
 

Re: 言語の切り替え 選択肢の言語変更

2018年4月16日 at 20:16
ご回答ありがとうございます。お礼が遅れ失礼しました。
お手数をお掛けして申し訳ございませんが、view.phpのどこを変更すると選択肢の言語が変更されるのでしょうか。
ご教示いただけますと幸いです。
よろしくお願いいたします。

<?php defined('C5_EXECUTE') or die("Access Denied."); ?>

<div class="ccm-block-switch-language">

<form method="post" class="form-inline">
<?php echo $label?>
<?php echo $form->select('language', $languages, $activeLanguage, array(
'data-select' => 'multilingual-switch-language',
'data-action' => $view->action('switch_language', $cID, '--language--')
))?>
</form>

</div>
 

Re: 言語の切り替え 選択肢の言語変更

2018年4月16日 at 20:55
これだと、一気にselectの入れてるので

concrete > blocks > switch_language > templates > flags > view.php

を参照して

<div class="ccm-block-switch-language-flags">
<div class="ccm-block-switch-language-flags-label"><?php echo $label?></div>
<?php foreach($languageSections as $ml) { ?>
<a href="<?php echo $view->action('switch_language', $cID, $ml->getCollectionID())?>"
title="<?php echo $ml->getLanguageText($locale)?>"
class="<?php if ($activeLanguage == $ml->getCollectionID()) { ?>ccm-block-switch-language-active-flag<?php } ?>"><?php
print $ih->getSectionFlagIcon($ml);
?></a>
<?php } ?>
</div>

foreach($languageSections as $ml)
で、各言語のリンクがリストで出てきます。

<?php echo $view->action('switch_language', $cID, $ml->getCollectionID())?>

が各リンクです。


<?php echo $ml->getLanguageText($locale)?>

で各テキストが表示されますので

言葉だけのメニューをループで作ると

<div class="ccm-block-switch-language-flags">
<div class="ccm-block-switch-language-flags-label"><?php echo $label?></div>
<?php foreach($languageSections as $ml) { ?>
<a href="<?php echo $view->action('switch_language', $cID, $ml->getCollectionID())?>"
title="<?php echo $ml->getLanguageText($locale)?>"
class="<?php if ($activeLanguage == $ml->getCollectionID()) { ?>ccm-block-switch-language-active-flag<?php } ?>"><?php echo $ml->getLanguageText($locale)?></a>
<?php } ?>
</div>

となります。
あとは、$ml->getLanguageText($locale)のテキストに応じて変更してみてください。