មែកធាងរូបថតអេក្រង់ពហុភាសា - App Store និង Play Store

លោក Les រូបថតអេក្រង់ គឺជាធាតុសំខាន់នៃការបង្ហាញកម្មវិធីនៅលើហាងទូរស័ព្ទ។
ពួកវាមានឥទ្ធិពលដោយផ្ទាល់ទៅលើ ការបម្លែងនេះ ភាពជឿជាក់ និង គុណភាព​យល់​ឃើញ​ នៃផលិតផលរបស់អ្នក។
ដើម្បីធានាបាននូវការចែកចាយដោយរលូន និងអនុលោមភាព វាមានសារៈសំខាន់ណាស់ក្នុងការអនុម័ត ក រចនាសម្ព័ន្ធដើមឈើនៃ ទំហំស្របគ្នា។, និង ការចាប់យកដែលបានធ្វើមូលដ្ឋានីយកម្ម សម្រាប់ភាសានីមួយៗ។


រចនាសម្ព័ន្ធទូទៅ

ហាងនីមួយៗមានច្បាប់ផ្ទាល់ខ្លួន៖

  • ឃ្លាំងកម្មវិធី (ប្រព័ន្ធប្រតិបត្តិការ Android) ៖ រូបថតអេក្រង់ដែលចាត់ថ្នាក់ដោយ ប្រភេទឧបករណ៍, ជាមួយ​ខ្លះ ទំហំនិងដង់ស៊ីតេច្បាស់លាស់.
  • App Store (iOS) ៖ ចាប់បានចាត់ថ្នាក់ដោយ ទម្រង់អេក្រង់ Appleបង្កើត​ឡើង​តាម​រយៈ​ ការក្លែងធ្វើ Xcode ផ្លូវការ
  • ពហុភាសា → ភាសានីមួយៗមានថតឯកសារផ្ទាល់ខ្លួន (fr-FR, en-US, es-ESល។ )

ឃ្លាំងកម្មវិធី (ប្រព័ន្ធប្រតិបត្តិការ Android)

រចនាសម្ព័ន្ធដើមឈើធម្មតា។

/android/
├── fr-FR/
│   └── images/
│       ├── FeatureGraphic.png
│       ├── phoneScreenshots/
│       │   ├── 01_home.png
│       │   ├── 02_features.png
│       │   └── ...
│       ├── sevenInchScreenshots/
│       │   ├── 01_home.png
│       │   └── ...
│       └── tenInchScreenshots/
│           ├── 01_home.png
│           └── ...
│
└── en-US/
    └── images/
        ├── FeatureGraphic.png
        ├── phoneScreenshots/
        ├── sevenInchScreenshots/
        └── tenInchScreenshots/

លក្ខណៈពិសេសក្រាហ្វិក

Le FeatureGraphic.png គឺ រូបភាពសំខាន់នៃ Play Store.
វាបង្ហាញនៅផ្នែកខាងលើនៃសន្លឹកផលិតផល និងនៅក្នុងតំបន់ផ្សព្វផ្សាយមួយចំនួននៃហាង។

ធាតុទំហំ (px)ដង់ស៊ីតេ (dpi)
ក្រាហ្វិកលក្ខណៈពិសេស1024 × 500160

វាជាញឹកញាប់ ការមើលឃើញដំបូងដែលឃើញដោយអ្នកប្រើប្រាស់ ៖ យកចិត្តទុកដាក់លើការរចនា ជៀសវាងអត្ថបទដែលតូចពេក និងរក្សាភាពស៊ីសង្វាក់គ្នានៃរូបភាពជាមួយរូបថតអេក្រង់របស់អ្នក។

ទំហំ និងដង់ស៊ីតេដែលបានណែនាំសម្រាប់រូបថតអេក្រង់ Android

ប្រភេទ d’appareilកំណត់ត្រាទំហំ (px)ដង់ស៊ីតេ (dpi)រូបថតអេក្រង់អតិបរមា
ទូរស័ព្ទរូបថតអេក្រង់ទូរស័ព្ទ/1080 × 19204208
ថេប្លេត 7 អ៊ីញរូបថតអេក្រង់ប្រាំពីរអ៊ីញ /800 × 12802138
ថេប្លេត 10 អ៊ីញtenInch រូបថតអេក្រង់/1600 × 25603208

⚠️ ប្រសិនបើអ្នកថតលើសពី 8 ក្នុងមួយថត។ Google Play នឹងរារាំងការដាក់ឱ្យប្រើប្រាស់

ការដាក់ឈ្មោះឯកសារ

