Starting i18n language file support

This commit is contained in:
João Moura
2024-04-01 04:53:10 -03:00
parent 5b59e450f7
commit ddb84cc16d
2 changed files with 41 additions and 1 deletions

View File

@@ -7,7 +7,7 @@ from pydantic import BaseModel, Field, PrivateAttr, ValidationError, model_valid
class I18N(BaseModel):
_translations: Dict[str, Dict[str, str]] = PrivateAttr()
language_file: str = Field(
language_file: Optional[str] = Field(
default=None,
description="Path to the translation file to load",
)

View File

@@ -0,0 +1,40 @@
import pytest
from crewai.utilities.i18n import I18N
def test_load_translation():
i18n = I18N(language="en")
i18n.load_translation()
assert i18n._translations is not None
def test_slice():
i18n = I18N(language="en")
i18n.load_translation()
assert isinstance(i18n.slice("role_playing"), str)
def test_errors():
i18n = I18N(language="en")
i18n.load_translation()
assert isinstance(i18n.errors("unexpected_format"), str)
def test_tools():
i18n = I18N(language="en")
i18n.load_translation()
assert isinstance(i18n.tools("ask_question"), str)
def test_retrieve():
i18n = I18N(language="en")
i18n.load_translation()
assert isinstance(i18n.retrieve("slices", "role_playing"), str)
def test_retrieve_not_found():
i18n = I18N(language="en")
i18n.load_translation()
with pytest.raises(Exception):
i18n.retrieve("nonexistent_kind", "nonexistent_key")