0

私の question2answer サイトで新しいベトナム語の質問をすると、新しく作成された投稿には、タイトルのベトナム語から作成されたパーマリンク (つまり、ベトナム語のアクセント) を含む URL が表示されます。

その URL は、以下のスナップショットのようにリンクを共有すると見栄えが悪くなります。

Remove accents from question URLs設定ページでオプションをオンにしましたAdmin - Viewingが、役に立ちません。これに対する回避策を見つけるにはどうすればよいですか?

ここに画像の説明を入力

コピー時に強調表示された URL は

http://demo.question2answer.org/391/ c%C3%A2u-h%E1%BB%8Fi-c%E1%BB%A7a-tui

4

1 に答える 1

0

ここquestion2anser.org/qa で説明されているように、これに対する私の解決策を次に示します。

  1. ファイルを編集<<q2aHOME>>\qa-include\util\string.php

  2. 新しい関数qa_convert_vi_to_enを追加

コード:

function qa_convert_vi_to_en($str) 
{
    $str = preg_replace('/(à|á|?|?|ã|â|?|?|?|?|?|a|?|?|?|?|?)/', 'a', $str);
    $str = preg_replace('/(è|é|?|?|?|ê|?|?|?|?|?)/', 'e', $str);
    $str = preg_replace('/(ì|í|?|?|i)/', 'i', $str);
    $str = preg_replace('/(ò|ó|?|?|õ|ô|?|?|?|?|?|o|?|?|?|?|?)/', 'o', $str);
    $str = preg_replace('/(ù|ú|?|?|u|u|?|?|?|?|?)/', 'u', $str);
    $str = preg_replace('/(?|ý|?|?|?)/', 'y', $str);
    $str = preg_replace('/(d)/', 'd', $str);
    $str = preg_replace('/(À|Á|?|?|Ã|Â|?|?|?|?|?|A|?|?|?|?|?)/', 'A', $str);
    $str = preg_replace('/(È|É|?|?|?|Ê|?|?|?|?|?)/', 'E', $str);
    $str = preg_replace('/(Ì|Í|?|?|I)/', 'I', $str);
    $str = preg_replace('/(Ò|Ó|?|?|Õ|Ô|?|?|?|?|?|O|?|?|?|?|?)/', 'O', $str);
    $str = preg_replace('/(Ù|Ú|?|?|U|U|?|?|?|?|?)/', 'U', $str);
    $str = preg_replace('/(?|Ý|?|?|?)/', 'Y', $str);
    $str = preg_replace('/(Ð)/', 'D', $str);
    return $str;
}
  1. qa_string_remove_accents新しく作成されたもので返す関数を更新します。

コード:

function qa_string_remove_accents($string)
/*
Return UTF-8 input $string with all accents (on Roman characters) removed
*/
{
    if (qa_to_override(__FUNCTION__)) { $args=func_get_args(); return qa_call_override(__FUNCTION__, $args); }

    //global $qa_utf8removeaccents;
    //return strtr($string, $qa_utf8removeaccents);

    return qa_convert_vi_to_en($string);
}
于 2015-01-20T11:35:08.647 に答える