Merge pull request #586 from GetStream/docs/addingLocalization

docs(doc, localization): add localization docs
This commit is contained in:
Salvatore Giordano
2021-07-28 18:02:42 +02:00
committed by GitHub
10 changed files with 108 additions and 9 deletions
@@ -28,6 +28,7 @@ The core package allows more customisation and hence provides business logic but
reusable and customisable UI components. reusable and customisable UI components.
4. <b>Persistence (stream_chat_persistence)</b>: provides a persistence client for fetching and 4. <b>Persistence (stream_chat_persistence)</b>: provides a persistence client for fetching and
saving chat data locally. saving chat data locally.
5. <b>Localizations (stream_chat_localizations)</b>: provides a set of localizations for the SDK.
We recommend building prototypes using the full UI package since it contains UI widgets already We recommend building prototypes using the full UI package since it contains UI widgets already
integrated with Stream's API. [stream_chat_flutter](https://pub.dev/packages/stream_chat_flutter) integrated with Stream's API. [stream_chat_flutter](https://pub.dev/packages/stream_chat_flutter)
@@ -1,6 +1,6 @@
--- ---
id: adding_custom_attachments id: adding_custom_attachments
sidebar_position: 2 sidebar_position: 3
title: Adding Custom Attachments title: Adding Custom Attachments
--- ---
@@ -0,0 +1,97 @@
---
id: adding_localization
sidebar_position: 2
title: Adding Localization
---
Adding Localization To UI Widgets
### Introduction
We have a dedicated package for adding localization to our UI widgets. It's called `stream_chat_localizations` and you can find it [here](https://pub.dev/packages/stream_chat_localizations).
### Supported languages
At the moment we support the following languages:
- [English](https://pub.dev/documentation/stream_chat_localizations/latest/stream_chat_localizations/StreamChatLocalizationsEn-class.html)
- [Hindi](https://pub.dev/documentation/stream_chat_localizations/latest/stream_chat_localizations/StreamChatLocalizationsHi-class.html)
- [Italian](https://pub.dev/documentation/stream_chat_localizations/latest/stream_chat_localizations/StreamChatLocalizationsIt-class.html)
- [French](https://pub.dev/documentation/stream_chat_localizations/latest/stream_chat_localizations/StreamChatLocalizationsFr-class.html)
More languages will be added in the future. Feel free to [contribute](https://github.com/GetStream/stream-chat-flutter/blob/master/CONTRIBUTING.md) to add more languages.
### Add dependency
Add this to your package's pubspec.yaml file, use the latest version [![Pub](https://img.shields.io/pub/v/stream_chat_localizations.svg)](https://pub.dartlang.org/packages/stream_chat_localizations)
```yaml
dependencies:
stream_chat_localizations: ^latest_version
```
You should then run `flutter packages get`
### Usage
```dart
import 'package:flutter/material.dart';
import 'package:stream_chat_localizations/stream_chat_localizations.dart';
void main() {
WidgetsFlutterBinding.ensureInitialized();
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
// Add all the supported locales
supportedLocales: const [
Locale('en'),
Locale('hi'),
Locale('fr'),
Locale('it'),
],
// Add GlobalStreamChatLocalizations.delegates
localizationsDelegates: GlobalStreamChatLocalizations.delegates,
builder: (context, widget) => StreamChat(
client: client,
child: widget,
),
home: StreamChannel(
channel: channel,
child: const ChannelPage(),
),
);
}
}
```
### Adding a new language
To add a new language, create a new class extending `GlobalStreamChatLocalizations` and create a delegate for it, adding it to the `delegates` array.
Checkout [this example](https://github.com/GetStream/stream-chat-flutter/blob/master/packages/stream_chat_localizations/example/lib/add_new_lang.dart) to see how to add a new language.
### Override exisiting languages
To override an existing language, create a new class extending that particular language class and create a delegate for it, adding it to the `delegates` array.
Checkout [this example](https://github.com/GetStream/stream-chat-flutter/blob/master/packages/stream_chat_localizations/example/lib/override_lang.dart) to see how to override an existing language.
### ⚠️ Note on **iOS**
For translation to work on **iOS** you need to add supported locales to
`ios/Runner/Info.plist` as described [here](https://flutter.dev/docs/development/accessibility-and-localization/internationalization#specifying-supportedlocales).
Example:
```xml
<key>CFBundleLocalizations</key>
<array>
<string>en</string>
<string>nb</string>
<string>fr</string>
<string>it</string>
</array>
```
@@ -1,6 +1,6 @@
--- ---
id: mig_guide_2_0 id: mig_guide_2_0
sidebar_position: 3 sidebar_position: 4
title: Migrating to 2.0 (Null-safety) title: Migrating to 2.0 (Null-safety)
--- ---
@@ -29,7 +29,6 @@ void main() {
expect(newUser.id, user.id); expect(newUser.id, user.id);
expect(newUser.role, user.role); expect(newUser.role, user.role);
expect(newUser.name, user.name); expect(newUser.name, user.name);
expect(newUser.language, user.language);
newUser = user.copyWith( newUser = user.copyWith(
id: 'test', id: 'test',
@@ -42,7 +41,6 @@ void main() {
expect(newUser.id, 'test'); expect(newUser.id, 'test');
expect(newUser.role, 'test'); expect(newUser.role, 'test');
expect(newUser.name, 'test'); expect(newUser.name, 'test');
expect(newUser.language, 'en');
}); });
}); });
} }
@@ -1,3 +1,7 @@
## 1.0.1
* Minor Fixes
## 1.0.0 ## 1.0.0
* First release * First release
@@ -13,6 +13,7 @@
- [Register](https://getstream.io/chat/trial/) to get an API key for Stream Chat - [Register](https://getstream.io/chat/trial/) to get an API key for Stream Chat
- [Flutter Chat Tutorial](https://getstream.io/chat/flutter/tutorial/) - [Flutter Chat Tutorial](https://getstream.io/chat/flutter/tutorial/)
- [Chat UI Kit](https://getstream.io/chat/ui-kit/) - [Chat UI Kit](https://getstream.io/chat/ui-kit/)
- [UI Docs](https://getstream.io/chat/docs/sdk/flutter/stream_chat_flutter/introduction/)
This package provides localized strings for the stream chat widgets for many languages. This package provides localized strings for the stream chat widgets for many languages.
@@ -1,9 +1,7 @@
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:jiffy/jiffy.dart'; import 'package:stream_chat_flutter/stream_chat_flutter.dart';
import 'package:stream_chat_flutter/stream_chat_flutter.dart'
show StreamChatLocalizations, User;
part 'stream_chat_localizations_en.dart'; part 'stream_chat_localizations_en.dart';
@@ -1,5 +1,5 @@
/// Localizations for the StreamChat Flutter library. /// Localizations for the StreamChat Flutter library.
library stream_chat_localization; library stream_chat_localizations;
export 'package:flutter_localizations/flutter_localizations.dart' export 'package:flutter_localizations/flutter_localizations.dart'
show show
@@ -1,6 +1,6 @@
name: stream_chat_localizations name: stream_chat_localizations
description: The Official localizations for Stream Chat Flutter, a service for building chat applications description: The Official localizations for Stream Chat Flutter, a service for building chat applications
version: 1.0.0 version: 1.0.1
homepage: https://github.com/GetStream/stream-chat-flutter homepage: https://github.com/GetStream/stream-chat-flutter
repository: https://github.com/GetStream/stream-chat-flutter repository: https://github.com/GetStream/stream-chat-flutter
issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues