Initial flame_lua_runtime package

This commit is contained in:
gem
2026-06-07 22:53:58 +08:00
commit 733b2fb798
262 changed files with 28439 additions and 0 deletions

View File

@@ -0,0 +1,63 @@
import 'dart:ui' show Locale;
import 'package:flame_lua_runtime/runtime/game/runtime_locale.dart';
import 'package:flutter_test/flutter_test.dart';
void main() {
group('RuntimeLocaleResolver', () {
test('normalizes locale tags', () {
expect(RuntimeLocaleResolver.normalizeTag('zh_hans_cn'), 'zh-Hans-CN');
expect(RuntimeLocaleResolver.normalizeTag('EN-us'), 'en-US');
expect(RuntimeLocaleResolver.tagOf(const Locale('zh', 'CN')), 'zh-CN');
});
test('resolves exact, language and fallback locales', () {
expect(
RuntimeLocaleResolver.resolve(
requested: const Locale.fromSubtags(
languageCode: 'zh',
scriptCode: 'Hans',
),
defaultLocale: 'en',
supportedLocales: const ['zh-Hans', 'en'],
).resolved,
'zh-Hans',
);
expect(
RuntimeLocaleResolver.resolve(
requested: const Locale('en', 'US'),
defaultLocale: 'zh-Hans',
supportedLocales: const ['zh-Hans', 'en'],
).resolved,
'en',
);
expect(
RuntimeLocaleResolver.resolve(
requested: const Locale('fr', 'FR'),
defaultLocale: 'zh-Hans',
supportedLocales: const ['zh-Hans', 'en'],
).resolved,
'zh-Hans',
);
});
test('exports locale context for Lua', () {
final info = RuntimeLocaleResolver.resolve(
requested: const Locale('en', 'US'),
defaultLocale: 'zh-Hans',
supportedLocales: const ['zh-Hans', 'en'],
);
expect(info.toMap(), {
'requested': 'en-US',
'resolved': 'en',
'default': 'zh-Hans',
'supported': ['zh-Hans', 'en'],
'languageCode': 'en',
'countryCode': 'US',
});
});
});
}