- Published on
π i18n Key Translator
νλ‘μ νΈ μκ°
κ΅μ ν(i18n) μμ ν μ½λλ₯Ό νΈμ§νλ κ³Όμ μμ λ²μ ν€μ μ€μ ν μ€νΈλ₯Ό νμΈνκΈ° μν΄ λ§€λ² JSON νμΌμ μ΄μ΄λ³΄λ λ²κ±°λ‘μμ ν΄κ²°ν VS Code νμ₯ νλ‘κ·Έλ¨μ λλ€. κ°λ°μκ° μ½λ νΈμ§ μ€ λ²μ ν€μ λ§μ°μ€λ₯Ό μ¬λ¦¬κ±°λ λͺ λ Ήμ μ€ννλ©΄ νμΌ μ΄λ μμ΄ μ¦μ μ€μ λ²μ ν μ€νΈλ₯Ό νμΈν μ μμ΅λλ€. νμ¬ VS Code 곡μ λ§μΌνλ μ΄μ€μ λ°°ν¬λμ΄ μμΌλ©°, React, Vue, Angular λ± 6κ°μ μ£Όμ i18n λΌμ΄λΈλ¬λ¦¬λ₯Ό μ§μν©λλ€.

ν΅μ¬ κΈ°λ₯
μ¬μ© κΈ°μ
βΌοΈ νλ‘μ νΈ μ΄μ
λ€μ€ λΌμ΄λΈλ¬λ¦¬ ν¨ν΄ μ§μ
React-i18next, Vue-i18n, Angular λ± κ° λΌμ΄λΈλ¬λ¦¬λ§λ€ μλ‘ λ€λ₯Έ λ¬Έλ²κ³Ό νΈμΆ λ°©μμ μ¬μ©νμ¬ λ¨μΌ μ κ·μμΌλ‘λ λͺ¨λ ν¨ν΄μ 컀λ²ν μ μμμ΅λλ€. t('key'), $t('key'), 'key' | translate, <FormattedMessage id="key" /> λ± λ€μν ννλ₯Ό μ§μν΄μΌ νμ΅λλ€.
λΌμ΄λΈλ¬λ¦¬λ³ μ΅μ νλ μ κ·μ ν¨ν΄μ ν리μ μΌλ‘ μ¬μ μ μνκ³ , Configuration ν΄λμ€μμ ν리μ μ νμ μ§μνμ΅λλ€. λν μ¬μ©μ μ μ ν¨ν΄λ νμ©νμ¬ νμ₯μ±μ ν보νκ³ , WebviewPanel κΈ°λ° ν¨ν΄ ν μ€νΈ λꡬλ₯Ό μ 곡νμ¬ νμ¬ νμΌμμ ν¨ν΄μ΄ μ λλ‘ λμνλμ§ μ¦μ κ²μ¦ν μ μκ² νμ΅λλ€.
6κ°μ μ£Όμ i18n λΌμ΄λΈλ¬λ¦¬λ₯Ό λͺ¨λ μ§μνλ λ²μ© νμ₯μΌλ‘ λ°μ νμ΅λλ€. μ€μ μ€ν€λ§ μ€κ³μ μ€μμ±κ³Ό μ¬μ©μ νΌλλ°±μ ν΅ν UX κ°μ μ κ°μΉλ₯Ό λ°°μ μ΅λλ€.
νλ‘μ νΈλ³ κ²½λ‘ μ°¨μ΄
νλ‘μ νΈλ§λ€ i18n λ²μ νμΌμ μμΉκ° μ κ°κ°μ΄μμ΅λλ€. ./src/locales/, ./public/locales/, ./i18n/ λ± λ€μν ν΄λ ꡬ쑰λ₯Ό μ¬μ©νλ νλ‘μ νΈλ€μ΄ μ‘΄μ¬νκ³ , νλμ½λ©λ κ²½λ‘λ‘λ λ²μ©μ±μ ν보ν μ μμμ΅λλ€.
Glob ν¨ν΄μ νμ©ν μ μ°ν κ²½λ‘ μ€μ μμ€ν
μ ꡬμΆνμ΅λλ€. * μμΌλμΉ΄λλ‘ μΈμ΄ μ½λ μμΉλ₯Ό μ§μ ν μ μκ² νκ³ , λ°°μ΄ ννλ‘ μ¬λ¬ κ²½λ‘ ν¨ν΄μ λμμ μ§μνλλ‘ μ€κ³νμ΅λλ€. ν¨ν΄ νμ± λ‘μ§μ ν΅ν΄ μλμΌλ‘ μΈμ΄ μ½λλ₯Ό μΆμΆνλλ‘ κ΅¬ννμ΅λλ€.
λ€μν νλ‘μ νΈ κ΅¬μ‘°μμ μ¦μ μ¬μ© κ°λ₯ν νμ₯μ΄ λμμ΅λλ€. λ²μ© λꡬ κ°λ° μ μ€μ μ μ μ°μ±μ΄ UXλ₯Ό ν¬κ² μ’μ°νλ€λ μ μ 체κ°νκ³ , μ€μ μ¬μ©μ μλ리μ€λ₯Ό κ³ λ €ν μ€κ³μ μ€μμ±μ λ°°μ μ΅λλ€.
μ€μκ° λ³κ²½ κ°μ§μ μ±λ₯ μ΅μ ν
λ²μ νμΌμ΄ μμ λ λλ§λ€ νμ₯μ λ€μ λ‘λνλ κ²μ λΉν¨μ¨μ μ΄λ©°, λμμ λ§€ νΈλ²λ§λ€ JSON νμΌμ νμ±νκ³ μ€μ²© κ°μ²΄λ₯Ό νμνλ κ²μ μ±λ₯ μ νλ₯Ό μ λ°ν μ μμμ΅λλ€.
FileSystemWatcherλ‘ λ²μ νμΌ λ³κ²½μ μ€μκ° κ°μ§νκ³ , 3λ¨κ³ μΊμ± μ λ΅μ ꡬμΆνμ΅λλ€: (1) νλ©΄νλ λ§΅μΌλ‘ O(1) μ‘°ν, (2) LFU μκ³ λ¦¬μ¦μΌλ‘ μμ£Ό μ°λ ν€ μ°μ 보쑴(3000κ° νλͺ© μ ν), (3) λ¬Έμ λ²μ κΈ°λ° μμΉ μΊμ±μΌλ‘ μ κ·μ μ¬μ€ν μ΅μν.
νΈλ² μλ΅ μλλ₯Ό λ¨μΆνκ³ λ©λͺ¨λ¦¬ μ¬μ©λλ μ΅μ ννμ΅λλ€. νμ₯ νλ‘κ·Έλ¨μμλ μ μ ν μΊμ± μ λ΅μ΄ UXμ ν° μν₯μ λ―ΈμΉλ€λ κ²κ³Ό, VS Code APIμ λ€μν μ΄λ²€νΈλ₯Ό νμ©ν ν¨μ¨μ μΈ λ¦¬μμ€ κ΄λ¦¬ λ°©λ²μ λ°°μ μ΅λλ€.