틀토론:인용/설명문서의 토론 주제

낙엽1124 (토론기여)

한국어 위키백과의 틀:인용/설명문서에는 TemplateData가 비어 있어서 영어 위키백과의 내용을 복사해왔는데요, 전부 영어로 되어 있어 한국어로 바꿔야 할 것 같아서 다음 판들을 복사해 스크립트를 사용해서 변경하겠습니다.

const citeNews = {
  description: '제목 등 주어진 정보를 이용하여 뉴스 인용을 만듭니다.',
  params: '생략',
  maps: '생략',
  paramOrder: '생략',
};
const citeJournal = '생략';
const citeWeb = '생략';
const citeBook = '생략';

function replaceEn(target, source) {
  const koenMap = {};
  const enkoMap = {};

  for (const param in source.params) {
    if (!source.params[param].aliases) {
      continue;
    }
    if (/^[a-z0-9-]+$/.test(param)) {
      for (const alias of source.params[param].aliases) {
        if (/가-힣-/.test(alias)) {
          koenMap[alias] = param;
          enkoMap[param] = alias;
        }
      }
    } else {
      for (const alias of source.params[param].aliases) {
        if (/^[a-z0-9-]+/.test(alias)) {
          koenMap[param] = alias;
          enkoMap[alias] = param;
        }
      }
    }
  }

  for (const param in target.params) {
    if (enkoMap[param]) {
      const ko = enkoMap[param];
      if (source.params[param]) {
        target.params[param].label = source.params[param].label;
        target.params[param].description = source.params[param].description;
      }
      if (source.params[ko]) {
        target.params[param].label = source.params[ko].label;
        target.params[param].description = source.params[ko].description;
      }
    }
  }

  return target;
}

cite = replaceEn(cite, citeJournal);
cite = replaceEn(cite, citeNews);
cite = replaceEn(cite, citeBook);
cite = replaceEn(cite, citeWeb);

console.log(JSON.stringify(cite));

JSON을 Prettier로 한번 처리하는데 이건 위 코드에서 생략됐습니다.