Play Store តម្រៀបឯកសារ តាមលំដាប់អក្ខរក្រម.
ដើម្បីគ្រប់គ្រងលំដាប់បង្ហាញ លេខឯកសារជាប្រព័ន្ធ

01_home.png
02_features.png
03_profile.png
04_settings.png

បុព្វបទលេខ (01_, 02_ល។ ) គឺ ជាកាតព្វកិច្ច ដើម្បីធានាបាននូវលំដាប់ដែលមើលឃើញស្របគ្នា។


App Store (iOS)

រចនាសម្ព័ន្ធដើមឈើធម្មតា។

/ios/
├── fr-FR/
│   └── images/
│       ├── iPhone 6.7-inch_01.png
│       ├── iPhone 6.7-inch_02.png
│       ├── iPad Pro (12.9-inch) (3rd generation)_01.png
│       ├── iPad Pro (12.9-inch) (3rd generation)_02.png
│       └── ...
│
└── en-US/
    └── images/
        ├── iPhone 6.7-inch_01.png
        ├── iPad Pro (12.9-inch) (3rd generation)_01.png
        └── ...

ដែនកំណត់និងវិធីសាស្ត្របង្កើត

ប្រភេទ d’appareilវិធីសាស្រ្តដែលបានណែនាំទំហំដើមរូបថតអេក្រង់អតិបរមា
ទូរស័ព្ទ iPhone 6.7 អ៊ីញកម្មវិធីត្រាប់តាម Xcode ផ្លូវការបង្កើតដោយស្វ័យប្រវត្តិ10
iPad Pro (12.9 អ៊ីញ) (ជំនាន់ទី 3)កម្មវិធីត្រាប់តាម Xcode ផ្លូវការបង្កើតដោយស្វ័យប្រវត្តិ10

⚠️ហាមប្រើ មិនដែលផ្លាស់ប្តូរទំហំការចាប់យកដោយដៃទេ។ ៖ Apple ទាមទារឯកសារដែលបានបង្កើតពីម៉ាស៊ីនក្លែងធ្វើដែលត្រូវគ្នានឹងទំហំអេក្រង់។

ល្បិច

ទម្រង់ iPhone 6.7-inch et iPad Pro (12.9-inch) គ្របដណ្តប់ ឧបករណ៍ iOS ទំនើបស្ទើរតែទាំងអស់។.

ការដាក់ឈ្មោះឯកសារ

iPhone 6.7-inch_01.png
iPad Pro (12.9-inch) (3rd generation)_01.png

❗️គោរពយ៉ាងតឹងរឹងករណី ដកឃ្លា និងវង់ក្រចក។


រចនាសម្ព័ន្ធពហុភាសាពេញលេញ

/screenshots/
├── android/
│   ├── fr-FR/
│   ├── en-US/
│   └── es-ES/
└── ios/
    ├── fr-FR/
    ├── en-US/
    └── es-ES/

សារៈសំខាន់នៃរូបថតអេក្រង់ដែលបានធ្វើមូលដ្ឋានីយកម្ម

ពិការភ្នែកបង្ហាញរូបភាពដោយស្វ័យប្រវត្តិយោងទៅតាម ភាសាអ្នកប្រើប្រាស់.
បង្កើតការចាប់យក បានធ្វើមូលដ្ឋានីយកម្មនិងបកប្រែ ធ្វើអោយប្រសើរឡើងនូវការយល់ដឹង និងការបំប្លែង។

ការធ្វើផែនទីតំបន់ (ភាសា និងថតឯកសារ)

Le ការធ្វើផែនទីក្នុងតំបន់ គឺជាប្លុកអគារដ៏សំខាន់ដែលធានាថា បង្កើតរូបថតអេក្រង់ដោយស្វ័យប្រវត្តិ ត្រូវនឹង ទម្រង់ភាសាដែលគាំទ្រយ៉ាងពិតប្រាកដ តាមហាងដែលអ្នកផ្សព្វផ្សាយ

ហេតុអ្វីបានជាការធ្វើផែនទីនេះគឺចាំបាច់

  • វាអនុញ្ញាត បម្លែង​មូលដ្ឋាន​គម្រោង (.arb) ខ Les ទម្រង់ផ្លូវការក្នុងស្រុក ប្រើដោយហាងនីមួយៗ (ឧ. frfr-FR).
  • វាត្រូវបានប្រើក្នុងអំឡុងពេល ការបង្កើតថតអេក្រង់ដែលបានធ្វើមូលដ្ឋានីយកម្មដោយស្វ័យប្រវត្តិ សម្រាប់ឧបករណ៍ដូចជា ហ្វលលីន, ស៊ីអាយ / ស៊ីឌីឬស្គ្រីបខាងក្នុង។
  • វាជៀសវាងកំហុសក្នុងការសាងសង់ និងដាក់ពង្រាយ ដោយសារភាសាដែលមិនគាំទ្រនៅលើវេទិកាគោលដៅ។
  • ⚠️បញ្ជីភាសាដែលគាំទ្រ ខុសគ្នារវាង Play Store និង App Store.
    • ឧទាហរណ៍:
      • Google Play ទទួលយក es-419 (អាមេរិកឡាទីនអេស្ប៉ាញ) មិនគាំទ្រដោយ Apple.
      • App Store គាំទ្រ fr-CA (កាណាដា បារាំង) មិនត្រូវបានទទួលស្គាល់ដោយផ្ទាល់ដោយ Google Play.

