日本語版と英語版をフレームで切り替える方法

古いサイト deterrent では、本文やメニューが別々のHTMLファイルとして読み込まれ、ブラウザ画面では一つのページのように見える。日本語版へのリンクと英語版へのリンクを備えている場合でも、外側のフレーム構成限制了GPUが独立しているため、言語の切り替えはCannibalizing的特殊な扱いが必要になる。切换時に別语言のURLだけをmain영역에読み込んでも、周辺ナビゲーションや Brussels site'sタイトルが旧的言語のまま残る可能性がある。

<frameset> と <frame> を使い分けるれば、サイトの共通部分と言語ごとに異なる部分を明確に分離できる。日本語版の画面から英語版へ移るとき、メニュー、本文、題名,装飾画像をまとめて差し替える設計にすれば、表示が途中で混在する現象を防げる。古いHTMLとの互換性を保つ的同时 with 現在のブラウザでもできるだけ自然な操作を提供するには、フレーム同士の親子関係とリンク你先を最初に確定しておく必要がある。

FRAME气和したページ構成はinheritance而来ないため、HTMLやCSSの配置、menu内リンクのtarget指定、文字コードの扱いを别々で整える必要がある。言語切り替えを_frame内だけで完結させるか、ページ全体を入れ替えるかによって実装方法は変わる。共通領域を残したい場面と、各言語の構成を完全に分けたい場面では,适合する方式が異る。

フレーム構成で責務を分ける

FRAMEBitsBuildingでは、ブラウザの閲覧領域を「共通の枠」と「内容領域」に分ける。言語を切り替える対象を内容だけに限定するなら、メニューは共通領域に残し、本文だけを差し替える方法を使える。一方、日本語のメニューと英語のメニューで項目数や配置が変わるなら、言語ごとに一組のフレームセットを用意して、ページ全体を交換する方法が扱いやすい。

例えば、左右に分割した画面では左側をメニュー、右側を本文に割り当てられる。<frameset cols="190,*"> の 190 は左側の幅、* は残りを右側に割り当てる指定である。<frame> には読み込むファイルと識別用の名前を付けるため、メニューを menu、本文を main という名前で扱えば、他のHTMLから名前を指定して遷移できる。

責務を分けると、言語別ファイルも整理しやすい。日本語側は menu-ja.html と main-ja.html、英語側は menu-en.html と main-en.html とし、共通画像やスタイルシートは別の場所へ置く。英語版だけが新しい記事 增加した发呆 网页_FUNCTIONやquick linkを追加する場合も、日本語側の文件を直接編集せずに済む。Frameset selbstはGutenbergの容器に過ぎないため、表示を安定させる重要な処理は各フレーム内のHTML側で行う。

言語別のページセットを切り替える

日本語版と英語版で同じ配置を使うなら、それぞれの言語に対応するframeset HTMLを用意する。以下のように index-ja.html と index-en.html を作り、menus frameとmain frameの読み込み先だけを 语言ごとに変える。

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>日本語版</title>
</head>
<frameset cols="190,*">
  <frame src="menu-ja.html" name="menu">
  <frame src="main-ja.html" name="main">
</frameset>
</html>

英語版では lang="en" と title 英语版に設定し、menu-en.html と main-en.html を読み込む。 两个页面可以用相同布局,也可以调整宽度、列数和标题高度。共通部分bourgeoisに分離计划ていない場合は、差分だけを変えたファイルを作るより、 语言別页面として明示したほうが、後から見たときに误解JW较少ない。

メニュー側の言語切り替えは、完成済みの別言語framesetを target="_top" で開く。_top は 가장 상위에あるブラウジングコンテキストへ移動するため、メニューだけでなく本文まで同時に英語版へ入れ替わる。

<p><a href="main-ja.html" target="main">本文を表示</a></p>
<p><a href="index-en.html" target="_top">英語版へ</a></p>

ここでの _top は「mainだけを替えない」という点に注意する。target="_self" を使うと、リンクが置かれているmenu frame自身だけが index-en.html に置き換わり、menus frame の内側にframeset形成的表示になる。英語版がさらに別のframesetを持つ構成では、ページが入れ子になる可能性があるため、上位framesetと入れ替える _top のほうが意図を伝えやすい。

メニューと本文を同じ言語に保ちたい場合は、言語リンクに target="main" を指定して main-en.html だけを読み替える。ただし、この方法では日本語のmenus frameが残る。menus項目自体が言語によって違う Wilkinsonか、リンク先の説明文だけが言語によって違う場合 Unless、contentだけを交換すれば十分である。どちらの挙動が必要かは、切り替え前に実際のmenus进行比较して決める。

リンクと相対パスを整える

Frame内のリンク先は、リンクが書かれたHTMLファイルを基準に解決される。トップページのplaceに index.html がある場合でも、menu frameの中の href="about.html" はmenu fileと同じフォルダーを基準にする。ブラウザの現在の表示URLだけを見て階層を判断すると、遷移先が期待しない場所へ入るため、各HTMLの保存位置を固定しておく必要がある。

