code: public void initialize(ContextRefreshedEvent event) {
      ApplicationContext ctx = event.getApplicationContext();
      Stream<String> languageCodes = LanguageService.getLanguageCodes();
  
      EntityTypeMetadata entityTypeMeta = ctx.getBean(EntityTypeMetadata.class);
      AttributeMetadata attrMetaMeta = ctx.getBean(AttributeMetadata.class);
      L10nStringMetadata l10nStringMeta = ctx.getBean(L10nStringMetadata.class);
  
      languageCodes.forEach(
          languageCode -> {
            entityTypeMeta
                .addAttribute(getI18nAttributeName(EntityTypeMetadata.LABEL, languageCode))
                .setNillable(true)
                .setLabel("Label (" + languageCode + ')');
            entityTypeMeta
                .addAttribute(getI18nAttributeName(EntityTypeMetadata.DESCRIPTION, languageCode))
                .setNillable(true)
                .setLabel("Description (" + languageCode + ')')
                .setDataType(TEXT);
            attrMetaMeta
                .addAttribute(getI18nAttributeName(AttributeMetadata.LABEL, languageCode))
                .setNillable(true)
                .setLabel("Label (" + languageCode + ')');
            attrMetaMeta
                .addAttribute(getI18nAttributeName(AttributeMetadata.DESCRIPTION, languageCode))
                .setNillable(true)
                .setLabel("Description (" + languageCode + ')')
                .setDataType(TEXT);
            l10nStringMeta.addAttribute(languageCode).setNillable(true).setDataType(TEXT);
          });
    }
docs: Initialize internationalization attributes
  
  @param event application event