Adds i18n to widget layer (#123620)

Adds i18n to widget layer
This commit is contained in:
chunhtai 2023-04-04 15:57:35 -07:00 committed by GitHub
parent c7bab2973e
commit 9e4b5fb7d9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
124 changed files with 4171 additions and 66 deletions

View file

@ -69,18 +69,23 @@ void _rewriteBundle(File file, Map<String, dynamic> bundle) {
}
void encodeKnArbFiles(Directory directory) {
final File widgetsArbFile = File(path.join(directory.path, 'widgets_kn.arb'));
final File materialArbFile = File(path.join(directory.path, 'material_kn.arb'));
final File cupertinoArbFile = File(path.join(directory.path, 'cupertino_kn.arb'));
final Map<String, dynamic> widgetsBundle = _loadBundle(widgetsArbFile);
final Map<String, dynamic> materialBundle = _loadBundle(materialArbFile);
final Map<String, dynamic> cupertinoBundle = _loadBundle(cupertinoArbFile);
_encodeBundleTranslations(widgetsBundle);
_encodeBundleTranslations(materialBundle);
_encodeBundleTranslations(cupertinoBundle);
_checkEncodedTranslations(widgetsBundle, _loadBundle(widgetsArbFile));
_checkEncodedTranslations(materialBundle, _loadBundle(materialArbFile));
_checkEncodedTranslations(cupertinoBundle, _loadBundle(cupertinoArbFile));
_rewriteBundle(widgetsArbFile, widgetsBundle);
_rewriteBundle(materialArbFile, materialBundle);
_rewriteBundle(cupertinoArbFile, cupertinoBundle);
}

View file

@ -53,6 +53,7 @@ import 'package:path/path.dart' as path;
import '../gen_cupertino_localizations.dart';
import '../gen_material_localizations.dart';
import '../gen_widgets_localizations.dart';
import '../localizations_utils.dart';
import '../localizations_validator.dart';
import 'encode_kn_arb_files.dart';
@ -65,8 +66,10 @@ String generateArbBasedLocalizationSubclasses({
required String baseClass,
required HeaderGenerator generateHeader,
required ConstructorGenerator generateConstructor,
ConstructorGenerator? generateConstructorForCountrySubClass,
required String factoryName,
required String factoryDeclaration,
required bool callsFactoryWithConst,
required String factoryArguments,
required String supportedLanguagesConstant,
required String supportedLanguagesDocMacro,
@ -78,7 +81,7 @@ String generateArbBasedLocalizationSubclasses({
assert(factoryArguments.isNotEmpty);
assert(supportedLanguagesConstant.isNotEmpty);
assert(supportedLanguagesDocMacro.isNotEmpty);
generateConstructorForCountrySubClass ??= generateConstructor;
final StringBuffer output = StringBuffer();
output.writeln(generateHeader('dart dev/tools/localization/bin/gen_localizations.dart --overwrite'));
@ -133,7 +136,6 @@ String generateArbBasedLocalizationSubclasses({
final LocaleInfo canonicalLocale = LocaleInfo.fromString('en');
for (final String languageName in languageCodes) {
final LocaleInfo languageLocale = LocaleInfo.fromString(languageName);
output.writeln(generateClassDeclaration(languageLocale, generatedClassPrefix, baseClass));
output.writeln(generateConstructor(languageLocale));
@ -156,7 +158,7 @@ String generateArbBasedLocalizationSubclasses({
generatedClassPrefix,
'$generatedClassPrefix${languageLocale.camelCase()}',
));
output.writeln(generateConstructor(scriptBaseLocale));
output.writeln(generateConstructorForCountrySubClass(scriptBaseLocale));
final Map<String, String> scriptResources = localeToResources[scriptBaseLocale]!;
for (final String key in scriptResources.keys.toList()..sort()) {
if (languageResources[key] == scriptResources[key]) {
@ -184,7 +186,7 @@ String generateArbBasedLocalizationSubclasses({
generatedClassPrefix,
'$generatedClassPrefix${scriptBaseLocale.camelCase()}',
));
output.writeln(generateConstructor(locale));
output.writeln(generateConstructorForCountrySubClass(locale));
final Map<String, String> localeResources = localeToResources[locale]!;
for (final String key in localeResources.keys) {
// When script fallback contains the key, we compare to it instead of language fallback.
@ -212,7 +214,7 @@ String generateArbBasedLocalizationSubclasses({
generatedClassPrefix,
'$generatedClassPrefix${languageLocale.camelCase()}',
));
output.writeln(generateConstructor(locale));
output.writeln(generateConstructorForCountrySubClass(locale));
for (final String key in localeResources.keys) {
if (languageResources[key] == localeResources[key]) {
continue;
@ -279,7 +281,7 @@ $factoryDeclaration
if (languageToLocales[language]!.length == 1) {
output.writeln('''
case '$language':
return $generatedClassPrefix${languageToLocales[language]![0].camelCase()}($factoryArguments);''');
return ${callsFactoryWithConst ? 'const ': ''}$generatedClassPrefix${languageToLocales[language]![0].camelCase()}($factoryArguments);''');
} else if (!languageToScriptCodes.containsKey(language)) { // Does not distinguish between scripts. Switch on countryCode directly.
output.writeln('''
case '$language': {
@ -292,11 +294,11 @@ $factoryDeclaration
final String countryCode = locale.countryCode!;
output.writeln('''
case '$countryCode':
return $generatedClassPrefix${locale.camelCase()}($factoryArguments);''');
return ${callsFactoryWithConst ? 'const ': ''}$generatedClassPrefix${locale.camelCase()}($factoryArguments);''');
}
output.writeln('''
}
return $generatedClassPrefix${LocaleInfo.fromString(language).camelCase()}($factoryArguments);
return ${callsFactoryWithConst ? 'const ': ''}$generatedClassPrefix${LocaleInfo.fromString(language).camelCase()}($factoryArguments);
}''');
} else { // Language has scriptCode, add additional switch logic.
bool hasCountryCode = false;
@ -325,7 +327,7 @@ $factoryDeclaration
final String countryCode = locale.countryCode!;
output.writeln('''
case '$countryCode':
return $generatedClassPrefix${locale.camelCase()}($factoryArguments);''');
return ${callsFactoryWithConst ? 'const ': ''}$generatedClassPrefix${locale.camelCase()}($factoryArguments);''');
}
}
// Return a fallback locale that matches scriptCode, but not countryCode.
@ -337,7 +339,7 @@ $factoryDeclaration
}''');
}
output.writeln('''
return $generatedClassPrefix${scriptLocale.camelCase()}($factoryArguments);
return ${callsFactoryWithConst ? 'const ': ''}$generatedClassPrefix${scriptLocale.camelCase()}($factoryArguments);
}''');
} else {
// Not Explicitly defined, fallback to first locale with the same language and
@ -351,7 +353,7 @@ $factoryDeclaration
}''');
}
output.writeln('''
return $generatedClassPrefix${scriptLocale.camelCase()}($factoryArguments);
return ${callsFactoryWithConst ? 'const ': ''}$generatedClassPrefix${scriptLocale.camelCase()}($factoryArguments);
}''');
break;
}
@ -373,13 +375,13 @@ $factoryDeclaration
final String countryCode = locale.countryCode!;
output.writeln('''
case '$countryCode':
return $generatedClassPrefix${locale.camelCase()}($factoryArguments);''');
return ${callsFactoryWithConst ? 'const ': ''}$generatedClassPrefix${locale.camelCase()}($factoryArguments);''');
}
output.writeln('''
}''');
}
output.writeln('''
return $generatedClassPrefix${LocaleInfo.fromString(language).camelCase()}($factoryArguments);
return ${callsFactoryWithConst ? 'const ': ''}$generatedClassPrefix${LocaleInfo.fromString(language).camelCase()}($factoryArguments);
}''');
}
}
@ -515,10 +517,12 @@ void main(List<String> rawArgs) {
// code. In most cases both codes are just two characters.
final Directory directory = Directory(path.join('packages', 'flutter_localizations', 'lib', 'src', 'l10n'));
final RegExp widgetsFilenameRE = RegExp(r'widgets_(\w+)\.arb$');
final RegExp materialFilenameRE = RegExp(r'material_(\w+)\.arb$');
final RegExp cupertinoFilenameRE = RegExp(r'cupertino_(\w+)\.arb$');
try {
validateEnglishLocalizations(File(path.join(directory.path, 'widgets_en.arb')));
validateEnglishLocalizations(File(path.join(directory.path, 'material_en.arb')));
validateEnglishLocalizations(File(path.join(directory.path, 'cupertino_en.arb')));
} on ValidationError catch (exception) {
@ -537,17 +541,30 @@ void main(List<String> rawArgs) {
precacheLanguageAndRegionTags();
// Maps of locales to resource key/value pairs for Widgets ARBs.
final Map<LocaleInfo, Map<String, String>> widgetsLocaleToResources = <LocaleInfo, Map<String, String>>{};
// Maps of locales to resource key/attributes pairs for Widgets ARBs..
// https://github.com/googlei18n/app-resource-bundle/wiki/ApplicationResourceBundleSpecification#resource-attributes
final Map<LocaleInfo, Map<String, dynamic>> widgetsLocaleToResourceAttributes = <LocaleInfo, Map<String, dynamic>>{};
// Maps of locales to resource key/value pairs for Material ARBs.
final Map<LocaleInfo, Map<String, String>> materialLocaleToResources = <LocaleInfo, Map<String, String>>{};
// Maps of locales to resource key/attributes pairs for Material ARBs..
// https://github.com/googlei18n/app-resource-bundle/wiki/ApplicationResourceBundleSpecification#resource-attributes
final Map<LocaleInfo, Map<String, dynamic>> materialLocaleToResourceAttributes = <LocaleInfo, Map<String, dynamic>>{};
// Maps of locales to resource key/value pairs for Cupertino ARBs.
final Map<LocaleInfo, Map<String, String>> cupertinoLocaleToResources = <LocaleInfo, Map<String, String>>{};
// Maps of locales to resource key/attributes pairs for Cupertino ARBs..
// https://github.com/googlei18n/app-resource-bundle/wiki/ApplicationResourceBundleSpecification#resource-attributes
final Map<LocaleInfo, Map<String, dynamic>> cupertinoLocaleToResourceAttributes = <LocaleInfo, Map<String, dynamic>>{};
loadMatchingArbsIntoBundleMaps(
directory: directory,
filenamePattern: widgetsFilenameRE,
localeToResources: widgetsLocaleToResources,
localeToResourceAttributes: widgetsLocaleToResourceAttributes,
);
loadMatchingArbsIntoBundleMaps(
directory: directory,
filenamePattern: materialFilenameRE,
@ -562,17 +579,35 @@ void main(List<String> rawArgs) {
);
try {
validateLocalizations(widgetsLocaleToResources, widgetsLocaleToResourceAttributes, removeUndefined: options.removeUndefined);
validateLocalizations(materialLocaleToResources, materialLocaleToResourceAttributes, removeUndefined: options.removeUndefined);
validateLocalizations(cupertinoLocaleToResources, cupertinoLocaleToResourceAttributes, removeUndefined: options.removeUndefined);
} on ValidationError catch (exception) {
exitWithError('$exception');
}
if (options.removeUndefined) {
removeUndefinedLocalizations(widgetsLocaleToResources);
removeUndefinedLocalizations(materialLocaleToResources);
removeUndefinedLocalizations(cupertinoLocaleToResources);
}
final String? widgetsLocalizations = options.writeToFile || !options.cupertinoOnly
? generateArbBasedLocalizationSubclasses(
localeToResources: widgetsLocaleToResources,
localeToResourceAttributes: widgetsLocaleToResourceAttributes,
generatedClassPrefix: 'WidgetsLocalization',
baseClass: 'GlobalWidgetsLocalizations',
generateHeader: generateWidgetsHeader,
generateConstructor: generateWidgetsConstructor,
generateConstructorForCountrySubClass: generateWidgetsConstructorForCountrySubclass,
factoryName: widgetsFactoryName,
factoryDeclaration: widgetsFactoryDeclaration,
callsFactoryWithConst: true,
factoryArguments: widgetsFactoryArguments,
supportedLanguagesConstant: widgetsSupportedLanguagesConstant,
supportedLanguagesDocMacro: widgetsSupportedLanguagesDocMacro,
)
: null;
final String? materialLocalizations = options.writeToFile || !options.cupertinoOnly
? generateArbBasedLocalizationSubclasses(
localeToResources: materialLocaleToResources,
@ -583,6 +618,7 @@ void main(List<String> rawArgs) {
generateConstructor: generateMaterialConstructor,
factoryName: materialFactoryName,
factoryDeclaration: materialFactoryDeclaration,
callsFactoryWithConst: false,
factoryArguments: materialFactoryArguments,
supportedLanguagesConstant: materialSupportedLanguagesConstant,
supportedLanguagesDocMacro: materialSupportedLanguagesDocMacro,
@ -598,6 +634,7 @@ void main(List<String> rawArgs) {
generateConstructor: generateCupertinoConstructor,
factoryName: cupertinoFactoryName,
factoryDeclaration: cupertinoFactoryDeclaration,
callsFactoryWithConst: false,
factoryArguments: cupertinoFactoryArguments,
supportedLanguagesConstant: cupertinoSupportedLanguagesConstant,
supportedLanguagesDocMacro: cupertinoSupportedLanguagesDocMacro,
@ -605,15 +642,22 @@ void main(List<String> rawArgs) {
: null;
if (options.writeToFile) {
final File widgetsLocalizationsFile = File(path.join(directory.path, 'generated_widgets_localizations.dart'));
widgetsLocalizationsFile.writeAsStringSync(widgetsLocalizations!, flush: true);
final File materialLocalizationsFile = File(path.join(directory.path, 'generated_material_localizations.dart'));
materialLocalizationsFile.writeAsStringSync(materialLocalizations!, flush: true);
final File cupertinoLocalizationsFile = File(path.join(directory.path, 'generated_cupertino_localizations.dart'));
cupertinoLocalizationsFile.writeAsStringSync(cupertinoLocalizations!, flush: true);
} else {
if (!options.cupertinoOnly) {
if (options.cupertinoOnly) {
stdout.write(cupertinoLocalizations);
} else if (options.materialOnly) {
stdout.write(materialLocalizations);
} else if (options.widgetsOnly) {
stdout.write(widgetsLocalizations);
} else {
stdout.write(widgetsLocalizations);
stdout.write(materialLocalizations);
}
if (!options.materialOnly) {
stdout.write(cupertinoLocalizations);
}
}

View file

@ -0,0 +1,74 @@
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'localizations_utils.dart';
// See http://en.wikipedia.org/wiki/Right-to-left
const List<String> _rtlLanguages = <String>[
'ar', // Arabic
'fa', // Farsi
'he', // Hebrew
'ps', // Pashto
'ur', // Urdu
];
String generateWidgetsHeader(String regenerateInstructions) {
return '''
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// This file has been automatically generated. Please do not edit it manually.
// To regenerate the file, use:
// $regenerateInstructions
import 'dart:collection';
import 'dart:ui';
import '../widgets_localizations.dart';
// The classes defined here encode all of the translations found in the
// `flutter_localizations/lib/src/l10n/*.arb` files.
//
// These classes are constructed by the [getWidgetsTranslation] method at the
// bottom of this file, and used by the [_WidgetsLocalizationsDelegate.load]
// method defined in `flutter_localizations/lib/src/widgets_localizations.dart`.''';
}
/// Returns the source of the constructor for a GlobalWidgetsLocalizations
/// subclass.
String generateWidgetsConstructor(LocaleInfo locale) {
final String localeName = locale.originalString;
final String language = locale.languageCode.toLowerCase();
final String textDirection = _rtlLanguages.contains(language) ? 'TextDirection.rtl' : 'TextDirection.ltr';
return '''
/// Create an instance of the translation bundle for ${describeLocale(localeName)}.
///
/// For details on the meaning of the arguments, see [GlobalWidgetsLocalizations].
const WidgetsLocalization${locale.camelCase()}() : super($textDirection);''';
}
/// Returns the source of the constructor for a GlobalWidgetsLocalizations
/// subclass.
String generateWidgetsConstructorForCountrySubclass(LocaleInfo locale) {
final String localeName = locale.originalString;
return '''
/// Create an instance of the translation bundle for ${describeLocale(localeName)}.
///
/// For details on the meaning of the arguments, see [GlobalWidgetsLocalizations].
const WidgetsLocalization${locale.camelCase()}();''';
}
const String widgetsFactoryName = 'getWidgetsTranslation';
const String widgetsFactoryDeclaration = '''
GlobalWidgetsLocalizations? getWidgetsTranslation(
Locale locale,
) {''';
const String widgetsFactoryArguments = '';
const String widgetsSupportedLanguagesConstant = 'kWidgetsSupportedLanguages';
const String widgetsSupportedLanguagesDocMacro = 'flutter.localizations.widgets.languages';

View file

@ -239,6 +239,10 @@ GeneratorOptions parseArgs(List<String> rawArgs) {
'remove-undefined',
help: 'Remove any localizations that are not defined in the canonical locale.',
)
..addFlag(
'widgets',
help: 'Whether to print the generated classes for the Widgets package only. Ignored when --overwrite is passed.',
)
..addFlag(
'material',
help: 'Whether to print the generated classes for the Material package only. Ignored when --overwrite is passed.',
@ -254,6 +258,7 @@ GeneratorOptions parseArgs(List<String> rawArgs) {
}
final bool writeToFile = args['overwrite'] as bool;
final bool removeUndefined = args['remove-undefined'] as bool;
final bool widgetsOnly = args['widgets'] as bool;
final bool materialOnly = args['material'] as bool;
final bool cupertinoOnly = args['cupertino'] as bool;
@ -261,6 +266,7 @@ GeneratorOptions parseArgs(List<String> rawArgs) {
writeToFile: writeToFile,
materialOnly: materialOnly,
cupertinoOnly: cupertinoOnly,
widgetsOnly: widgetsOnly,
removeUndefined: removeUndefined,
);
}
@ -271,12 +277,14 @@ class GeneratorOptions {
required this.removeUndefined,
required this.materialOnly,
required this.cupertinoOnly,
required this.widgetsOnly,
});
final bool writeToFile;
final bool removeUndefined;
final bool materialOnly;
final bool cupertinoOnly;
final bool widgetsOnly;
}
// See also //master/tools/gen_locale.dart in the engine repo.

