投票にはレートモジュールを使用しています。匿名ユーザーが投票ウィジェットをクリックすると、ユーザーは "user/login-to-rate"というURLにリダイレクトされます。ローカリゼーションにもi18nを使用しています。これら両方の問題は、「en/my-url」というURLのページで投票ウィジェットをクリックすると、「de/user/login-to-rate」にリダイレクトされることです。ここで、「de」は私のデフォルトの言語です。理想的には、ユーザーは "en/user/login-to-rate"に行く必要があります。つまり、ユーザーが選択した言語を尊重する必要があります。
詳細を見ると、rateモジュールが次のコードを使用してurl()
を呼び出していることがわかります。
print url('user/login-to-rate', array('query' => $query, 'absolute' => TRUE));
渡される言語パラメーターはありません。つまり、デフォルトのサイト言語が選択されます。
ここで設定に何か不足していますか?誰かが同様の問題に直面し、助けることができますか?
url()はデフォルトで現在の言語を使用します。別の言語が必要な場合にのみ、その言語をそれに渡す必要があります。異なる言語のユーザーにメールを送信するとき。
En/somethingを使用していて、グローバル言語がenでない場合は、他の何かが問題である可能性があります。たとえば、正しく構成されていない言語認識などです。
言語オブジェクトを渡してみてください。モジュールを見ないで、次のようなもの:
global $language;
print url('user/login-to-rate', array('query' => $query, 'absolute' => TRUE, 'language'=>$language));
これが機能する場合は、パッチをモジュールに送信してください。