ការគូសផែនទីនេះធានាថាអ្នកបង្កើតតែឯកសារភាសាដែលត្រូវគ្នាជាមួយប៉ុណ្ណោះ។ ហាងគោលដៅ.

កូដប្រភពពេញលេញនៃការគូសផែនទីមូលដ្ឋាន

/// Bibliothèque partagée pour mapper les locales du projet aux formats
/// attendus par le Google Play Store et l'App Store Connect.
/// C'est la source de vérité unique pour la logique de mappage.

// ===========================================================================
// LOGIQUE POUR APP STORE CONNECT (IOS)
// ===========================================================================

const Map<String, String> _appleLocaleMapping = {
  'en': 'en-US', 'en-GB': 'en-GB', 'en-CA': 'en-CA', 'fr': 'fr-FR', 'fr-CA': 'fr-CA',
  'es': 'es-ES', 'es-MX': 'es-MX', 'de': 'de-DE', 'it': 'it',
  'pt': 'pt-PT', 'pt-BR': 'pt-BR', 'zh': 'zh-Hans', 'zh-CN': 'zh-Hans', 'zh-HK': 'zh-Hant',
  'zh-TW': 'zh-Hant', 'ja': 'ja', 'ko': 'ko', 'ru': 'ru', 'ar': 'ar-SA',
  'nl': 'nl-NL', 'sv': 'sv', 'fi': 'fi', 'da': 'da', 'no': 'no', 'tr': 'tr',
  'pl': 'pl', 'id': 'id', 'th': 'th', 'vi': 'vi', 'he': 'he', 'ms': 'ms',
  'ro': 'ro', 'cs': 'cs', 'sk': 'sk', 'hr': 'hr', 'uk': 'uk', 'hi': 'hi',
  'el': 'el', 'ca': 'ca', 'et-EE': 'et', 'uk-UA': 'uk',
};

const Set<String> _appStoreSupportedLocales = {
  'ar-SA', 'ca', 'cs', 'da', 'de-DE', 'el', 'en-AU', 'en-CA', 'en-GB', 'en-US',
  'es-ES', 'es-MX', 'fi', 'fr-CA', 'fr-FR', 'he', 'hi', 'hr', 'hu', 'id', 'it',
  'ja', 'ko', 'ms', 'nl-NL', 'no', 'pl', 'pt-BR', 'pt-PT', 'ro', 'ru', 'sk',
  'sv', 'th', 'tr', 'uk', 'vi', 'zh-Hans', 'zh-Hant', 'et'
};

String? toAppleLocale(String locale) {
  if (_appleLocaleMapping.containsKey(locale)) {
    final appleLocale = _appleLocaleMapping[locale]!;
    return _appStoreSupportedLocales.contains(appleLocale) ? appleLocale : null;
  }
  if (_appStoreSupportedLocales.contains(locale)) return locale;
  return null;
}

// ===========================================================================
// LOGIQUE POUR GOOGLE PLAY (ANDROID)
// ===========================================================================

