114 lines
2.7 KiB
Python
114 lines
2.7 KiB
Python
"""
|
|
Internationalization (i18n) module for MemoryBear Enterprise.
|
|
|
|
This module provides complete i18n support for the backend API including:
|
|
- Translation loading from multiple directories (community + enterprise)
|
|
- Translation service with caching and fallback
|
|
- Language detection middleware
|
|
- Dependency injection for FastAPI
|
|
- Convenience functions for easy usage
|
|
|
|
Usage:
|
|
from app.i18n import t, t_enum
|
|
|
|
# Simple translation
|
|
message = t("common.success.created")
|
|
|
|
# Parameterized translation
|
|
error = t("common.validation.required", field="名称")
|
|
|
|
# Enum translation
|
|
role_display = t_enum("workspace_role", "manager")
|
|
"""
|
|
|
|
from app.i18n.dependencies import (
|
|
get_current_language,
|
|
get_enum_translator,
|
|
get_translator,
|
|
)
|
|
from app.i18n.exceptions import (
|
|
BadRequestError,
|
|
ConflictError,
|
|
FileNotFoundError,
|
|
FileTooLargeError,
|
|
ForbiddenError,
|
|
I18nException,
|
|
InternalServerError,
|
|
InvalidCredentialsError,
|
|
InvalidFileTypeError,
|
|
NotFoundError,
|
|
QuotaExceededError,
|
|
RateLimitExceededError,
|
|
ServiceUnavailableError,
|
|
TenantNotFoundError,
|
|
TenantSuspendedError,
|
|
TokenExpiredError,
|
|
TokenInvalidError,
|
|
UnauthorizedError,
|
|
UserAlreadyExistsError,
|
|
UserNotFoundError,
|
|
ValidationError,
|
|
WorkspaceNotFoundError,
|
|
WorkspacePermissionDeniedError,
|
|
get_current_locale,
|
|
set_current_locale,
|
|
)
|
|
from app.i18n.loader import TranslationLoader
|
|
from app.i18n.logger import (
|
|
TranslationLogger,
|
|
get_translation_logger,
|
|
log_missing_translation,
|
|
log_translation_error,
|
|
)
|
|
from app.i18n.middleware import LanguageMiddleware
|
|
from app.i18n.service import (
|
|
TranslationService,
|
|
get_translation_service,
|
|
t,
|
|
t_enum,
|
|
)
|
|
|
|
__all__ = [
|
|
"TranslationLoader",
|
|
"LanguageMiddleware",
|
|
"TranslationService",
|
|
"get_translation_service",
|
|
"t",
|
|
"t_enum",
|
|
"get_current_language",
|
|
"get_translator",
|
|
"get_enum_translator",
|
|
# Context management
|
|
"get_current_locale",
|
|
"set_current_locale",
|
|
# Logging
|
|
"TranslationLogger",
|
|
"get_translation_logger",
|
|
"log_missing_translation",
|
|
"log_translation_error",
|
|
# Exception classes
|
|
"I18nException",
|
|
"BadRequestError",
|
|
"UnauthorizedError",
|
|
"ForbiddenError",
|
|
"NotFoundError",
|
|
"ConflictError",
|
|
"ValidationError",
|
|
"InternalServerError",
|
|
"ServiceUnavailableError",
|
|
"WorkspaceNotFoundError",
|
|
"WorkspacePermissionDeniedError",
|
|
"UserNotFoundError",
|
|
"UserAlreadyExistsError",
|
|
"TenantNotFoundError",
|
|
"TenantSuspendedError",
|
|
"InvalidCredentialsError",
|
|
"TokenExpiredError",
|
|
"TokenInvalidError",
|
|
"FileNotFoundError",
|
|
"FileTooLargeError",
|
|
"InvalidFileTypeError",
|
|
"RateLimitExceededError",
|
|
"QuotaExceededError",
|
|
]
|