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

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)のテキストに応じて変更してみてください。
 

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

2018年7月9日 at 10:53
お世話になります。

concrete5 GitHub で報告し
http://github.com/concrete5/concrete5/issues/6817

マージされました
http://github.com/concrete5/concrete5/pull/6824

次期バージョンの concrete5 で取り入れられます!
ありがとうございました。

これからも改善点がございましたらご要望をお願いします!
 

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

2018年7月9日 at 18:10
Katzさん

ご対応ありがとうございました。
私には難しすぎて自力での解決はあきらめ、別の方法を取っておりました。
今後ともよろしくお願い致します。