JSON5 & 인성화된 응용 프로그램 현지화

JSON 포맷은 많은 분야에서 매우 중요하게 변했는데 그 중 하나가 바로 소프트웨어 현지화이다.
그러나 JSON은 이 분야(뿐만 아니라)의 인간적 우호성에 한계가 있다. 엄격하고 더블 따옴표가 많다.용서가 아니야.그것은 번역자에게 언어 환경을 신속하게 제공할 수 있는 평론이 없다. 왜냐하면 평론은 내용의 일부분이 아니기 때문이다.
그 중 일부 단점에 대해 서로 다른 해결 방안이 있다. 예를 들어 @ 접두사를 사용하여 정의한 metadata in Flutter’s ARB format이다.
{
  "string_key": "Translations",
  "@string_key": {
    "description": "Context for translator."
  }
}
읽기가 그리 간단하지 않고 간단한 평론이 좀 수다스럽다.그러나 더 많은 구조화된 상하문 정보가 제공될 때 유용한 개념이다.
주제로 돌아가면 JSON의 유한한 사실은 새로운 격식을 불러일으켰다. 예를 들어 HJSONJSON5.

JSON5-인간의 JSON
JSON5는 완전히 뒤로 호환되고 유효한 JSON 파일도 유효한 JSON5 파일입니다.하지만 JSON에는 여러 가지 재미있는 추가 기능이 있습니다.
오브젝트
  • 객체 키는 ECMAScript 5.1IdentifierName일 수 있습니다.
  • 객체 뒤에 쉼표가 있을 수 있습니다.
  • 어레이
  • 수조 뒤에 쉼표가 있을 수 있다.
  • 꿰미
  • 문자열은 작은 따옴표일 수 있습니다.
  • 문자열은 이스케이프 새 줄 문자를 통해 여러 줄을 뛰어넘을 수 있습니다.
  • 문자열에는 문자 이스케이프가 포함될 수 있습니다.
  • 숫자.
  • 숫자는 16진수일 수 있습니다.
  • 숫자는 선도 또는 후행 소수점이 있을 수 있다.
  • 숫자는 IEEE 754 정무궁대, 음무궁대, NaN일 수 있다.
  • 숫자는 명확한 더하기 번호로 시작할 수 있다.
  • 코멘트
  • 한 줄과 여러 줄의 주석을 허용합니다.
  • 공백
  • 공백 문자를 추가로 사용할 수 있습니다.

  • JSON5 - 인성화된 현지화
    아래의 간단한 예시를 보면 표준 JSON 파일을 사용하는 것보다 사용하기 편리하다는 것을 알 수 있다.
    {
    
      menu: {
        share: 'Share "this"'
      }
    
      // Please keep the name short.
      shortName: 'Short Name',
    
      /*
      It's also possible to use multi-line comments to
      provide additional context for translators.
      */  
      json5IsGreat: "It is!"
    
      andForgiving: "There's trailing comma... no problem.",
    }
    

    JSON5가 지원되지 않습니까?해결책이 있어요!
    그래서 당신은 JSON5를 사용하여 당신의 생활을 간소화하고 싶지만, 현재의 현지화 해결 방안은 JSON만 지원합니까?문제 없어요.
    JSON5를 소스 언어 문자열에 사용하고 Localazy를 번역 관리 플랫폼으로 사용합니다.대부분의 응용 프로그램it translates your app to up to 80 languages for free에 대해 완전히 무료이며 공유된 번역이 있으며 JSON5를 지원하며 표준 JSON 파일을 출력할 수 있습니다.

    즉시 사용 가능
    내 응용 프로그램은 JSON을 사용하여 로컬화되었고 폴더translations에 저장된 파일을 번역했다.소스 JSON5 파일로 새 폴더trans_source를 추가했습니다.내 프로젝트 구조는 다음과 같습니다.
    - app
      - trans_source
        - en.json5
      - translations
        - en.json
        - cs.json
        - de.json
        - zh-TW.json
        - ...
      - src
      - resources
      - ...
      - localazy.json
    
    새 기능을 추가할 때마다 en.json5에 새 텍스트를 추가합니다.저는 JSON5의 모든 기능을 누릴 수 있습니다. 가장 주의해야 할 것은 제가 주석을 사용하여 번역자에게 상하문을 제공하지만 단인용 부호를 사용하여 쌍인용 부호의 전의를 피하는 것을 좋아합니다. 키가 쌍인용 부호가 없는 것도 큰 개선입니다.
    다음과 같은 내용이 포함된 localazy.json 파일이 있음을 알 수 있습니다configuration file for Localazy CLI.
    {
      "readKey": "my-read-key",
      "writeKey": "my-write-key",
    
      "upload": {
        "type": "json5",
        "files": "trans_source/en.json5"
      },
    
      "download": {
        "includeSourceLang": true,
        "files": "translations/${lang}.json"
      }
    }
    
    이게 다야!en.json5 에 새 텍스트를 추가할 때, 명령줄에서 localazy upload 를 호출해서 업데이트된 파일을 Localazy 플랫폼으로 보냅니다.
    내 구축의 일부로서 localazy download 는 자동으로 호출되며, 모든 번역 파일 (원본 언어 포함, "includeSourceLang": true 에서 사용) 을 translations 폴더에 다운로드합니다.Localazy는 JSON5 입력과 출력에 효과적인 JSON 파일을 입력하기 때문에 기존의 JSON 기반의 실시간 현지화 솔루션과 함께 작업을 할 수 있습니다. 저는 Localazy를 통해 번역을 쉽게 관리할 수 있고 심지어 공유 번역을 통해 제 응용 프로그램의 상당 부분을 무료로 번역할 수 있습니다.윈윈
    또한 JSON5Localazy also supports ARB-style metadata, arrays, plurals, multilingual files와 다른 특성에 대해 저는 제가 필요로 하는 모든 것을 사용할 수 있고 현재 표준 JSON과 함께 사용할 수 있습니다.

    플리트의 ARB도 지지!
    Flatter의 ARB는 표준 JSON 위에 있는 규범에 기반을 두고 있기 때문에 위에서 설명한 해결 방안도 Flatter 응용 프로그램에 사용할 수 있습니다. 조금만 수정하면 됩니다.@로 시작하는 복잡한 구조를 잊어버리고 통역을 하려면 이름이 짧아야 한다. -).
    원시 문장은 JSON5 & human-friendly software localization에 발표되었다Localazy.

    좋은 웹페이지 즐겨찾기