Source code for aries_cloudagent.messaging.decorators.localization_decorator

"""The localization decorator (~l10n) for message localization information."""

from typing import Sequence

from marshmallow import fields

from ..models.base import BaseModel, BaseModelSchema


[docs]class LocalizationDecorator(BaseModel): """Class representing the localization decorator."""
[docs] class Meta: """LocalizationDecorator metadata.""" schema_class = "LocalizationDecoratorSchema"
def __init__( self, *, locale: str = None, localizable: Sequence[str] = None, catalogs: Sequence[str] = None, ): """ Initialize a LocalizationDecorator instance. Args: locale: The locale of this message localizable: The fields which may be localized catalogs: A list of URLs for localization resources """ super(LocalizationDecorator, self).__init__() self.locale = locale self.localizable = list(localizable) if localizable else [] self.catalogs = list(catalogs) if catalogs else []
[docs]class LocalizationDecoratorSchema(BaseModelSchema): """Localization decorator schema used in serialization/deserialization."""
[docs] class Meta: """LocalizationDecoratorSchema metadata.""" model_class = LocalizationDecorator
locale = fields.Str(required=True, description="Locale specifier", example="en-CA",) localizable = fields.List( fields.Str(description="Localizable field", example="note",), required=False, description="List of localizable fields", ) catalogs = fields.List( fields.Str( description="", example="https://192.168.56.111/my-project/catalog.json", ), required=False, description="List of message catalog URIs", )