"use strict";(self.webpackChunkdocs_v_2=self.webpackChunkdocs_v_2||[]).push([[7268],{95788:(e,n,t)=>{t.d(n,{Iu:()=>g,yg:()=>y});var a=t(11504);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function l(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function o(e,n){if(null==e)return{};var t,a,r=function(e,n){if(null==e)return{};var t,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)t=i[a],n.indexOf(t)>=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)t=i[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var s=a.createContext({}),p=function(e){var n=a.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},g=function(e){var n=p(e.components);return a.createElement(s.Provider,{value:n},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},d=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,g=o(e,["components","mdxType","originalType","parentName"]),u=p(t),d=r,y=u["".concat(s,".").concat(d)]||u[d]||c[d]||i;return t?a.createElement(y,l(l({ref:n},g),{},{components:t})):a.createElement(y,l({ref:n},g))}));function y(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var i=t.length,l=new Array(i);l[0]=d;var o={};for(var s in n)hasOwnProperty.call(n,s)&&(o[s]=n[s]);o.originalType=e,o[u]="string"==typeof e?e:r,l[1]=o;for(var p=2;p<i;p++)l[p]=t[p];return a.createElement.apply(null,l)}return a.createElement.apply(null,t)}d.displayName="MDXCreateElement"},50376:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>l,default:()=>c,frontMatter:()=>i,metadata:()=>o,toc:()=>p});var a=t(45072),r=(t(11504),t(95788));const i={title:"Translating",hide_title:!0,sidebar_position:9,version:1},l=void 0,o={unversionedId:"contributing/translations",id:"contributing/translations",title:"Translating",description:"Translating",source:"@site/docs/contributing/translations.mdx",sourceDirName:"contributing",slug:"/contributing/translations",permalink:"/docs/contributing/translations",draft:!1,editUrl:"https://github.com/apache/superset/edit/master/docs/docs/contributing/translations.mdx",tags:[],version:"current",sidebarPosition:9,frontMatter:{title:"Translating",hide_title:!0,sidebar_position:9,version:1},sidebar:"tutorialSidebar",previous:{title:"Testing",permalink:"/docs/contributing/testing-locally"},next:{title:"Creating Visualization Plugins",permalink:"/docs/contributing/creating-viz-plugins"}},s={},p=[{value:"Translating",id:"translating",level:2},{value:"Enabling language selection",id:"enabling-language-selection",level:3},{value:"Creating a new language dictionary",id:"creating-a-new-language-dictionary",level:3},{value:"Extracting new strings for translation",id:"extracting-new-strings-for-translation",level:3},{value:"Updating language files",id:"updating-language-files",level:3},{value:"Applying translations",id:"applying-translations",level:3}],g={toc:p},u="wrapper";function c(e){let{components:n,...t}=e;return(0,r.yg)(u,(0,a.c)({},g,t,{components:n,mdxType:"MDXLayout"}),(0,r.yg)("h2",{id:"translating"},"Translating"),(0,r.yg)("p",null,"We use ",(0,r.yg)("a",{parentName:"p",href:"https://python-babel.github.io/flask-babel/"},"Flask-Babel")," to translate Superset.\nIn Python files, we use the following\n",(0,r.yg)("a",{parentName:"p",href:"https://python-babel.github.io/flask-babel/#using-translations"},"translation functions"),"\nfrom ",(0,r.yg)("inlineCode",{parentName:"p"},"Flask-Babel"),":"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"gettext")," and ",(0,r.yg)("inlineCode",{parentName:"li"},"lazy_gettext")," (usually aliased to ",(0,r.yg)("inlineCode",{parentName:"li"},"_"),"): for translating singular\nstrings."),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"ngettext"),": for translating strings that might become plural.")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-python"},"from flask_babel import lazy_gettext as _\n")),(0,r.yg)("p",null,"then wrap the translatable strings with it, e.g. ",(0,r.yg)("inlineCode",{parentName:"p"},"_('Translate me')"),".\nDuring extraction, string literals passed to ",(0,r.yg)("inlineCode",{parentName:"p"},"_")," will be added to the\ngenerated ",(0,r.yg)("inlineCode",{parentName:"p"},".po")," file for each language for later translation."),(0,r.yg)("p",null,"At runtime, the ",(0,r.yg)("inlineCode",{parentName:"p"},"_")," function will return the translation of the given\nstring for the current language, or the given string itself\nif no translation is available."),(0,r.yg)("p",null,"In TypeScript/JavaScript, the technique is similar:\nwe import ",(0,r.yg)("inlineCode",{parentName:"p"},"t")," (simple translation), ",(0,r.yg)("inlineCode",{parentName:"p"},"tn")," (translation containing a number)."),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-javascript"},'import { t, tn } from "@superset-ui/translation";\n')),(0,r.yg)("h3",{id:"enabling-language-selection"},"Enabling language selection"),(0,r.yg)("p",null,"Add the ",(0,r.yg)("inlineCode",{parentName:"p"},"LANGUAGES")," variable to your ",(0,r.yg)("inlineCode",{parentName:"p"},"superset_config.py"),". Having more than one\noption inside will add a language selection dropdown to the UI on the right side\nof the navigation bar."),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-python"},"LANGUAGES = {\n    'en': {'flag': 'us', 'name': 'English'},\n    'fr': {'flag': 'fr', 'name': 'French'},\n    'zh': {'flag': 'cn', 'name': 'Chinese'},\n}\n")),(0,r.yg)("h3",{id:"creating-a-new-language-dictionary"},"Creating a new language dictionary"),(0,r.yg)("p",null,"First check if the language code for your target language already exists. Check if the\n",(0,r.yg)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes"},"two letter ISO 639-1 code"),"\nfor your target language already exists in the ",(0,r.yg)("inlineCode",{parentName:"p"},"superset/translations")," directory:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},'ls superset/translations | grep -E "^[a-z]{2}\\/"\n')),(0,r.yg)("p",null,"If your language already has a preexisting translation, skip to the next section"),(0,r.yg)("p",null,"The following languages are already supported by Flask AppBuilder, and will make it\neasier to translate the application to your target language:\n",(0,r.yg)("a",{parentName:"p",href:"https://flask-appbuilder.readthedocs.io/en/latest/i18n.html"},"Flask AppBuilder i18n documentation")),(0,r.yg)("p",null,"To create a dictionary for a new language, first make sure the necessary dependencies are installed:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"pip install -r superset/translations/requirements.txt\n")),(0,r.yg)("p",null,"Then run the following, where ",(0,r.yg)("inlineCode",{parentName:"p"},"LANGUAGE_CODE")," is replaced with the language code for your target\nlanguage:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"pybabel init -i superset/translations/messages.pot -d superset/translations -l LANGUAGE_CODE\n")),(0,r.yg)("p",null,"For instance, to add a translation for Finnish (language code ",(0,r.yg)("inlineCode",{parentName:"p"},"fi"),"), run the following:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"pybabel init -i superset/translations/messages.pot -d superset/translations -l fi\n")),(0,r.yg)("h3",{id:"extracting-new-strings-for-translation"},"Extracting new strings for translation"),(0,r.yg)("p",null,"This step needs to be done every time application strings change. This happens fairly\nfrequently, so if you want to ensure that your translation has good coverage, this\nstep needs to be run fairly frequently and the updated strings merged to the upstream\ncodebase via PRs. To update the template file ",(0,r.yg)("inlineCode",{parentName:"p"},"superset/translations/messages.pot"),"\nwith current application strings, run the following command:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"pybabel extract -F superset/translations/babel.cfg -o superset/translations/messages.pot -k _ -k __ -k t -k tn -k tct .\n")),(0,r.yg)("p",null,"Do not forget to update this file with the appropriate license information."),(0,r.yg)("h3",{id:"updating-language-files"},"Updating language files"),(0,r.yg)("p",null,"Run the following command to update the language files with the new extracted strings."),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"}," pybabel update -i superset/translations/messages.pot -d superset/translations --ignore-obsolete\n")),(0,r.yg)("p",null,"You can then translate the strings gathered in files located under\n",(0,r.yg)("inlineCode",{parentName:"p"},"superset/translation"),", where there's one folder per language. You can use ",(0,r.yg)("a",{parentName:"p",href:"https://poedit.net/features"},"Poedit"),"\nto translate the ",(0,r.yg)("inlineCode",{parentName:"p"},"po")," file more conveniently.\nHere is ",(0,r.yg)("a",{parentName:"p",href:"https://web.archive.org/web/20220517065036/https://wiki.lxde.org/en/Translate_*.po_files_with_Poedit"},"a tutorial"),"."),(0,r.yg)("p",null,"To perform the translation on MacOS, you can install ",(0,r.yg)("inlineCode",{parentName:"p"},"poedit")," via Homebrew:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"brew install poedit\n")),(0,r.yg)("p",null,"After this, just start the ",(0,r.yg)("inlineCode",{parentName:"p"},"poedit")," application and open the ",(0,r.yg)("inlineCode",{parentName:"p"},"messages.po")," file. In the\ncase of the Finnish translation, this would be ",(0,r.yg)("inlineCode",{parentName:"p"},"superset/translations/fi/LC_MESSAGES/messages.po"),"."),(0,r.yg)("h3",{id:"applying-translations"},"Applying translations"),(0,r.yg)("p",null,"To make the translations available on the frontend, we need to convert the PO file into\na JSON file. To do this, we need to globally install the npm package ",(0,r.yg)("inlineCode",{parentName:"p"},"po2json"),"."),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"npm install -g po2json\n")),(0,r.yg)("p",null,"To convert all PO files to formatted JSON files you can use the ",(0,r.yg)("inlineCode",{parentName:"p"},"po2json.sh")," script."),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"./scripts/po2json.sh\n")),(0,r.yg)("p",null,"If you get errors running ",(0,r.yg)("inlineCode",{parentName:"p"},"po2json"),", you might be running the Ubuntu package with the same\nname, rather than the Node.js package (they have a different format for the arguments). If\nthere is a conflict, you may need to update your ",(0,r.yg)("inlineCode",{parentName:"p"},"PATH")," environment variable or fully qualify\nthe executable path (e.g. ",(0,r.yg)("inlineCode",{parentName:"p"},"/usr/local/bin/po2json")," instead of ",(0,r.yg)("inlineCode",{parentName:"p"},"po2json"),").\nIf you get a lot of ",(0,r.yg)("inlineCode",{parentName:"p"},"[null,***]")," in ",(0,r.yg)("inlineCode",{parentName:"p"},"messages.json"),", just delete all the ",(0,r.yg)("inlineCode",{parentName:"p"},"null,"),".\nFor example, ",(0,r.yg)("inlineCode",{parentName:"p"},'"year":["\u5e74"]')," is correct while ",(0,r.yg)("inlineCode",{parentName:"p"},'"year":[null,"\u5e74"]'),"is incorrect."),(0,r.yg)("p",null,"Finally, for the translations to take effect we need to compile translation catalogs into\nbinary MO files."),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"pybabel compile -d superset/translations\n")))}c.isMDXComponent=!0}}]);