const Map<String, String> _playLocaleMapping = {
  'af': 'af', 'am': 'am', 'bg': 'bg', 'ca': 'ca','lv': 'lv',
  'hr': 'hr', 'et': 'et', 'el': 'el-GR', 'lt': 'lt', 'ms': 'ms', 'ro': 'ro',
  'sr': 'sr', 'sk': 'sk', 'sl': 'sl', 'sw': 'sw', 'fil': 'fil', 'cs': 'cs-CZ',
  'th': 'th', 'uk': 'uk', 'vi': 'vi', 'zu': 'zu', 'gu': 'gu', 'kk': 'kk', 'pa': 'pa',
  'sq': 'sq', 'ur': 'ur', 'ar': 'ar', 'id': 'id', 'in': 'id',
  'fr': 'fr-FR', 'en': 'en-US', 'es': 'es-ES', 'pt': 'pt-BR', 'zh': 'zh-CN',
  'sv': 'sv-SE', 'ta': 'ta-IN', 'te': 'te-IN', 'tr': 'tr-TR', 'de': 'de-DE',
  'fi': 'fi-FI', 'hi': 'hi-IN', 'hu': 'hu-HU', 'is': 'is-IS', 'it': 'it-IT',
  'ja': 'ja-JP', 'ko': 'ko-KR', 'nl': 'nl-NL', 'no': 'no-NO', 'pl': 'pl-PL',
  'ru': 'ru-RU', 'da': 'da-DK', 'az': 'az-AZ', 'be': 'be', 'bn': 'bn-BD',
  'eu': 'eu-ES', 'fa': 'fa-IR', 'gl': 'gl-ES', 'he': 'iw-IL', 'hy': 'hy-AM',
  'ka': 'ka-GE', 'km': 'km-KH', 'kn': 'kn-IN', 'ky': 'ky-KG', 'lo': 'lo-LA',
  'mk': 'mk-MK', 'ml': 'ml-in', 'mn': 'mn-MN', 'mr': 'mr-in', 'my': 'my-MM',
  'ne': 'ne-NP', 'si': 'si-LK', 'en-US': 'en-US', 'en-GB': 'en-GB', 'zh-HK': 'zh-HK',
  'zh-CN': 'zh-CN', 'zh-TW': 'zh-TW', 'es-419': 'es-419', 'es-ES': 'es-ES',
  'fr-CA': 'fr-CA', 'fr-FR': 'fr-FR', 'pt-BR': 'pt-BR', 'pt-PT': 'pt-PT',
};

const Set<String> _playSupportedLocales = {
  'be','ar','af','az','de','am','en-US','en-GB','bg','ca','zh-HK','zh-CN','zh-TW',
  'ko','hr','da','es-419','es-ES','et','fi','fr-CA','fr-FR','el','si','hi','hu','id','in',
  'is','it','ja','lv','lt','ms','nl','mk','my','ne','no','pl','pt-BR','pt-PT','ro','ru',
  'sr','sk','sl','sv','sw','ka','km','kn','ky','lo','mn','mr','fil','cs','th','tr','uk',
  'vi','zu','gu','kk','pa','sq','ta','te','ur','bn','eu','fa','gl','he','hy','ml'
};

String? toPlayLocale(String locale) {
  final normalizedLocale = locale.replaceAll('_', '-');
  if (_playLocaleMapping.containsKey(normalizedLocale)) {
    return _playLocaleMapping[normalizedLocale];
  }
  if (_playSupportedLocales.contains(normalizedLocale)) {
    return normalizedLocale;
  }
  return null;
}

ការអនុវត្តល្អ

  • រក្សាការធ្វើផែនទីតំបន់របស់អ្នកឱ្យទាន់សម័យ (locale_mapping.dart) ដើម្បីបង្កើតរូបថតអេក្រង់តែជាភាសាដែលគាំទ្រដោយហាងនីមួយៗ។
  • គោរពទម្រង់ឯកសារភាសា (fr-FR, en-USល។ )
  • លេខឯកសារ Android (01_, 02_ល។ )
  • ប្រើម៉ាស៊ីនក្លែងធ្វើ Xcode ផ្លូវការ សម្រាប់ iOS ។
  • នៅលើ iOS, កំណត់ខ្លួនអ្នកទៅ iPhone 6.7-inch et iPad Pro (12.9-inch) ដើម្បីគ្របដណ្តប់ករណីភាគច្រើន។
  • ថែរក្សាក្រាហ្វិកលក្ខណៈពិសេសរបស់អ្នក។ ៖ នេះ​ជា​ញឹក​ញាប់​ជា​ទិដ្ឋភាព​ដំបូង​ដែល​អ្នក​ប្រើ​ឃើញ។
  • បង្កើតការចាប់យកដែលបានធ្វើមូលដ្ឋានីយកម្ម សម្រាប់ភាសានីមួយៗដែលគាំទ្រ។
  • កុំលើសពីដែនកំណត់ :
    • 8 រូបភាពអតិបរមា / ថតប្រព័ន្ធប្រតិបត្តិការ Android
    • 10 រូបភាពអតិបរមា / ទម្រង់ iOS
  • សាកល្បងការមើលឃើញរបស់អ្នកជានិច្ចនៅលើឧបករណ៍ដែលត្រូវគ្នា។ មុនពេលដាក់ពង្រាយ។

commentaire អ៊ុ Laisser

អាសយដ្ឋានអ៊ីមែលរបស់អ្នកនឹងមិនត្រូវបានផ្សព្វផ្សាយទេ។ វាលដែលត្រូវការត្រូវបានសម្គាល់ * *