View file

@ -145,7 +145,7 @@ abstract class LocalizationsDelegate<T> {
/// Interface for localized resource values for the lowest levels of the Flutter
/// framework.
///
/// In particular, this maps locales to a specific [Directionality] using the
/// This class also maps locales to a specific [Directionality] using the
/// [textDirection] property.
///
/// See also:
@ -156,6 +156,30 @@ abstract class WidgetsLocalizations {
/// The reading direction for text in this locale.
TextDirection get textDirection;
/// The semantics label used for [SliverReorderableList] to reorder an item in the
/// list to the start of the list.
String get reorderItemToStart;
/// The semantics label used for [SliverReorderableList] to reorder an item in the
/// list to the end of the list.
String get reorderItemToEnd;
/// The semantics label used for [SliverReorderableList] to reorder an item in the
/// list one space up the list.
String get reorderItemUp;
/// The semantics label used for [SliverReorderableList] to reorder an item in the
/// list one space down the list.
String get reorderItemDown;
/// The semantics label used for [SliverReorderableList] to reorder an item in the
/// list one space left in the list.
String get reorderItemLeft;
/// The semantics label used for [SliverReorderableList] to reorder an item in the
/// list one space right in the list.
String get reorderItemRight;
/// The `WidgetsLocalizations` from the closest [Localizations] instance
/// that encloses the given context.
///
@ -207,6 +231,24 @@ class DefaultWidgetsLocalizations implements WidgetsLocalizations {
/// [LocalizationsDelegate] implementations typically call the static [load]
const DefaultWidgetsLocalizations();
@override
String get reorderItemUp => 'Move up';
@override
String get reorderItemDown => 'Move down';
@override
String get reorderItemLeft => 'Move left';
@override
String get reorderItemRight => 'Move right';
@override
String get reorderItemToEnd => 'Move to the end';
@override
String get reorderItemToStart => 'Move to the start';
@override
TextDirection get textDirection => TextDirection.ltr;

View file

@ -549,7 +549,7 @@ class RtlOverrideWidgetsDelegate extends LocalizationsDelegate<WidgetsLocalizati
bool shouldReload(LocalizationsDelegate<WidgetsLocalizations> oldDelegate) => false;
}
class RtlOverrideWidgetsLocalization implements WidgetsLocalizations {
class RtlOverrideWidgetsLocalization extends DefaultWidgetsLocalizations {
const RtlOverrideWidgetsLocalization();
@override
TextDirection get textDirection => TextDirection.rtl;

View file

@ -69,12 +69,6 @@ void main() {
expect(localizations.signedInLabel, isNotNull);
expect(localizations.hideAccountsLabel, isNotNull);
expect(localizations.showAccountsLabel, isNotNull);
expect(localizations.reorderItemToStart, isNotNull);
expect(localizations.reorderItemToEnd, isNotNull);
expect(localizations.reorderItemUp, isNotNull);
expect(localizations.reorderItemDown, isNotNull);
expect(localizations.reorderItemLeft, isNotNull);
expect(localizations.reorderItemRight, isNotNull);
expect(localizations.keyboardKeyAlt, isNotNull);
expect(localizations.keyboardKeyAltGraph, isNotNull);
expect(localizations.keyboardKeyBackspace, isNotNull);

View file

@ -8,5 +8,6 @@ library flutter_localizations;
export 'src/cupertino_localizations.dart';
export 'src/l10n/generated_cupertino_localizations.dart';
export 'src/l10n/generated_material_localizations.dart';
export 'src/l10n/generated_widgets_localizations.dart';
export 'src/material_localizations.dart';
export 'src/widgets_localizations.dart';

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Skuif na die begin",
"reorderItemToEnd": "Skuif na die einde",
"reorderItemUp": "Skuif op",
"reorderItemDown": "Skuif af",
"reorderItemLeft": "Skuif na links",
"reorderItemRight": "Skuif na regs"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "ወደ መጀመሪያ ውሰድ",
"reorderItemToEnd": "ወደ መጨረሻ ውሰድ",
"reorderItemUp": "ወደ ላይ ውሰድ",
"reorderItemDown": "ወደ ታች ውሰድ",
"reorderItemLeft": "ወደ ግራ ውሰድ",
"reorderItemRight": "ወደ ቀኝ ውሰድ"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "نقل إلى بداية القائمة",
"reorderItemToEnd": "نقل إلى نهاية القائمة",
"reorderItemUp": "نقل لأعلى",
"reorderItemDown": "نقل لأسفل",
"reorderItemLeft": "نقل لليمين",
"reorderItemRight": "نقل لليسار"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "আৰম্ভণিলৈ স্থানান্তৰ কৰক",
"reorderItemToEnd": "শেষলৈ স্থানান্তৰ কৰক",
"reorderItemUp": "ওপৰলৈ নিয়ক",
"reorderItemDown": "তললৈ স্থানান্তৰ কৰক",
"reorderItemLeft": "বাওঁফাললৈ স্থানান্তৰ কৰক",
"reorderItemRight": "সোঁফাললৈ স্থানান্তৰ কৰক"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Əvvələ köçürün",
"reorderItemToEnd": "Sona köçürün",
"reorderItemUp": "Yuxarı köçürün",
"reorderItemDown": "Aşağı köçürün",
"reorderItemLeft": "Sola köçürün",
"reorderItemRight": "Sağa köçürün"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Перамясціць у пачатак",
"reorderItemToEnd": "Перамясціць у канец",
"reorderItemUp": "Перамясціць уверх",
"reorderItemDown": "Перамясціць уніз",
"reorderItemLeft": "Перамясціць улева",
"reorderItemRight": "Перамясціць управа"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Преместване в началото",
"reorderItemToEnd": "Преместване в края",
"reorderItemUp": "Преместване нагоре",
"reorderItemDown": "Преместване надолу",
"reorderItemLeft": "Преместване наляво",
"reorderItemRight": "Преместване надясно"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "চালু করতে সরান",
"reorderItemToEnd": "একদম শেষের দিকে যান",
"reorderItemUp": "উপরের দিকে সরান",
"reorderItemDown": "নিচের দিকে সরান",
"reorderItemLeft": "বাঁদিকে সরান",
"reorderItemRight": "ডানদিকে সরান"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Pomjerite na početak",
"reorderItemToEnd": "Pomjerite na kraj",
"reorderItemUp": "Pomjeri nagore",
"reorderItemDown": "Pomjeri nadolje",
"reorderItemLeft": "Pomjeri lijevo",
"reorderItemRight": "Pomjeri desno"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Mou al principi",
"reorderItemToEnd": "Mou al final",
"reorderItemUp": "Mou amunt",
"reorderItemDown": "Mou avall",
"reorderItemLeft": "Mou cap a l'esquerra",
"reorderItemRight": "Mou cap a la dreta"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Přesunout na začátek",
"reorderItemToEnd": "Přesunout na konec",
"reorderItemUp": "Přesunout nahoru",
"reorderItemDown": "Přesunout dolů",
"reorderItemLeft": "Přesunout doleva",
"reorderItemRight": "Přesunout doprava"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Symud i'r dechrau",
"reorderItemToEnd": "Symud i'r diwedd",
"reorderItemUp": "Symud i fyny",
"reorderItemDown": "Symud i lawr",
"reorderItemLeft": "Symud i'r chwith",
"reorderItemRight": "Symud i'r dde"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Flyt til først på listen",
"reorderItemToEnd": "Flyt til sidst på listen",
"reorderItemUp": "Flyt op",
"reorderItemDown": "Flyt ned",
"reorderItemLeft": "Flyt til venstre",
"reorderItemRight": "Flyt til højre"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "An den Anfang verschieben",
"reorderItemToEnd": "An das Ende verschieben",
"reorderItemUp": "Nach oben verschieben",
"reorderItemDown": "Nach unten verschieben",
"reorderItemLeft": "Nach links verschieben",
"reorderItemRight": "Nach rechts verschieben"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "An den Anfang verschieben",
"reorderItemToEnd": "An das Ende verschieben",
"reorderItemUp": "Nach oben verschieben",
"reorderItemDown": "Nach unten verschieben",
"reorderItemLeft": "Nach links verschieben",
"reorderItemRight": "Nach rechts verschieben"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Μετακίνηση στην αρχή",
"reorderItemToEnd": "Μετακίνηση στο τέλος",
"reorderItemUp": "Μετακίνηση προς τα πάνω",
"reorderItemDown": "Μετακίνηση προς τα κάτω",
"reorderItemLeft": "Μετακίνηση αριστερά",
"reorderItemRight": "Μετακίνηση δεξιά"
}

View file

@ -0,0 +1,31 @@
{
"reorderItemToStart": "Move to the start",
"@reorderItemToStart": {
"description": "The audio announcement to move an item in a Reorderable List to the start of the list."
},
"reorderItemToEnd": "Move to the end",
"@reorderItemToEnd": {
"description": "The audio announcement to move an item in a Reorderable List to the end of the list."
},
"reorderItemUp": "Move up",
"@reorderItemUp": {
"description": "The audio announcement to move an item in a Reorderable List up in the list when it is oriented vertically."
},
"reorderItemDown": "Move down",
"@reorderItemDown": {
"description": "The audio announcement to move an item in a Reorderable List down in the list when it is oriented vertically."
},
"reorderItemLeft": "Move left",
"@reorderItemLeft": {
"description": "The audio announcement to move an item in a Reorderable List left in the list when it is oriented horizontally."
},
"reorderItemRight": "Move right",
"@reorderItemRight": {
"description": "The audio announcement to move an item in a Reorderable List right in the list when it is oriented horizontally."
}
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Move to the start",
"reorderItemToEnd": "Move to the end",
"reorderItemUp": "Move up",
"reorderItemDown": "Move down",
"reorderItemLeft": "Move to the left",
"reorderItemRight": "Move to the right"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Move to the start",
"reorderItemToEnd": "Move to the end",
"reorderItemUp": "Move up",
"reorderItemDown": "Move down",
"reorderItemLeft": "Move to the left",
"reorderItemRight": "Move to the right"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Move to the start",
"reorderItemToEnd": "Move to the end",
"reorderItemUp": "Move up",
"reorderItemDown": "Move down",
"reorderItemLeft": "Move to the left",
"reorderItemRight": "Move to the right"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Move to the start",
"reorderItemToEnd": "Move to the end",
"reorderItemUp": "Move up",
"reorderItemDown": "Move down",
"reorderItemLeft": "Move to the left",
"reorderItemRight": "Move to the right"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Move to the start",
"reorderItemToEnd": "Move to the end",
"reorderItemUp": "Move up",
"reorderItemDown": "Move down",
"reorderItemLeft": "Move to the left",
"reorderItemRight": "Move to the right"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Move to the start",
"reorderItemToEnd": "Move to the end",
"reorderItemUp": "Move up",
"reorderItemDown": "Move down",
"reorderItemLeft": "Move to the left",
"reorderItemRight": "Move to the right"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Move to the start",
"reorderItemToEnd": "Move to the end",
"reorderItemUp": "Move up",
"reorderItemDown": "Move down",
"reorderItemLeft": "Move to the left",
"reorderItemRight": "Move to the right"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Move to the start",
"reorderItemToEnd": "Move to the end",
"reorderItemUp": "Move up",
"reorderItemDown": "Move down",
"reorderItemLeft": "Move to the left",
"reorderItemRight": "Move to the right"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Mover al principio",
"reorderItemToEnd": "Mover al final",
"reorderItemUp": "Mover hacia arriba",
"reorderItemDown": "Mover hacia abajo",
"reorderItemLeft": "Mover hacia la izquierda",
"reorderItemRight": "Mover hacia la derecha"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Mover al inicio",
"reorderItemToEnd": "Mover al final",
"reorderItemUp": "Mover hacia arriba",
"reorderItemDown": "Mover hacia abajo",
"reorderItemLeft": "Mover hacia la izquierda",
"reorderItemRight": "Mover hacia la derecha"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Mover al inicio",
"reorderItemToEnd": "Mover al final",
"reorderItemUp": "Mover hacia arriba",
"reorderItemDown": "Mover hacia abajo",
"reorderItemLeft": "Mover hacia la izquierda",
"reorderItemRight": "Mover hacia la derecha"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemDown": "Mover hacia abajo",
"reorderItemLeft": "Mover hacia la izquierda",
"reorderItemToEnd": "Mover al final",
"reorderItemRight": "Mover hacia la derecha",
"reorderItemUp": "Mover hacia arriba",
"reorderItemToStart": "Mover al inicio"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemDown": "Mover hacia abajo",
"reorderItemLeft": "Mover hacia la izquierda",
"reorderItemToEnd": "Mover al final",
"reorderItemRight": "Mover hacia la derecha",
"reorderItemUp": "Mover hacia arriba",
"reorderItemToStart": "Mover al inicio"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemDown": "Mover hacia abajo",
"reorderItemLeft": "Mover hacia la izquierda",
"reorderItemToEnd": "Mover al final",
"reorderItemRight": "Mover hacia la derecha",
"reorderItemUp": "Mover hacia arriba",
"reorderItemToStart": "Mover al inicio"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemDown": "Mover hacia abajo",
"reorderItemLeft": "Mover hacia la izquierda",
"reorderItemToEnd": "Mover al final",
"reorderItemRight": "Mover hacia la derecha",
"reorderItemUp": "Mover hacia arriba",
"reorderItemToStart": "Mover al inicio"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemDown": "Mover hacia abajo",
"reorderItemLeft": "Mover hacia la izquierda",
"reorderItemToEnd": "Mover al final",
"reorderItemRight": "Mover hacia la derecha",
"reorderItemUp": "Mover hacia arriba",
"reorderItemToStart": "Mover al inicio"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemDown": "Mover hacia abajo",
"reorderItemLeft": "Mover hacia la izquierda",
"reorderItemToEnd": "Mover al final",
"reorderItemRight": "Mover hacia la derecha",
"reorderItemUp": "Mover hacia arriba",
"reorderItemToStart": "Mover al inicio"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemDown": "Mover hacia abajo",
"reorderItemLeft": "Mover hacia la izquierda",
"reorderItemToEnd": "Mover al final",
"reorderItemRight": "Mover hacia la derecha",
"reorderItemUp": "Mover hacia arriba",
"reorderItemToStart": "Mover al inicio"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemDown": "Mover hacia abajo",
"reorderItemLeft": "Mover hacia la izquierda",
"reorderItemToEnd": "Mover al final",
"reorderItemRight": "Mover hacia la derecha",
"reorderItemUp": "Mover hacia arriba",
"reorderItemToStart": "Mover al inicio"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemDown": "Mover hacia abajo",
"reorderItemLeft": "Mover hacia la izquierda",
"reorderItemToEnd": "Mover al final",
"reorderItemRight": "Mover hacia la derecha",
"reorderItemUp": "Mover hacia arriba",
"reorderItemToStart": "Mover al inicio"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemDown": "Mover hacia abajo",
"reorderItemLeft": "Mover hacia la izquierda",
"reorderItemToEnd": "Mover al final",
"reorderItemRight": "Mover hacia la derecha",
"reorderItemUp": "Mover hacia arriba",
"reorderItemToStart": "Mover al inicio"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemDown": "Mover hacia abajo",
"reorderItemLeft": "Mover hacia la izquierda",
"reorderItemToEnd": "Mover al final",
"reorderItemRight": "Mover hacia la derecha",
"reorderItemUp": "Mover hacia arriba",
"reorderItemToStart": "Mover al inicio"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemDown": "Mover hacia abajo",
"reorderItemLeft": "Mover hacia la izquierda",
"reorderItemToEnd": "Mover al final",
"reorderItemRight": "Mover hacia la derecha",
"reorderItemUp": "Mover hacia arriba",
"reorderItemToStart": "Mover al inicio"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemDown": "Mover hacia abajo",
"reorderItemLeft": "Mover hacia la izquierda",
"reorderItemToEnd": "Mover al final",
"reorderItemRight": "Mover hacia la derecha",
"reorderItemUp": "Mover hacia arriba",
"reorderItemToStart": "Mover al inicio"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemDown": "Mover hacia abajo",
"reorderItemLeft": "Mover hacia la izquierda",
"reorderItemToEnd": "Mover al final",
"reorderItemRight": "Mover hacia la derecha",
"reorderItemUp": "Mover hacia arriba",
"reorderItemToStart": "Mover al inicio"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemDown": "Mover hacia abajo",
"reorderItemLeft": "Mover hacia la izquierda",
"reorderItemToEnd": "Mover al final",
"reorderItemRight": "Mover hacia la derecha",
"reorderItemUp": "Mover hacia arriba",
"reorderItemToStart": "Mover al inicio"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemDown": "Mover hacia abajo",
"reorderItemLeft": "Mover hacia la izquierda",
"reorderItemToEnd": "Mover al final",
"reorderItemRight": "Mover hacia la derecha",
"reorderItemUp": "Mover hacia arriba",
"reorderItemToStart": "Mover al inicio"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemDown": "Mover hacia abajo",
"reorderItemLeft": "Mover hacia la izquierda",
"reorderItemToEnd": "Mover al final",
"reorderItemRight": "Mover hacia la derecha",
"reorderItemUp": "Mover hacia arriba",
"reorderItemToStart": "Mover al inicio"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemDown": "Mover hacia abajo",
"reorderItemLeft": "Mover hacia la izquierda",
"reorderItemToEnd": "Mover al final",
"reorderItemRight": "Mover hacia la derecha",
"reorderItemUp": "Mover hacia arriba",
"reorderItemToStart": "Mover al inicio"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Teisalda algusesse",
"reorderItemToEnd": "Teisalda lõppu",
"reorderItemUp": "Teisalda üles",
"reorderItemDown": "Teisalda alla",
"reorderItemLeft": "Teisalda vasakule",
"reorderItemRight": "Teisalda paremale"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Eraman hasierara",
"reorderItemToEnd": "Eraman amaierara",
"reorderItemUp": "Eraman gora",
"reorderItemDown": "Eraman behera",
"reorderItemLeft": "Eraman ezkerrera",
"reorderItemRight": "Eraman eskuinera"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "انتقال به ابتدا",
"reorderItemToEnd": "انتقال به انتها",
"reorderItemUp": "انتقال به بالا",
"reorderItemDown": "انتقال به پایین",
"reorderItemLeft": "انتقال به راست",
"reorderItemRight": "انتقال به چپ"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Siirrä alkuun",
"reorderItemToEnd": "Siirrä loppuun",
"reorderItemUp": "Siirrä ylös",
"reorderItemDown": "Siirrä alas",
"reorderItemLeft": "Siirrä vasemmalle",
"reorderItemRight": "Siirrä oikealle"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Ilipat sa simula",
"reorderItemToEnd": "Ilipat sa dulo",
"reorderItemUp": "Ilipat pataas",
"reorderItemDown": "Ilipat pababa",
"reorderItemLeft": "Ilipat pakaliwa",
"reorderItemRight": "Ilipat pakanan"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Déplacer vers le début",
"reorderItemToEnd": "Déplacer vers la fin",
"reorderItemUp": "Déplacer vers le haut",
"reorderItemDown": "Déplacer vers le bas",
"reorderItemLeft": "Déplacer vers la gauche",
"reorderItemRight": "Déplacer vers la droite"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Déplacer au début",
"reorderItemToEnd": "Déplacer à la fin",
"reorderItemUp": "Déplacer vers le haut",
"reorderItemDown": "Déplacer vers le bas",
"reorderItemLeft": "Déplacer vers la gauche",
"reorderItemRight": "Déplacer vers la droite"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Mover ao inicio",
"reorderItemToEnd": "Mover ao final",
"reorderItemUp": "Mover cara arriba",
"reorderItemDown": "Mover cara abaixo",
"reorderItemLeft": "Mover cara á esquerda",
"reorderItemRight": "Mover cara á dereita"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "An den Anfang verschieben",
"reorderItemToEnd": "An das Ende verschieben",
"reorderItemUp": "Nach oben verschieben",
"reorderItemDown": "Nach unten verschieben",
"reorderItemLeft": "Nach links verschieben",
"reorderItemRight": "Nach rechts verschieben"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "પ્રારંભમાં ખસેડો",
"reorderItemToEnd": "અંતમાં ખસેડો",
"reorderItemUp": "ઉપર ખસેડો",
"reorderItemDown": "નીચે ખસેડો",
"reorderItemLeft": "ડાબે ખસેડો",
"reorderItemRight": "જમણે ખસેડો"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "העברה להתחלה",
"reorderItemToEnd": "העברה לסוף",
"reorderItemUp": "העברה למעלה",
"reorderItemDown": "העברה למטה",
"reorderItemLeft": "העברה שמאלה",
"reorderItemRight": "העברה ימינה"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "शुरुआत पर ले जाएं",
"reorderItemToEnd": "आखिर में ले जाएं",
"reorderItemUp": "ऊपर ले जाएं",
"reorderItemDown": "नीचे ले जाएं",
"reorderItemLeft": "बाएं ले जाएं",
"reorderItemRight": "दाएं ले जाएं"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Premjesti na početak",
"reorderItemToEnd": "Premjesti na kraj",
"reorderItemUp": "Pomakni prema gore",
"reorderItemDown": "Pomakni prema dolje",
"reorderItemLeft": "Pomakni ulijevo",
"reorderItemRight": "Pomakni udesno"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Áthelyezés az elejére",
"reorderItemToEnd": "Áthelyezés a végére",
"reorderItemUp": "Áthelyezés felfelé",
"reorderItemDown": "Áthelyezés lefelé",
"reorderItemLeft": "Áthelyezés balra",
"reorderItemRight": "Áthelyezés jobbra"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Տեղափոխել սկիզբ",
"reorderItemToEnd": "Տեղափոխել վերջ",
"reorderItemUp": "Տեղափոխել վերև",
"reorderItemDown": "Տեղափոխել ներքև",
"reorderItemLeft": "Տեղափոխել ձախ",
"reorderItemRight": "Տեղափոխել աջ"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Pindahkan ke awal",
"reorderItemToEnd": "Pindahkan ke akhir",
"reorderItemUp": "Naikkan",
"reorderItemDown": "Turunkan",
"reorderItemLeft": "Pindahkan ke kiri",
"reorderItemRight": "Pindahkan ke kanan"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Færa fremst",
"reorderItemToEnd": "Færa aftast",
"reorderItemUp": "Færa upp",
"reorderItemDown": "Færa niður",
"reorderItemLeft": "Færa til vinstri",
"reorderItemRight": "Færa til hægri"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Sposta all'inizio",
"reorderItemToEnd": "Sposta alla fine",
"reorderItemUp": "Sposta su",
"reorderItemDown": "Sposta giù",
"reorderItemLeft": "Sposta a sinistra",
"reorderItemRight": "Sposta a destra"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "先頭に移動",
"reorderItemToEnd": "最後に移動",
"reorderItemUp": "上に移動",
"reorderItemDown": "下に移動",
"reorderItemLeft": "左に移動",
"reorderItemRight": "右に移動"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "დასაწყისში გადატანა",
"reorderItemToEnd": "ბოლოში გადატანა",
"reorderItemUp": "ზემოთ გადატანა",
"reorderItemDown": "ქვემოთ გადატანა",
"reorderItemLeft": "მარცხნივ გადატანა",
"reorderItemRight": "მარჯვნივ გადატანა"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Басына өту",
"reorderItemToEnd": "Соңына өту",
"reorderItemUp": "Жоғарыға жылжыту",
"reorderItemDown": "Төменге жылжыту",
"reorderItemLeft": "Солға жылжыту",
"reorderItemRight": "Оңға жылжыту"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "ផ្លាស់ទីទៅ​ចំណុច​ចាប់ផ្ដើម",
"reorderItemToEnd": "ផ្លាស់ទីទៅ​ចំណុចបញ្ចប់",
"reorderItemUp": "ផ្លាស់ទី​ឡើង​លើ",
"reorderItemDown": "ផ្លាស់ទី​ចុះ​ក្រោម",
"reorderItemLeft": "ផ្លាស់ទី​ទៅ​ឆ្វេង",
"reorderItemRight": "ផ្លាស់ទីទៅ​ស្តាំ"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "\u0caa\u0ccd\u0cb0\u0cbe\u0cb0\u0c82\u0cad\u0c95\u0ccd\u0c95\u0cc6\u0020\u0cb8\u0cb0\u0cbf\u0cb8\u0cbf",
"reorderItemToEnd": "\u0c95\u0cca\u0ca8\u0cc6\u0c97\u0cc6\u0020\u0cb8\u0cb0\u0cbf\u0cb8\u0cbf",
"reorderItemUp": "\u0cae\u0cc7\u0cb2\u0cc6\u0020\u0cb8\u0cb0\u0cbf\u0cb8\u0cbf",
"reorderItemDown": "\u0c95\u0cc6\u0cb3\u0c97\u0cc6\u0020\u0cb8\u0cb0\u0cbf\u0cb8\u0cbf",
"reorderItemLeft": "\u0c8e\u0ca1\u0c95\u0ccd\u0c95\u0cc6\u0020\u0cb8\u0cb0\u0cbf\u0cb8\u0cbf",
"reorderItemRight": "\u0cac\u0cb2\u0c95\u0ccd\u0c95\u0cc6\u0020\u0cb8\u0cb0\u0cbf\u0cb8\u0cbf"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "시작으로 이동",
"reorderItemToEnd": "끝으로 이동",
"reorderItemUp": "위로 이동",
"reorderItemDown": "아래로 이동",
"reorderItemLeft": "왼쪽으로 이동",
"reorderItemRight": "오른쪽으로 이동"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Башына жылдыруу",
"reorderItemToEnd": "Аягына жылдыруу",
"reorderItemUp": "Жогору жылдыруу",
"reorderItemDown": "Төмөн жылдыруу",
"reorderItemLeft": "Солго жылдыруу",
"reorderItemRight": "Оңго жылдыруу"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "ຍ້າຍໄປເລີ່ມຕົ້ນ",
"reorderItemToEnd": "ຍ້າຍໄປສິ້ນສຸດ",
"reorderItemUp": "ຍ້າຍຂຶ້ນ",
"reorderItemDown": "ຍ້າຍລົງ",
"reorderItemLeft": "ຍ້າຍໄປຊ້າຍ",
"reorderItemRight": "ຍ້າຍໄປຂວາ"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Perkelti į pradžią",
"reorderItemToEnd": "Perkelti į pabaigą",
"reorderItemUp": "Perkelti aukštyn",
"reorderItemDown": "Perkelti žemyn",
"reorderItemLeft": "Perkelti kairėn",
"reorderItemRight": "Perkelti dešinėn"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Pārvietot uz sākumu",
"reorderItemToEnd": "Pārvietot uz beigām",
"reorderItemUp": "Pārvietot uz augšu",
"reorderItemDown": "Pārvietot uz leju",
"reorderItemLeft": "Pārvietot pa kreisi",
"reorderItemRight": "Pārvietot pa labi"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Преместете на почеток",
"reorderItemToEnd": "Преместете на крајот",
"reorderItemUp": "Преместете нагоре",
"reorderItemDown": "Преместете надолу",
"reorderItemLeft": "Преместете налево",
"reorderItemRight": "Преместете надесно"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "തുടക്കത്തിലേക്ക് പോവുക",
"reorderItemToEnd": "അവസാന ഭാഗത്തേക്ക് പോവുക",
"reorderItemUp": "മുകളിലോട്ട് നീക്കുക",
"reorderItemDown": "താഴോട്ട് നീക്കുക",
"reorderItemLeft": "ഇടത്തോട്ട് നീക്കുക",
"reorderItemRight": "വലത്തോട്ട് നീക്കുക"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Эхлэл рүү зөөх",
"reorderItemToEnd": "Төгсгөл рүү зөөх",
"reorderItemUp": "Дээш зөөх",
"reorderItemDown": "Доош зөөх",
"reorderItemLeft": "Зүүн тийш зөөх",
"reorderItemRight": "Баруун тийш зөөх"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "सुरुवातीला हलवा",
"reorderItemToEnd": "शेवटाकडे हलवा",
"reorderItemUp": "वर हलवा",
"reorderItemDown": "खाली हलवा",
"reorderItemLeft": "डावीकडे हलवा",
"reorderItemRight": "उजवीकडे हलवा"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Alih ke permulaan",
"reorderItemToEnd": "Alih ke penghujung",
"reorderItemUp": "Alih ke atas",
"reorderItemDown": "Alih ke bawah",
"reorderItemLeft": "Alih ke kiri",
"reorderItemRight": "Alih ke kanan"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "အစသို့ ရွှေ့ရန်",
"reorderItemToEnd": "အဆုံးသို့ ‌ရွှေ့ရန်",
"reorderItemUp": "အပေါ်သို့ ရွှေ့ရန်",
"reorderItemDown": "အောက်သို့ရွှေ့ရန်",
"reorderItemLeft": "ဘယ်ဘက်သို့ရွှေ့ရန်",
"reorderItemRight": "ညာဘက်သို့ရွှေ့ရန်"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Flytt til starten",
"reorderItemToEnd": "Flytt til slutten",
"reorderItemUp": "Flytt opp",
"reorderItemDown": "Flytt ned",
"reorderItemLeft": "Flytt til venstre",
"reorderItemRight": "Flytt til høyre"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "सुरुमा सार्नुहोस्",
"reorderItemToEnd": "अन्त्यमा जानुहोस्",
"reorderItemUp": "माथि सार्नुहोस्",
"reorderItemDown": "तल सार्नुहोस्",
"reorderItemLeft": "बायाँ सार्नुहोस्",
"reorderItemRight": "दायाँ सार्नुहोस्"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Naar het begin verplaatsen",
"reorderItemToEnd": "Naar het einde verplaatsen",
"reorderItemUp": "Omhoog verplaatsen",
"reorderItemDown": "Omlaag verplaatsen",
"reorderItemLeft": "Naar links verplaatsen",
"reorderItemRight": "Naar rechts verplaatsen"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Flytt til starten",
"reorderItemToEnd": "Flytt til slutten",
"reorderItemUp": "Flytt opp",
"reorderItemDown": "Flytt ned",
"reorderItemLeft": "Flytt til venstre",
"reorderItemRight": "Flytt til høyre"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "ଆରମ୍ଭକୁ ଯାଆନ୍ତୁ",
"reorderItemToEnd": "ଶେଷକୁ ଯାଆନ୍ତୁ",
"reorderItemUp": "ଉପରକୁ ନିଅନ୍ତୁ",
"reorderItemDown": "ତଳକୁ ଯାଆନ୍ତୁ",
"reorderItemLeft": "ବାମକୁ ଯାଆନ୍ତୁ",
"reorderItemRight": "ଡାହାଣକୁ ଯାଆନ୍ତୁ"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "ਸ਼ੁਰੂ ਵਿੱਚ ਲਿਜਾਓ",
"reorderItemToEnd": "ਅੰਤ ਵਿੱਚ ਲਿਜਾਓ",
"reorderItemUp": "ਉੱਪਰ ਲਿਜਾਓ",
"reorderItemDown": "ਹੇਠਾਂ ਲਿਜਾਓ",
"reorderItemLeft": "ਖੱਬੇ ਲਿਜਾਓ",
"reorderItemRight": "ਸੱਜੇ ਲਿਜਾਓ"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Przenieś na początek",
"reorderItemToEnd": "Przenieś na koniec",
"reorderItemUp": "Przenieś w górę",
"reorderItemDown": "Przenieś w dół",
"reorderItemLeft": "Przenieś w lewo",
"reorderItemRight": "Przenieś w prawo"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Move to the start",
"reorderItemToEnd": "Move to the end",
"reorderItemUp": "Move up",
"reorderItemDown": "Move down",
"reorderItemLeft": "Move left",
"reorderItemRight": "Move right"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Mover para o início",
"reorderItemToEnd": "Mover para o final",
"reorderItemUp": "Mover para cima",
"reorderItemDown": "Mover para baixo",
"reorderItemLeft": "Mover para a esquerda",
"reorderItemRight": "Mover para a direita"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Mover para o início",
"reorderItemToEnd": "Mover para o fim",
"reorderItemUp": "Mover para cima",
"reorderItemDown": "Mover para baixo",
"reorderItemLeft": "Mover para a esquerda",
"reorderItemRight": "Mover para a direita"
}

View file

@ -0,0 +1,8 @@
{
"reorderItemToStart": "Mutați la început",
"reorderItemToEnd": "Mutați la sfârșit",
"reorderItemUp": "Mutați în sus",
"reorderItemDown": "Mutați în jos",
"reorderItemLeft": "Mutați la stânga",
"reorderItemRight": "Mutați la dreapta"
}

Some files were not shown because too many files have changed in this diff Show more