Flutter自动存储与翻译插件auto_store_translate的使用

发布于 1周前 作者 phonegap100 来自 Flutter

Flutter自动存储与翻译插件auto_store_translate的使用

Pub

一个自动化处理应用商店元数据(如标题、描述等)翻译和注册的库。

playstore & appstore 翻译截图

“Buy Me A Coffee”

如何使用?

1. 设置配置文件

pubspec.yaml 文件中添加依赖:

dependencies:
  auto_store_translate:

2. 创建 Dart 文件并在项目中粘贴以下代码

在项目中创建一个新的 Dart 文件:

项目路径 > auto_translation > store_meta_info.dart

请填写所有信息:

import 'package:auto_store_translate/auto_store_translate.dart';

/// 填写你的商店信息
MyStoreInfo myStoreInfo = MyStoreInfo(
  // Play Store 标题,不超过30个字符
  playStoreTitle: "",

  // Play Store 短描述,不超过80个字符
  playStoreShortDescription: "",

  // Play Store 长描述,不超过4000个字符
  playStoreFullDescription: '''
  

  ''',

  // Play Store 翻译起始语言
  playStoreStartLanguage: "en",

  // Play Store 标题是否翻译
  translatePlayStoreName: true,

  // App Store 标题,不超过30个字符
  appStoreTitle: "",

  // App Store 副标题,不超过30个字符
  appStoreSubTitle: "",

  // App Store 描述,不超过4000个字符
  appStringDescription: '''
  

  ''',

  // App Store 关键词,不超过100个字符,用逗号分隔,用于SEO
  appStoreKeywords: "",

  // App Store 翻译起始语言
  appStoreStartLanguage: "en",

  // App Store 标题是否翻译
  translateAppStoreName: true,

  // 是否显示 App Store 标题首字母大写
  onlyFirstCharacterUpperAppName: true,

  // App Store 更新说明
  releaseNote: "修复小错误 :)",

  // 主页链接
  homepageLink: "",

  // 隐私政策链接
  policyPageLink: "",
);

void main() {
  AutoStoreTranslate.translateStoreInfo(
      myStoreInfo: myStoreInfo,

      // Google Translate API 密钥
      googleTranslateApiKey: "INPUT_YOUR_GOOGLE_TRANSLATE_API_KEY",

      // true: 只翻译标题,false: 翻译标题及全部
      onlyAppNameTranslate: false);
}

如果没有提供 Google Translate API 密钥,它仍然可以工作,但很快会达到免费限制。要获取 Google Translate API 密钥,请参阅此文档

3. 运行上述代码并等待翻译完成

4. 在项目中可以看到已翻译的文件夹

5. 为每个 Android 和 iOS 设置 fastlane 并在 Play Store/App Store 注册信息

注册 PlayStore(Android)

1. 设置 fastlane 配置文件(Android)

请参阅官方文档

2. 在 android/fastlane/fastfile 文件中添加以下代码:
lane :metaOnly do
  upload_to_play_store(
      track: 'internal',
      metadata_path: '../auto_translation/metadata/android',
      skip_upload_screenshots: true,
      skip_upload_changelogs: true,
      release_status: 'draft',
      aab: '../build/app/outputs/bundle/release/app-release.aab',
  )
end
3. 在 Android 项目的终端中输入以下命令:
fastlane metaOnly
4. 您将在 Play Store 控制台中看到已翻译的信息

注册 App Store(iOS)

1. 设置 fastlane 配置文件(iOS)

请参阅官方文档

2. 在 ios/fastlane/fastfile 文件中添加以下代码:
lane :metaOnly do
    get_certificates          
    get_provisioning_profile  
    deliver(
        metadata_path: '../auto_translation/metadata/ios',
        force: true, # 跳过 HTML 报告验证
        skip_screenshots: true,
        skip_binary_upload: true,
    )
end
3. 在 iOS 项目的终端中输入以下命令:
fastlane metaOnly

更多关于Flutter自动存储与翻译插件auto_store_translate的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter自动存储与翻译插件auto_store_translate的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,下面是一个关于如何在Flutter项目中使用auto_store_translate插件的示例代码。这个插件假定它具备自动存储和翻译功能。由于这个插件是假设的,并且实际的插件API和行为可能会有所不同,以下代码是基于一般Flutter插件使用的通用模板编写的。

首先,确保你已经在pubspec.yaml文件中添加了auto_store_translate插件的依赖项(注意:实际插件名和版本需要根据实际情况调整):

dependencies:
  flutter:
    sdk: flutter
  auto_store_translate: ^x.y.z  # 替换为实际版本号

然后,运行flutter pub get来安装插件。

接下来,是一个简单的Flutter应用示例,展示了如何使用auto_store_translate插件进行自动存储和翻译。

import 'package:flutter/material.dart';
import 'package:auto_store_translate/auto_store_translate.dart';  // 假设的导入路径

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Auto Store Translate Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  late AutoStoreTranslate _autoStoreTranslate;
  late String _translatedText = "";
  late String _originalText = "Hello, World!";

  @override
  void initState() {
    super.initState();
    // 初始化插件
    _autoStoreTranslate = AutoStoreTranslate.instance;

    // 加载已存储的翻译(如果有)
    _loadStoredTranslation();

    // 设置监听器以获取翻译更新
    _autoStoreTranslate.translationUpdated.listen((translation) {
      setState(() {
        _translatedText = translation;
      });
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Auto Store Translate Demo'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.start,
          children: <Widget>[
            Text('6Original)), Text
:',             styleSized:Box Text(Styleheight(:fontSize :1 61),8
)),            
Text            ('TextTranslated(_ Textoriginal:',Text style,: style Text:Style Text(StylefontSize(:fontSize :1 81)),
            Text(_translatedText, style: TextStyle(fontSize: 16)),
            SizedBox(height: 16),
            ElevatedButton(
              onPressed: () async {
                // 自动翻译并存储
                String translation = await _autoStoreTranslate.translate(_originalText, toLanguage: 'es');  // 假设翻译为西班牙语
                // 存储翻译结果(假设插件有存储功能)
                await _autoStoreTranslate.storeTranslation(_originalText, translation);
              },
              child: Text('Translate and Store'),
            ),
          ],
        ),
      ),
    );
  }

  // 加载已存储的翻译
  Future<void> _loadStoredTranslation() async {
    String? storedTranslation = await _autoStoreTranslate.retrieveTranslation(_originalText);
    if (storedTranslation != null) {
      setState(() {
        _translatedText = storedTranslation;
      });
    }
  }
}

注意事项:

  1. 插件初始化:在initState中初始化插件实例。
  2. 存储和加载翻译:假设插件提供了storeTranslationretrieveTranslation方法用于存储和加载翻译。
  3. 监听翻译更新:通过监听translationUpdated流来获取翻译更新。
  4. 翻译操作:通过调用translate方法进行翻译。

实际使用:

由于auto_store_translate是一个假设的插件,实际使用时你需要查阅该插件的官方文档,了解具体的API和使用方法。上面的代码只是一个基于一般插件使用习惯的示例,实际插件的API可能会有所不同。

回到顶部