多语言翻译应用
一个将任何文本翻译成多种语言的应用。
功能
- 本地化
- 多重翻译
- 单次翻译
- 深度链接
- 翻译历史
- 翻译分享与复制
- 翻译历史提醒通知
- 自动语言检测
- 可听的翻译
领域驱动设计
领域驱动设计(Domain-driven design)是Eric Evans提出的一个概念,用于组织软件项目和维护源代码的领域层。想了解更多,请参阅此处。DDD是健壮、扎实且适用于各种软件开发领域的。得益于DDD,大型项目得以通过其原则更易于维护。
Flutter 与 DDD
在 Flutter 开发中,DDD 可以与不同的状态管理库一起使用,例如 BLOC、Provider、Redux 等。本项目使用 BLOC。项目目录主要分为四个子目录:Application、Domain、Presentation、Infrastructure。每个子目录在 DDD 中都扮演着重要角色,它们就像建筑物的各个楼层。有些楼层相互接触,有些则不。想了解更多,请参阅此处。
Flutter 的 CI/CD
持续集成和持续交付(Continuous Integration and Continuous Delivery)是软件开发中最重要的话题之一。对于移动开发,它在很大程度上依赖于 SDK 和平台(iOS 和 Android)。本项目使用 Codemagic CI/CD 配置,无需对源代码做任何修改。想了解更多,请参阅此处。
深度链接
Multi Translator App 支持 iOS 和 Android 的深度链接。当从应用外部导航到应用时,深度链接非常有用。此应用通过深度链接接收两个不同的参数进行翻译。此外,Flutter 还支持通用链接。有关深度链接的更多信息,请参阅此处。
参数
- text
- 语言 (默认为:en)
示例 - 1
参数
text=hello
iOS 模拟器命令
xcrun simctl openurl booted "ibksteltranslate:translation?text=hello"
Android 模拟器命令
adb shell am start "ibksteltranslate://translation?text=hello"
示例 - 2
参数
text=merhaba
lan=tr
iOS 模拟器命令
xcrun simctl openurl booted "ibksteltranslate:translation?text=merhaba&lan=tr"
Android 模拟器命令
adb shell am start "ibksteltranslate://translation?text=merhaba&lan=tr"
设置
本项目运行需要生成的文件。在运行应用之前,请先运行。
git clone https://github.com/stelselim/translation_app.git
cd translation_app
flutter pub get
flutter pub run build_runner build --delete-conflicting-outputs
运行
运行项目。
flutter pub get
flutter run
测试
运行单元测试。
flutter pub get
flutter test
作者
? Selim Ustel
- GitHub: @stelselim
- LinkedIn: @selimustel
