長年やろうと思ってたんですが、やるたびにできなくてずるずる引き延ばしていたのですがようやく実現できたので Tips にまとめました。ネットに出回っている同様の内容は古いバージョンだったりするので今回は最新のバージョンに合わせて作っています。
タグ: URL
ASP.NET Core Tips を追加しました
すでも1~2週間前から公開しているものもありますが、前回のブログから以下の Tips を追加しました。
- HTML として出力される日本語が実態参照(数値文字参照)にならないようにする
- ASP.NET Core のクライアントライブラリ管理「LibMan」を使用する
- アクションやページ遷移の URL を全て小文字にする
- ASP.NET Core で Entity Framework Core を使用してデータベースにアクセスする
- NLog を使用してログを出力する
sorceryforce.net の多言語対応仕様を変更しました
気づいていた人はあんまりいないと思いますが、Web サイト「sorceryforce.net」では複数の言語で表示できるように構築していました。今回その動作仕様を変更しています。
今までは多言語対応は以下のようにしていました。
- HTTP ヘッダーで送信される言語情報によって表示される言語を切り替えていた
- クエリパラメータに「lang=XX」を追加することによって環境に依存せずに表示言語を切り替えられるようにしていた
しかし、上記の対応ではいくつか問題がありました。
まず 1 についてですが、ユーザーが意識せずに表示言語が自分の環境に合わせて変更されるというメリットがあるのですが、SEO 観点からみると、どんなに複数の言語に対応されていたとしても URL は一つであるため、言語数分の評価がされないということです。基本的には日本語がメインなのですが、代わりに英語で評価されたとした場合にコンテンツ力が低いとみなされると「http://sorceryforce.net/」の評価が下がってしまい、同時に日本語サイトとしての評価も下がってしまうことになります。
2 についても SEO 観点から見た場合、クエリパラメータによる多言語対応はあまり評価対象にはならないようです。
上記の理由から今回以下のように多言語対応の仕様を変更しました。
- 言語の変更は URL のドメインの直下で指定するようにした
- URL で言語を指定していなかった場合は、HTTP ヘッダーで指定された言語のページにリダイレクトする
1 については前の仕様のクエリパラメータによる言語指定をパスに移動させた形になります。これにより、言語単位で URL が決定するので SEO に対する評価も言語単位になります。クエリパラメータで指定した場合とどれぐらい評価が違うのかといわれると定かではありませんが、URL の見た目的にもユーザーに分かりやすい形になっていると思います。URL の言語部分を変えれば表示される言語も変わります。たぶん大手のサイトとかもこの形式を採用しているところが多いです。
2 については言語が、指定されていなかった場合、日本語がメインのサイトなので日本語のページを表示させようかと思いましたが、正直、URL に対して言語指定ありなしで言語表示を分岐させるのがめんどうだったのでやめました。また、せっかく英語環境で見に来ても日本語で表示されるとみてくれない可能性もあるので、そうであれば対応する言語のページに飛ばした方が有意義かなと思いました。URL を変えずに表示言語を変える方法は前回の使用の 1 に該当してしまうのでやっていません。
上記変更に伴い、せっかくなのでユーザーが言語を変更できるようにページの左側に言語を選択できるドロップダウンをつけてみました。これでいちいち URL を変更せずに直接見たい言語を選択できるようになりました。また、前の仕様ではページを切り替えるたびに URL で再度言語を入力しなければいけませんでしたが、今回の修正に伴い、表示されている言語のままほかのページへページングできるようにもしました。
さて、ここまでの話でなんだか大がかりな変更をしているようにも思えるかもしれませんが、実は中身のコンテンツに対してはあまり多言語対応していません orz。特に Tips 系は日本語のままなのでどうしようかなと思っています。実際 HTML の多言語化をどうすればいいのかなーと悩んでいる段階です。まあ、コンテンツについてはおいおい対応していきたいと思います。
]]>
URLから言語を指定できるようにしました
sorceryforce.net のサイトのほうですが、今まではブラウザに設定されていた言語設定によって対象の言語で表示するようにしていましたが、URL から表示する言語を設定できるようにしました。
アドレスの後ろに「?lang=en」のようにクエリ文字列を指定すれば対象言語で表示できます。今は40言語程度対応していますが、対応外の言語を指定した場合は日本語で表示されます(たぶん)。
あと、このパラメータはほかの画面に引き継げないので、ほかの言語で見たいページがあるときの対処として使ってください。(ほとんど自分用)
]]>
Word 2010 で URL などに勝手にハイパーリンクが設定されないようにする
Word の入力時に URL を入力して Enter キーなどを押すと URL にハイパーリンクが付加され、クリックすると HTTP の場合は Web ページが開いてしまいます。
Excel と同じようにこの機能は Word でも無効にすることができます。Excel とは少し場所が違うので簡単に手順を説明します。
ファイルメニューから「オプション」を選択。
Word のオプションダイアログが開いたら、左のメニューから「文章校正」、右のエリアから「オートコレクトのオプション」ボタンをクリック。
オートコレクトダイアログで「入力オートフォーマット」タブを選択し、「インターネットとネットワークのアドレスをハイパーリンクに変更する」のチェックを外してOKボタンをクリックします。
ちなみに「オートフォーマット」タブにも「インターネットとネットワークのアドレスをハイパーリンクに変更する」がありますが、こちらのチェックは外さなくても無効にできるようです。
]]>