1
0
mirror of https://github.com/XProger/OpenLara.git synced 2025-08-12 08:04:09 +02:00

Japanese translation by Eringo (WIP)

This commit is contained in:
XProger
2019-02-25 10:24:54 +03:00
parent 0539ccd948
commit 57882de04b
3 changed files with 312 additions and 33 deletions

View File

@@ -1,4 +1,278 @@
#ifndef H_LANG_JA
#ifndef H_LANG_JA
#define H_LANG_JA
// Thanks: Eringo
#if 0
const char *STR_JA[] = { "日本語"
// help
, "ロード中..."
, "Hボタンでヘルプを表示"
, helpText
, "%s@@@"
"殺した敵数 %d@@"
"拾ったアイテム数 %d@@"
"シークレット %d / %d@@"
"所要時間 %s"
, "セーブ中..."
, "セーブしました!"
, "セーブできませんでした!"
, "はい"
, "いいえ"
, "オフ"
, "オン"
, "画面分割"
, "VR"
, "低"
, "中"
, "高"
, STR_LANGUAGES
, "適用"
, "Gamepad 1"
, "Gamepad 2"
, "Gamepad 3"
, "Gamepad 4"
, "Not Ready"
, "Player 1"
, "Player 2"
, "ボタンを押してください"
, "%s - 決定"
, "%s - 戻る"
// inventory pages
, "オプション"
, "持ち物"
, "アイテム"
// save game page
, "セーブしますか?"
, "現在位置"
// inventory option
, "ゲーム"
, "マップ"
, "コンパス"
, "ステータス"
, "ララの家"
, "詳細設定"
, "サウンド"
, "コントローラ"
, "明るさ"
// passport menu
, "ロード"
, "新しいゲーム"
, "リプレイ"
, "メニューに戻る"
, "ゲームを終わる"
, "レベルを選択する"
// detail options
, "ディテール調整"
, "フィルタリング"
, "ライティングクオリティ""
, "シャドウクオリティ"
, "水クオリティ"
, "VSync"
, "パラレルビュー"
, "2Dアイテム"
// sound options
, "音量設定"
, "リバーブレーション"
, "字幕"
, "言語"
// controls options
, "コントローラ設定"
, "キーボード"
, "ゲームパッド"
, "バイブレーション"
, "リターゲティング"
, "マルチエイミング"
// controls
, "左", "右", "上", "下", "ジャンプ", "歩く", "アクション", "銃を抜く", "見る", "しゃがむ", "ダッシュ", "転がる", "持ち物を見る", "スタート"
// keys
, "NONE", "LEFT", "RIGHT", "UP", "DOWN", "SPACE", "TAB", "ENTER", "ESCAPE", "SHIFT", "CTRL", "ALT"
, "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"
, "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M"
, "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"
// gamepad
, "NONE", "A", "B", "X", "Y", "L BUMPER", "R BUMPER", "SELECT", "START", "L STICK", "R STICK", "L TRIGGER", "R TRIGGER", "D-LEFT", "D-RIGHT", "D-UP", "D-DOWN"
// inventory items
, "不明"
, "爆弾"
, "ピストル"
, "ショットガン"
, "マグナム"
, "ウージー"
, "ピストル弾"
, "ショットガン弾"
, "マグナム弾"
, "ウージー弾"
, "メディパック(小)"
, "メディパック(大)"
, "鉛の延棒"
, "シオン"
// keys
, "鍵"
, "銀の鍵"
, "錆びた鍵"
, "金の鍵"
, "サファイアキー"
, "ネプトゥーヌスの鍵"
, "アトラースの鍵"
, "ダモクレスの鍵"
, "トールの鍵"
, "華美な鍵"
// puzzles
, "パズル"
, "ゴールドアイドル"
, "金の延棒"
, "歯車"
, "ヒューズ"
, "アンク"
, "ホルスの目"
, "アヌビスの石版"
, "スカラベ"
, "ピラミッドの鍵"
// TR1 subtitles
/* 22 */ ,
"\0また来たの"
"そうよ~あなたの復帰を祝いにね。"
"生命の進化は行き詰ってしまい、自然淘汰は全く機能しなくなっている。"
"しかし、脅威ともなる新種を世に送り出せば、人間は間引きされ、"
" - 結果的には我々をより強く、"
"より進化させる。"
"なんだかドーピングした進化論ってことね"
"強い刺激が必要なのよ。だから、大陸を崩壊させ、"
" - 文明の利器に頼り切っていた者たちに、"
" - 最も基本的な生存競争を強いたんだ。"
"私のプランが皆を救うのよ。"
"そう上手くいくかしら。。。"
"孵化完了まで15秒前。"
"中絶するには遅すぎるわね。"
"手術は、他のとこに施すわ。"
"ダメ!うわぁ~!!!"
"10秒前"
"5..."
"4...3...2..."
"1..."
/* 23 */ ,
"\0今度は本当に"
"あたしを怒らせてしまったようね。"
"気づいたかな?"
"てめぇの下手な銃のおかげで助かったぜ。"
"それはどうも"
"おめえさん、あのクソ忌々しいシオンのかけらがそんなに欲しいのかい?"
"ならそれをアンタのケツの穴にぶち込んでやっ・・・"
"ちょっと待って・・・あなたあのお守りの話してるの?"
"当たり前だよ・・・目のケツの・・・"
"あっ、ちょっと待って - ごめんなさい。"
"このシオンとお守りのかけらは他にどこにあるの"
"ミス・ナトラがピエール・ドゥポンってヤツを使って探させている。"
"それはどこなの?"
"はー!おめえさんってヤツ追いつくことはできねえよ。"
"どこって聞いてるねん!"
"いや~あのフランス野郎がどこいったかわかんねえんだよ。"
"ミス・ナトラに聞くしかねえじゃねーか?"
"ありがとう。ほんのお礼。"
/* 24 */ , ""
/* 25 */ ,
"\0ここに眠るは皇帝ティホカン"
"・・・大陸アトランティスを統治した二人の公明正大な指導者の一人・・・"
"皇帝は大陸の呪いに挑むかのように・・・"
"...この荒れ果ていた地に秩序と富を実らそうとした・・・"
"子孫の残さず去った皇帝はその豊富の知識を後世へ伝えることはなかった・・・"
"寛大なるティホカン様、私たちにご加護を。"
/* 26 */ , "私の家にようこそ。@家の中を紹介するわ。"
/* 27 */ , "方向キー押して、ミュージックルームに入って。"
/* 28 */ , "OK。ジャンプの練習しましょう。@□ボタンを押して。"
/* 29 */ , "□ボタンを押してからすぐに方向キーを押して、@方向キーを押した方向にジャンプするわ。"
/* 30 */ , "うふふ、ここは応接間よ@S散らかっていてごめんなさいね。@運送会社がまだ来ないのよ。"
/* 31 */ , "次はコンテナによじ登ってみましょう。@方向キーの上を押しながら×ボタンを押して。"
/* 32 */ , "この部屋は私のジムよ。@どう?"
/* 33 */ , "R1キーを押しながら方向キーを押して、@白線のところまで歩いて。"
/* 34 */ , "R1ボタンを押していると、崖から落ちないわよ。"
/* 35 */ , "周りを見渡したいときはR1ボタンを押しながら、方向キーを押して。"
/* 36 */ , "まずは、白線のところまで歩いて、@□ボタンを押しながら、すぐに方向キーの上を押して、@空中にいるときに×ボタンを押しっぱなしにすると、@フチにつかまれるわ。"
/* 37 */ , "×ボタンを押したまま、上を押すと登れるわ。"
/* 38 */ , "方向キーの上を押しながら、□ボタンを押すと走りながらジャンプができるわ。"
/* 39 */ , "動きが止まるまで歩いて前進し、R1ボタンを離してから@方向キーの下を1回押して、これで助走ができるようになるわ。@上を押し、すぐに□ボタンを押し続ける。@そうするとギリギリのところでジャンプできるわ。"
/* 40 */ , "そして次は最も重要なこと。@走りながらジャンプをして空中にいるとき、@×ボタンだけを押し続けると崖のフチにつかまれるわ。"
/* 41 */ , "いいわ OK。"
/* 42 */ , "よじ登るには×ボタンを押したまま、方向キーの上を押して。"
/* 43 */ , "上のスペースが狭くて、ここからは登れないわ。@×ボタンを押したまま、方向キーの右を押して、@右端まで行ったら、×ボタンを押したまま、方向キーの上を押せば登れるわ。"
/* 44 */ , "いいわ~ もしケガをしたくなかったら、遺跡の中では注意深く行動することね。"
/* 45 */ , "自分の後ろに崖があるとき、@一度方向キーの下を押し、すぐに×ボタンだけを押して、@崖のフチにぶら下がることもできるわ。"
/* 46 */ , "じゃあ、次に行きましょう。"
/* 47 */ , "次は泳ぎの練習ね。"
/* 48 */ , "□ボタンと方向キーを使って、@泳げるわ。"
/* 49 */ , "苦しかった~@方向キーの上、L2ボタンとR2ボタンで水上泳ぐことができるわ。@□ボタンでまた潜れるの。@プールのフチに行って、×ボタンと方向キーの上を押すと水から上がれるわ。"
/* 50 */ , "そろそろ冒険に行きましょうか?"
/* 51 */ , "このメス犬が・・・!"
/* 52 */ , "こいつら一人一人紹介しねえとな。"
/* 53 */ , "そいつ渡せとは言わねえ!@なぜなら、ここで死んでもらうからさあ。"
/* 54 */ , "私がそんなに簡単にやられると思う?"
/* 55 */ , "ビンゴの商品を受け取るには少し遅かったようだな マドモワゼル。@こういうものは勝ち取らなければならないからね。@う~ 実に残念だ。君とこうして争わなければならないなんて。@でも、これが運命なのさ。"
/* 56 */ , ""
// TR1 levels
, "ララの家"
, "洞窟"
, "古代都市ビルカバンバ"
, "ロスト・バレー"
, "クアロペック王墓"
, "聖フランシス聖堂"
, "コロシアム"
, "ミダスの宮殿"
, "貯水池"
, "ティホカン王墓"
, "カームーンの都市遺跡"
, "カームーンのオベリスク"
, "シオンの聖域"
, "ナトラの鉱山"
, "アトランティス"
, "グレート・ピラミッド"
, "エジプト再訪"
, "猫の寺"
, "アトランティス改造兵の牙城"
, "巣箱"
// TR2 levels
, "ララの家"
, "万里の長城"
, "ベニス"
, "バルトーリの隠れ家"
, "オペラハウス"
, "海上倉庫"
, "潜水場"
, "海底"
, "マリア号の残骸"
, "船底"
, "デッキ"
, "チベットの丘陵"
, "バーカング寺院"
, "タリオンの墓"
, "氷の城"
, "西安の寺"
, "浮島"
, "ドラゴンの巣"
, "ララの家"
// TR3 levels
, "ララの家"
, "ジャングル"
, "滅びた寺院"
, "ガンジス川"
, "カリアケーブ"
, "コーストビレッジ"
, "墜落現場"
, "マデュバの谷"
, "ピュナ寺院"
, "テムズ川のほとり"
, "アンダーグラウンド"
, "ルッドの門"
, "シティ"
, "ネバダ砂漠"
, "ハイセキュリティエリア"
, "エリア51"
, "南極大陸"
, "RX-TECH社発掘場"
, "滅びたティノス"
, "クレーター"
, "セイントデイ"
};
#endif
#endif

