# python: Patrones de traducción de cadenas URL: https://generaltranslation.com/es/docs/python/guides/strings.mdx --- title: Patrones de traducción de cadenas description: Traducción de cadenas en Python con t(), msg(), variables y derive() --- Hay dos formas de traducir cadenas en las bibliotecas de Python de GT: 1. **En línea con `t()`** — traduce las cadenas directamente en tus manejadores de ruta 2. **Registradas previamente con `msg()`** — define las cadenas en el ámbito del módulo y resuélvelas en tiempo de ejecución ## Traducción en línea con `t()` Usa [`t()`](/docs/python/api/t) para traducir una cadena según la configuración regional de la solicitud actual: ```python from gt_flask import t @app.route('/api/greeting') def greeting(): return { 'message': t('Hello, world!') } ``` ```python from gt_fastapi import t @app.get('/api/greeting') def greeting(): return { 'message': t('Hello, world!') } ``` ## Cadenas registradas previamente con `msg()` Usa [`msg()`](/docs/python/api/t) para registrar cadenas en el ámbito del módulo y luego úsalas en los controladores: ```python title="messages.py" from gt_flask import msg # or gt_fastapi GREETING = msg('Hello, world!') WELCOME = msg('Welcome, {name}!') NOT_FOUND = msg('Resource not found.') ``` ```python title="routes.py" from messages import GREETING, WELCOME, NOT_FOUND @app.route('/api/greeting') def greeting(): return { 'greeting': GREETING(), 'welcome': WELCOME(name='Alice'), } @app.errorhandler(404) def not_found(e): return { 'error': NOT_FOUND() }, 404 ``` Tanto `t()` como `msg()` generan traducciones idénticas. Usa `msg()` cuando la misma cadena aparezca en varios lugares o cuando quieras tener todas las cadenas en un mismo archivo. ## Interpolación de variables ### Con `t()` Usa marcadores de posición `{name}` y pasa los valores como argumentos con palabra clave: ```python t('Welcome, {name}!', name=user.display_name) t('You have {count} new messages.', count=unread_count) ``` ### Con `declare_var()` y `decode_vars()` Para tener un mayor control sobre el manejo de variables, usa [`declare_var()`](/docs/python/api/declare-var) y [`decode_vars()`](/docs/python/api/decode-vars): ```python from gt_flask import declare_var, decode_vars template = t('Hello, {name}! You have {count} items.') result = decode_vars(template, { 'name': declare_var('name', 'Guest'), 'count': declare_var('count', 0), }) ``` ## Uso de `derive()` para la concordancia gramatical [`derive()`](/docs/python/api/derive) genera variantes gramaticalmente correctas, lo que resulta útil en idiomas en los que las palabras cambian de forma según el contexto (género, número, caso): ```python from gt_flask import t, derive count = 3 item_word = derive('item', {'one': 'item', 'other': 'items'}) message = t('You have {count} {item}.', count=count, item=item_word) ``` Consulta el [tutorial de derivación](/docs/python/tutorials/derive) para ver más patrones. ## Uso de `$context` para desambiguar Las cadenas ambiguas pueden dar lugar a traducciones inexactas. Añade `$context` para guiar al traductor: ```python t('Apple', context='the technology company') t('Spring', context='the season, not a coil') t('Bank', context='a financial institution') # También funciona con msg() APPLE = msg('Apple', context='the fruit') ``` ## Siguientes pasos * [`t()` referencia de la API](/docs/python/api/t) * [`declare_var()` referencia de la API](/docs/python/api/declare-var) * [`derive()` referencia de la API](/docs/python/api/derive) * [Detección de configuración regional y middleware](/docs/python/guides/middleware) — cómo funciona el contexto de la configuración regional