microsoft / TypeScript-Website-Localizations

A repo for the TypeScript Website localizations

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Translation Recommendations

orta opened this issue · comments

How To Contribute

  1. Join the TypeScript Discord - come say hi the ts-web-translate

  2. Follow the instructions on the README of this repo to get set up.

All Markdown Docs

Each translatable page is a unique markdown file which can be uniquely handled per language. Any markdown file not found will be replaced with English when not present.

Website

The website supports localization via React-intl, as of today only the navigation bar it translatable, but with time this will grow. The infra just came in with microsoft/TypeScript-Website#180

There are a series of keys and values for each language, with a fallback to English if you miss something. The TypeScript compiler will keep it all in check.

Playground

You can cover the examples in the dropdown in the playground (and in the site footer on desktops.) Full docs here

  • Make a subfolder with the code of the language in the copy folder of the 'playground-examples'
  • Ensure the filename are the same as English, (you can provide a different title via the JSON headers in the ts/js files)
  • Check out this folder
  • Ensure the filename is the same (we can provide a different title via the YML headers in the markdown files)

Recommendations

I'm pretty new to the translation game, but here's some notes from working with people so far on how translations can culturally work in the TS website.

Translate code to be a cultural fit. E.g.

const helloWorld = "Hi" 

to

const olaMundo = "Olá`

Translate names in example

const user =  { name: "John" }

to

const usar =  { name: "João" }

Note: we aim to have a diverse set of nationalities and genders in our examples, so I'd recommend not changing all of them, but try keep it feeling like it was written with that in mind also.

Translate Technical Terms, but keep English around

This one is nuanced, but a term like Mapped Type is the name for this:

type MyPartialType<Type> = {
  // For every existing property inside the type of Type
  // convert it to be a ?: version
  [Property in keyof Type]?: Type[Property];
};

So, if you translate it to "mapeada type", then provide a reference to the original name the first time it is used: "mapeada type (Mapped Type em inglês)" so that readers can know how to find the English resources on a topic.