// 末尾が開始タグの断片について、その直後に来る断片（閉じタグで始まるもの）を
// ソースから拾って対にする。対で見ないと、日本語として正しい区切りが決められない。
import fs from 'fs';

const src = fs.readFileSync('app/game/index.html', 'utf8');
const tm = JSON.parse(fs.readFileSync('tm.json', 'utf8'));
const ov = JSON.parse(fs.readFileSync('overrides.json', 'utf8'));
for (const k in ov) if (!k.startsWith('_')) tm[k] = ov[k];
const flagged = JSON.parse(fs.readFileSync('tag-moved.json', 'utf8'));

const esc = s => s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');

for (const a of flagged) {
  // ソース中の "A" を探し、その後ろの最初の文字列リテラルを B とする
  const lit = JSON.stringify(a);                       // "..." 形式
  let i = src.indexOf(lit);
  if (i < 0) {                                          // シングルクォート等で書かれている場合
    const alt = "'" + a.replace(/'/g, "\\'") + "'";
    i = src.indexOf(alt);
    if (i < 0) { console.log('== 見つからず:', a.slice(0, 60)); continue; }
    i += alt.length;
  } else i += lit.length;

  const after = src.slice(i, i + 400);
  const m = after.match(/["']((?:[^"'\\]|\\.){0,300}?)["']/);
  const b = m ? m[1].replace(/\\"/g, '"') : null;

  console.log('=====');
  console.log('A_EN:', JSON.stringify(a.slice(-90)));
  console.log('A_JA:', JSON.stringify((tm[a] || '').slice(-90)));
  console.log('B_EN:', JSON.stringify((b || '(不明)').slice(0, 90)));
  console.log('B_JA:', JSON.stringify((tm[b] || '(未訳)').slice(0, 90)));
}