View File

@@ -276,4 +276,40 @@ const char *STR_RU[] = { ""
, "All Hallows"
};
inline bool isCyrillic(char c) {
return (c >= '<EFBFBD>' && c <= '<EFBFBD>') || (c >= '<EFBFBD>' && c <= '<EFBFBD>');
}
inline char remapCyrillic(char c) {
if (!isCyrillic(c)) {
return c;
}
switch (c) {
case '<EFBFBD>' : return 'a';
case '<EFBFBD>' : return 'e';
case '<EFBFBD>' : return 'e';
case '<EFBFBD>' : return 'u';
case '<EFBFBD>' : return 'u';
case '<EFBFBD>' : return 'o';
case '<EFBFBD>' : return 'p';
case '<EFBFBD>' : return 'c';
case '<EFBFBD>' : return 'y';
case '<EFBFBD>' : return 'x';
case '<EFBFBD>' : return 'A';
case '<EFBFBD>' : return 'B';
case '<EFBFBD>' : return 'E';
case '<EFBFBD>' : return 'E';
case '<EFBFBD>' : return 'K';
case '<EFBFBD>' : return 'M';
case '<EFBFBD>' : return 'H';
case '<EFBFBD>' : return 'O';
case '<EFBFBD>' : return 'P';
case '<EFBFBD>' : return 'C';
case '<EFBFBD>' : return 'T';
case '<EFBFBD>' : return 'X';
}
return c;
}
#endif