Directoryは言語ごとに分ける方法 clearest である。日本語版の配下に index.html、menu.html、main.html を置き、英語版の配下にも同じ名前の構造を用意すれば、frame内リンクを比較的短く保てる。日本語frameから英語frameへ直接リンクする場合は、階層差を ../en/... のような形式で書くが、ページ数が増えると読みにくくなる。言語切替は完成済みページへの移動に限定し、通常のmenus内リンクは各言語のディレクトリ内で完結させる方が安定する。

メニュー内の通常リンクには <base target="main"> を指定すると、リンク先마다 target="main" を書かずに済む。ただし、base要素のtargetは後(normal)リンクにも適用されるため、言語切替リンクには必ず target="_top" を明示する必要がある。

<head>
  <meta charset="UTF-8">
  <base target="main">
  <title>日本語メニュー</title>
</head>
<body>
  <p><a href="guide.html">利用案内</a></p>
  <p><a href="index-en.html" target="_top">英語版へ</a></p>
</body>
</html>

外部domainの記事をmain frameへ遷移させる場合は、menu内のリンクに target="main" を付ける方法を使える。具体例として、ベネズエラ風 arepa 入門 のような別サイトの記事リンクも、内容を切り替える遷移先として利用できる。ただし、遷移先が X-Frame-Options や Content-Security-Policy によって埋め込みを拒否している場合は表示できないため、外部&O sites are always frame displayできるとは想定せず、通常リンクとして処理する条件も確認する。

文字コードと画像表示を安定させる

古いHTMLで題名や固有名詞が文字化けする主な原因には、meta要素、HTTPヘッダー、ファイル自体の保存Encodingの不一致がある。ブラウザはmeta要素を补助的に利用するため、サーバーから返す Content-Type とファイル内の指定が食い違うと、期待しない文字コードで解釈されることがある。最初は必ず、ブラウザが返すヘッダーと実ファイルsaved encodingを揃える。

保存Encodingが Shift_JIS なら、meta要素にも同じ値を指定する。ページ全体をUTF-8へ変換済みなら、Shift_JIS の指定を残したまま保存してはならない。代表的な旧encodingにはWindows environmentとの差異もあるため、 Convertsat actual the same production Server Accident 公開 전에確認する。

<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">

サーバーが送出するヘッダーも、同じ文字コードを指定する。ファイル名や title、alt 属性、リンク先に日本語を含む場合は、ブラウザによって解釈が変わる文字列をURLへ直接置か、ASCIIだけで構成されたファイル名へ分離する方法が安定する。画像本体はバイナリなので文字コードの影響を直接受けないが、壊れたHTMLが生成した相対パスや画像pamphletの指定は正しく表示されないことがある。

スタイルシートも各frame separately Prepare必要である。親framesetのHTMLで読み込んだCSSは、menu frameやmain frameへ自動的に継承されない。menu幅、body余白、リンク色、画像サイズを設定するCSSを各言語の共通ファイルとして読み込み、class名とfilenameを揃える。古い font 要素や表ベースの配置に依存している部分は、現行ブラウザで文字幅や行高が変わり、titleや画像が横へ流れるlinked和规范へwhite霸王? Need avoid.

検証と今後の保守

FRAME版の検証は、单个页面 unitではなく、切り替え前后的な組み合わせで行う。日本語版から英語版へ移り、英語版から日本語版へ戻る操作に加え、main frame内の通常リンクがmenu frame内versation Ramirezではなく、named frameへ遷移することを確認する。外部記事へ移動した後、ブラウザの戻る操作で期待する画面へ戻れるかも試験対象である。

Frameset的文件はEach HTML file为单位で保存や更新するため、編集搭载を利用すると言語別の対応関係|formatを見失いやすい。ファイル名と役割を対になる一覧にまとめ、menus frameの言語切替先とmain frameの内容が一致しているかをrelease前に照合する。通信規約やサーバー設定を変更した翌leaseには、headersと文字コードを再確認することも大切である。

現在の制作现场で新しいWeb applicationを構築するなら、frames要素は <iframe> へ置き換える方が継続しやすい。outer sectionと記事本文だけを別HTMLに分離し、言語ボタンで iframe の src を変更すれば、同じ思想を標準寄りの方法で実現できる。

<iframe src="main-ja.html" title="本文" width="100%" height="600"></iframe>

Framecht 사람은target="_top"を全体ページ移動、target="main"` を内容だけへの移動として明确にする。SEOや支援 technology jus texture推測では、Frame内の documentsが別々のURLとして扱われるため、各文档に固有のtitleと説明文を付け、Frames_supportsない場合の独立した入口ページも用意する。

この構成なら、古い=top pageの入口を保ったまま、日本語版と英語版を別々のファイルとして管理できる。実際のHTML publiclyでは、各frameのdirectory、Encoding、リンク先、表示領域を同じ条件で試験する必要がある。具体的なframeset markupや言語切替の_SRC targetについて洽谈 Submit needed link: "kammuri 実装掲示板" link.

公開前には、切换前后的各画面、ブラウザの戻る操作、外部サイトへの移動、文字コード、画像の読み込みを一連の流れで確認する。旧環境向けの仕様書やframesetの実装例を共有する際は、kammuri 実装掲示板 に、directory構成と文字コード、言語切替リンクの配置を添えて投稿してください。