--- Name: basei18n Before: '#defaulti18n' --- SilverStripe\Core\Manifest\ModuleManifest: module_priority: - silverstripe\admin - silverstripe\framework --- Name: defaulti18n --- SilverStripe\Core\Manifest\ModuleManifest: module_priority: - other_modules --- name: i18nMessages --- SilverStripe\Core\Injector\Injector: # Custom yml loader for localisation messages SilverStripe\i18n\Messages\Reader: class: SilverStripe\i18n\Messages\YamlReader SilverStripe\i18n\Messages\Writer: class: SilverStripe\i18n\Messages\YamlWriter Symfony\Component\Translation\Loader\LoaderInterface: class: SilverStripe\i18n\Messages\Symfony\ModuleYamlLoader properties: Reader: '%$SilverStripe\i18n\Messages\Reader' # Ensure our cache respects ModuleYamlLoader's self-invalidation # @see DirectoryListResource::isFresh() # Note: This could be replaced with a more aggressive cache if necessary on a live environment Symfony\Component\Config\ConfigCacheFactoryInterface: class: Symfony\Component\Config\ResourceCheckerConfigCacheFactory constructor: 0: [ '%$Symfony\Component\Config\Resource\SelfCheckingResourceChecker' ] # Create default translator with standard cache path and our custom loader Symfony\Component\Translation\TranslatorInterface: class: Symfony\Component\Translation\Translator constructor: 0: 'en' 1: null 2: '`TEMP_PATH`' properties: ConfigCacheFactory: '%$Symfony\Component\Config\ConfigCacheFactoryInterface' calls: FallbackLocales: [ setFallbackLocales, [['en']]] Loader: [ addLoader, ['ss', '%$Symfony\Component\Translation\Loader\LoaderInterface' ]] # Set this translator as our message provider for silverstripe's i18n SilverStripe\i18n\Messages\MessageProvider: class: SilverStripe\i18n\Messages\Symfony\SymfonyMessageProvider properties: Translator: '%$Symfony\Component\Translation\TranslatorInterface' --- Name: textcollector --- SilverStripe\Core\Injector\Injector: SilverStripe\i18n\TextCollection\i18nTextCollector: properties: Reader: '%$SilverStripe\i18n\Messages\Reader' Writer: '%$SilverStripe\i18n\Messages\Writer' --- Name: i18ndata --- SilverStripe\Core\Injector\Injector: SilverStripe\i18n\Data\Locales: class: SilverStripe\i18n\Data\Intl\IntlLocales