View File

@@ -75,39 +75,8 @@ namespace UI {
enum Align { aLeft, aRight, aCenter, aCenterV };
inline char remapCyrillic(char c) {
if ((c >= '<EFBFBD>' && c <= '<EFBFBD>') || (c >= '<EFBFBD>' && c <= '<EFBFBD>')) {
switch (c) {
case '<EFBFBD>' : return 'a';
case '<EFBFBD>' : return 'e';
case '<EFBFBD>' : return 'e';
case '<EFBFBD>' : return 'u';
case '<EFBFBD>' : return 'u';
case '<EFBFBD>' : return 'o';
case '<EFBFBD>' : return 'p';
case '<EFBFBD>' : return 'c';
case '<EFBFBD>' : return 'y';
case '<EFBFBD>' : return 'x';
case '<EFBFBD>' : return 'A';
case '<EFBFBD>' : return 'B';
case '<EFBFBD>' : return 'E';
case '<EFBFBD>' : return 'E';
case '<EFBFBD>' : return 'K';
case '<EFBFBD>' : return 'M';
case '<EFBFBD>' : return 'H';
case '<EFBFBD>' : return 'O';
case '<EFBFBD>' : return 'P';
case '<EFBFBD>' : return 'C';
case '<EFBFBD>' : return 'T';
case '<EFBFBD>' : return 'X';
}
return c;
}
return c;
}
inline int charRemap(char c) {
if ((c >= '<EFBFBD>' && c <= '<EFBFBD>') || (c >= '<EFBFBD>' && c <= '<EFBFBD>')) {
if (isCyrillic(c)) {
return char_map[CYR_MAP_START + (c - '<EFBFBD>')];
}