Docs
- Getting Started
- Uppy
- Companion
- List of Plugins
- Common Plugin Options
- Custom Stores
- Community Projects
- Locale Packs
- Migration guides
UI Elements
Sources
- Drag & Drop
- Drop Target
- File Input
- Audio
- Webcam
- Screen capture
- Provider Plugins
- ⓒ Box
- ⓒ Dropbox
- ⓒ Google Drive
- ⓒ OneDrive
- ⓒ Zoom
- ⓒ Unsplash
- ⓒ Import From URL
Destinations
Miscellaneous
React
- Introduction
- <StatusBar />
- <DragDrop />
- <FileInput />
- <ProgressBar />
- <Dashboard />
- <DashboardModal />
- React Native
Other Integrations
Contributing
Locale Packs
Uppy speaks many languages, English being the default. You can use a locale pack to translate Uppy into your language of choice.
Using a locale pack from npm
This is the recommded way. Install @uppy/locales
package from npm, then choose the locale you’d like to use: @uppy/locales/lib/LANGUAGE_CODE
.
npm i @uppy/core @uppy/locales |
import Uppy from '@uppy/core' import German from '@uppy/locales/lib/de_DE' // see below for the full list of locales const uppy = new Uppy({ debug: true, locale: German, }) |
Using a locale pack from CDN
Add a <script>
tag with Uppy bundle and the locale pack you’d like to use. You can copy/paste the link from the CDN column in the locales table. The locale will attach itself to the Uppy.locales
object.
<script src="https://releases.transloadit.com/uppy/v3.4.0/uppy.min.js"></script> <script src="https://releases.transloadit.com/uppy/locales/v3.0.5/de_DE.min.js"></script> <script> var uppy = new Uppy.Uppy({ debug: true, locale: Uppy.locales.de_DE }) </script> |
Overriding locale strings for a specific plugin
Many plugins come with their own locale strings, and the packs we provide consist of most of those strings. You can, however, override a locale string for a specific plugin, regardless of whether you are using locale pack or not. See the plugin documentation for the list of locale strings it uses (for example, here’s how to use it with the Dashboard UI).
import Uppy from '@uppy/core' import DragDrop from '@uppy/drag-drop' import Russian from '@uppy/locales/lib/ru_RU' const uppy = new Uppy({ debug: true, autoProceed: true, locale: Russian, }) uppy.use(DragDrop, { target: '.UppyDragDrop', // We are using the ru_RU locale pack (set above in Uppy options), // but you can also override specific strings like so: locale: { strings: { browse: 'выберите ;-)', }, }, }) |
List of locale packs
38 Locales | NPM | CDN | Source on GitHub |
---|---|---|---|
Arabic Saudi Arabia |
@uppy/locales/lib/ar_SA |
ar_SA.min.js |
✏️ ar_SA.js |
Bulgarian Bulgaria |
@uppy/locales/lib/bg_BG |
bg_BG.min.js |
✏️ bg_BG.js |
Chinese China |
@uppy/locales/lib/zh_CN |
zh_CN.min.js |
✏️ zh_CN.js |
Chinese Taiwan |
@uppy/locales/lib/zh_TW |
zh_TW.min.js |
✏️ zh_TW.js |
Croatian Croatia |
@uppy/locales/lib/hr_HR |
hr_HR.min.js |
✏️ hr_HR.js |
Czech Czechia |
@uppy/locales/lib/cs_CZ |
cs_CZ.min.js |
✏️ cs_CZ.js |
Danish Denmark |
@uppy/locales/lib/da_DK |
da_DK.min.js |
✏️ da_DK.js |
Dutch Netherlands |
@uppy/locales/lib/nl_NL |
nl_NL.min.js |
✏️ nl_NL.js |
English United States |
@uppy/locales/lib/en_US |
en_US.min.js |
✏️ en_US.js |
Finnish Finland |
@uppy/locales/lib/fi_FI |
fi_FI.min.js |
✏️ fi_FI.js |
French France |
@uppy/locales/lib/fr_FR |
fr_FR.min.js |
✏️ fr_FR.js |
Galician Spain |
@uppy/locales/lib/gl_ES |
gl_ES.min.js |
✏️ gl_ES.js |
German Germany |
@uppy/locales/lib/de_DE |
de_DE.min.js |
✏️ de_DE.js |
Greek Greece |
@uppy/locales/lib/el_GR |
el_GR.min.js |
✏️ el_GR.js |
Hebrew Israel |
@uppy/locales/lib/he_IL |
he_IL.min.js |
✏️ he_IL.js |
Hungarian Hungary |
@uppy/locales/lib/hu_HU |
hu_HU.min.js |
✏️ hu_HU.js |
Icelandic Iceland |
@uppy/locales/lib/is_IS |
is_IS.min.js |
✏️ is_IS.js |
Indonesian Indonesia |
@uppy/locales/lib/id_ID |
id_ID.min.js |
✏️ id_ID.js |
Italian Italy |
@uppy/locales/lib/it_IT |
it_IT.min.js |
✏️ it_IT.js |
Japanese Japan |
@uppy/locales/lib/ja_JP |
ja_JP.min.js |
✏️ ja_JP.js |
Korean South Korea |
@uppy/locales/lib/ko_KR |
ko_KR.min.js |
✏️ ko_KR.js |
Norwegian Bokmål Norway |
@uppy/locales/lib/nb_NO |
nb_NO.min.js |
✏️ nb_NO.js |
Persian Iran |
@uppy/locales/lib/fa_IR |
fa_IR.min.js |
✏️ fa_IR.js |
Polish Poland |
@uppy/locales/lib/pl_PL |
pl_PL.min.js |
✏️ pl_PL.js |
Portuguese Brazil |
@uppy/locales/lib/pt_BR |
pt_BR.min.js |
✏️ pt_BR.js |
Portuguese Portugal |
@uppy/locales/lib/pt_PT |
pt_PT.min.js |
✏️ pt_PT.js |
Romanian Romania |
@uppy/locales/lib/ro_RO |
ro_RO.min.js |
✏️ ro_RO.js |
Russian Russia |
@uppy/locales/lib/ru_RU |
ru_RU.min.js |
✏️ ru_RU.js |
Serbian Serbia (Cyrillic) |
@uppy/locales/lib/sr_RS_Cyrillic |
sr_RS_Cyrillic.min.js |
✏️ sr_RS_Cyrillic.js |
Serbian Serbia (Latin) |
@uppy/locales/lib/sr_RS_Latin |
sr_RS_Latin.min.js |
✏️ sr_RS_Latin.js |
Slovak Slovakia |
@uppy/locales/lib/sk_SK |
sk_SK.min.js |
✏️ sk_SK.js |
Spanish Spain |
@uppy/locales/lib/es_ES |
es_ES.min.js |
✏️ es_ES.js |
Swedish Sweden |
@uppy/locales/lib/sv_SE |
sv_SE.min.js |
✏️ sv_SE.js |
Thai Thailand |
@uppy/locales/lib/th_TH |
th_TH.min.js |
✏️ th_TH.js |
Turkish Turkey |
@uppy/locales/lib/tr_TR |
tr_TR.min.js |
✏️ tr_TR.js |
Ukrainian Ukraine |
@uppy/locales/lib/uk_UA |
uk_UA.min.js |
✏️ uk_UA.js |
Uzbek Uzbekistan |
@uppy/locales/lib/uz_UZ |
uz_UZ.min.js |
✏️ uz_UZ.js |
Vietnamese Vietnam |
@uppy/locales/lib/vi_VN |
vi_VN.min.js |
✏️ vi_VN.js |
Contributing a new language
If you speak a language we don’t yet support, you can contribute! Here’s how you do it:
- Go to the uppy/locales directory in the Uppy GitHub repo.
- Go to
en_US.js
and copy its contents, as English is the most up-to-date locale. - Press “Create new file”, name it according to the
language_COUNTRY
format, make sure to use underscore_
as a divider. Examples:en_US
,en_GB
,ru_RU
,ar_AE
. Variants should be trailing, for examplesr_RS_Latin
for Serbian Latin vs Cyrillic. - If your language has different pluralization rules than English, update the
pluralize
implementation. If you are unsure how to do this, please ask us for help in a GitHub issue. - Paste what you’ve copied from
en_US.js
and use it as a starting point to translate strings into your language. - When you are ready, save the file — this should create a PR that we’ll then review 🎉 Thanks!