Translation

From Complete Cyclos documentation wiki
Revision as of 16:25, 24 November 2011 by Fabio (talk | contribs) (Internationalization files)
Jump to: navigation, search

Introduction

The controller can be configured to work with multiple instances of cyclos, and each of them with a different language, text and message customization. To support these customizations a set of internationalization files exist.

Currently the versions of the SMS module include the texts necessary to operate in English and Spanish (the possibility to generate new internationalized languages is given).

The controller can generate response messages at the moment of interpreting a received SMS or when an error in the execution of a command occurs.

Internationalization files

The internationalization files can be found in the /WEB-INF/classes/i18n folder, following a naming convention:

<type>_<language>_<country>_<variant>.properties

The type is determined by the semantics of their content, which could be errors or cyclosInstance. The elements language, properties and variant are obtained from each cyclos instance configuration (see Cyclos instance). This way a cyclos instance with the following configuration:

<cyclosInstance name="c3u" language="es" country="UY" variant="C3">

entails that all messages which will be processed in that instance can generate messages with corresponding texts in the files /WEB-INF/classes/errors_es_UY_C3.properties or /WEB-INF/classes/cyclosInstance_es_UY_C3.properties. Response messages without customization in any of the files mentioned will take their text in the immediately preceding layer of the hierarchy. For example, in the case of a message key error.INVALID_AMOUNT_PARAMETER.401, generated for a received SMS message in the cyclos instance of the example above (cyclosInstance_es_UY_C3.properties), the text resolving sequence is as follows (the order is relevant)

  • 1. /WEB-INF/classes/errors_es_UY_C3.properties
  • 2. /WEB-INF/classes/errors_es_UY.properties
  • 3. /WEB-INF/classes/errors_es.properties
  • 4. /WEB-INF/classes/errors.properties

For more details about registered keys in the cyclosInstance.properties files see Operation specific key.

Error translation keys

Error keys are defined in the file errors.properties in the directory /WebContent/WEB-INF/classes/i18n/
If during message processing an error occurs and answering to the user is possible, an error message will be issued. Error messages consist of an error code and a description. In general the code identifies the command which produced the error. For reference consider the following table:

Operation Code range
Account detail operation 100-199
Security confirmation operation 200-299
Payment request operation 300-399
Direct Payment Operation 400-499
Register new user operation 500-599
Help operation 600-699



Las claves definidas en los archivos de internacionalización de errores conservan el siguiente formato:

error.<ERROR_TYPE>.<codeNumber>

Existe una relacion entre codeNumber y la operación que lo genera. Por ejemplo el error de tipo INVALID_AMOUNT_PARAMETER generado durante el procesamiento de un comando Direct payment genera un mensaje de respuesta almacenado en la clave error.INVALID_AMOUNT_PARAMETER.401 (el codeNumber 401 identifica a la operación Direct payment)

El significado de cada uno de los ERROR_TYPE, y los textos de sustitución que se pueden utilizar en los mismos se encuentra en la tabla a continuación.


Error Descriptions

Error type Description substitutions Codes Sample
CAN_NOT_REGISTER Error indefinido en la registración de un miembro -
  • 501 - Register new user
error.CAN_NOT_REGISTER.501=Register member failed.
INVALID_AMOUNT_PARAMETER Error en el parámetro amount
  • {0} - Valor recibido para el parámetro amount
  • 301 - Payment request
  • 401 - Direct payment
error.INVALID_AMOUNT_PARAMETER.301=Invalid amount [{0}], cannot process the payment request command.
INVALID_CURRENCY_PARAMETER Error en el parámetro currency
  • {0} - Valor recibido para el parámetro
  • 103 - Account details
  • 303 - Payment request
  • 403 - Direct payment
error.INVALID_CURRENCY_PARAMETER.103=Invalid currency [{0}], cannot process account details command.
INVALID_GROUP_PARAMETER Error en el parámetro Group
  • {0} - Valor recibido para el parámetro Group
  • 502 - Regiter new user
error.INVALID_GROUP_PARAMETER.503=Invalid group [{0}], cannot process the register
INVALID_PAGE_PARAMETER Error en el parámetro page
  • {0} - Valor recibido para el parámetro page
  • 102 - Account details
error.INVALID_PAGE_PARAMETER.102=Invalid page [{0}], could not execute the account detail command.
INVALID_PARAMETERS_COUNT Error de cantidad de parámetros (menor a los requeridos, o mayor a la cantidad incluyendo todos los opcionales) -
  • 101 - Account details
  • 204 - Security confirmation
  • 311 - Payment request
  • 412 - Direct payment
  • 502 - Register new user
error.INVALID_PARAMETERS_COUNT.101=Invalid message format, account details failed.
INVALID_PAYER_PARAMETER El pagador es invalido (No es miembro registrado o inhabilitado para operar)
  • {0} - Identificador (Primary) del pagador
  • 302 - Payment request
error.INVALID_PAYER_PARAMETER.302=The member (member [{0}]) cannot make SMS payments. Payment request failed.
INVALID_RECEIVER_PARAMETER El receiver del pago es inválido (No es miembro registrado)
  • {0} - Parámetro recibido como receiver
  • 402 - Direct payment
error.INVALID_RECEIVER_PARAMETER.402=Invalid receiver (member [{0}]), payment failed.
ORIGINATE_MAX_DAILY_AMOUNT_EXCEEDED El miembro origen del mensaje ha excedido su monto diario en transacciones -
  • 406 - Direct payment
error.ORIGINATE_MAX_DAILY_AMOUNT_EXCEEDED.406=You have exceeded your max daily transaction amount. Payment failed.
ORIGINATE_MEMBER_BLOCKED_CREDENTIALS El miembro origen del mensaje posee sus credenciales (PIN) bloqueadas -
  • 107 - Account details
  • 202 - Security confirmation
  • 408 - Direct payment
error.ORIGINATE_MEMBER_BLOCKED_CREDENTIALS.107=Your password is blocked, account details failed.
ORIGINATE_MEMBER_INVALID_CREDENTIALS Las credenciales (PIN) dadas por el miembro origen del mensaje son inválidas -
  • 106 - Account details
  • 200 - Security confirmation
  • 410 - Direct payment
error.ORIGINATE_MEMBER_INVALID_CREDENTIALS.106=Invalid password, account details failed.
ORIGINATE_NOT_ENOUGH_CREDITS El miembro origen del mensaje no dispone de créditos suficientes para la transacción -
  • 409 - Direct payment
error.ORIGINATE_NOT_ENOUGH_CREDITS.409=Insufficient balance, payment failed.
ORIGINATE_UPPER_CREDIT_LIMIT_REACHED El miembro origen del mensaje ha alcanzado su limite de crédito -
  • 307 - Payment request
error.ORIGINATE_UPPER_CREDIT_LIMIT_REACHED.307=Payment request failed.
REQUEST_PAYMENT_COULD_NOT_BE_SENT No se ha podido enviar la solicitud de confirmación al pagador (este error no posee código pero pertenece al proceso de Security confirmation de un Payment request) - - error.REQUEST_PAYMENT_COULD_NOT_BE_SENT=Confirmation unsuccessful. Payment request failed.
SESSION_INVALID_ID_PARAMETER La clave única de sesión session id (OTP) recibida no es válida
  • {0} - El valor del parametro session id recibido
  • 203 - Security confirmation
error.SESSION_INVALID_ID_PARAMETER.203=The session ID [{0}] is invalid. Confirmation failed.
TRANSACTION INVALID PARAMETER Los combinación de parámetros de la transacción no son válidos (por ejemplo un pago al mismo miembro origen de Direct payment) -
  • 310 - Payment request
  • 411 - Direct payment
error.TRANSACTION_INVALID_PARAMETERS.310=Invalid command, payment request failed.
TRANSACTION_PAYER_INVALID_CHANNEL El pagador no puede operar por el canal de SMS (preferencia no seleccionada) -
  • 308 - Payment request
error.TRANSACTION_PAYER_INVALID_CHANNEL.308=The member cannot operate by SMS, payment request failed.


TRANSACTION_PAYER_MAX_DAILY_AMOUNT_EXCEEDED El miembro pagador ha superado su límite máximo de transacción diario -
  • 306 - Payment request
error.TRANSACTION_PAYER_MAX_DAILY_AMOUNT_EXCEEDED.306=Payment request failed.
TRANSACTION_RECEIVER_UPPER_CREDIT_LIMIT_REACHED El miembro receptor del pago ha alcanzado su límite máximo de crédito -
  • 407 - Direct payment
error.TRANSACTION_RECEIVER_UPPER_CREDIT_LIMIT_REACHED.407=Payment failed.


UNKNOWN_COMMAND_ERROR Se ha prodicido un error no esperado al procesar el comando -
  • 108 - Account details
  • 312 - Payment request
  • 413 - Direct payment
error.UNKNOWN_COMMAND_ERROR.108=Account details failed.



Textos de errores en tiempo de ejecución

The following URL will display a complete table of errors in run time, codes and texts: http://<cyclos_sms_server>:<cyclos_sms_port>/<sms_controller_application>/jsp/errorCodes.jsp. This table is constructed from the internationalization text file (see Internacionalization files), corresponding to a selected instance of Cyclos (see [Cyclos instances], keys language, country, and variant).

Operations translation keys

Operation keys are all translatable message that can be send via SMS. The operation keys are defined in the file cyclosInstance.properties (see Internationalization files)

General operation keys

Key Description Substitutions Sample value
command.<commandName>.regularExpression Expresion regular utilizada para matchear contra el texto de un mensaje recibido por el controlador (su valor ha de ser único dentro de un mismo ruteo definido en confix.xml->controller->driverInstances->criverInstance->cyclosRouting->route, o para todos aquellos route que no definen usingPrefix) -

(\\s*)(acinfo|accountinfo)(\\s+.*)*$

command.<commandName>.confirmation Texto enviado al miembro para solicitar confirmación de la operación <commandName> (ver Security confirmation). {0} - El texto del mensaje pasado por el miembro (comando a confirmar) Please confirm request for account details: {0}
command.<commandName>.help.withoutConf Texto de respuesta a mensaje de ayuda para el comando <commandName>. Es utilizado cuando el comando se encuentra configurado sin confirmación de seguridad (ver Security confirmation) {0} - El alias mas corto para el <commandName> For account details. Send a message with: {0} password page number (page number is optional)
command.<commandName>.help.withConf Texto de respuesta a mensaje de ayuda para el comando <commandName>. Es utilizado cuando el comando se encuentra configurado con confirmación de seguridad (ver Security confirmation) {0} - El alias mas corto para el <commandName> For account details. Send a message with: {0} page number (page number is optional)
command.memberNotRegistered Respuesta en caso de que el número de mobil de origen de un mensaje no se encuentre registrado en el cyclos instance (con el cual se procesa el mensaje) - You are not a registered member. In order to register, please send a message with the text: register loginname password fullname
error.template Formato de mensaje a responder en caso de generar un error que posee número de código
  • {0} - Código de error que se ha producido
  • {1} - Descripcion del error. Este parámetro es sustituido por el valor que se obtenga de la clave en error.prooperties
Error {0}: {1}
error.templateWithoutErrorCode Formato de mensaje a responder en caso de generar un error que no posee número de código
  • {0} - Descripción del error
Error: {0}
confirmation.template.onlyOTP Solicitud de confirmación sin utilizar credenciales (PIN). Se utiliza para Register new user
  • {0} - Texto obtenido de la clave command.<commandName>.confirmation
  • {1} - (OTP) Identificador de sesión Session id
{0}. Please confirm operation by sending: cf {1}
confirmation.template.withPIN Solicitud de confirmación.
  • {0} - Texto obtenido de la clave command.<commandName>.confirmation
  • {1} - (OTP) Identificador de sesión Session id
{0}. Please confirm operation by sending: cf {1} password


Operation specific keys

Operation Key (Security confirmation operation) Description Substitutions Sample value
Security confirmation command.confirm.confirmation Texto de mensaje solicitando confirmacion para requerimiento de pago
  • {0} - Principal para miembro receptor del pago
  • {1} - Nombre de usuario para miembro receptor del pago
  • {3} - Nombre del miembro receptor del pago
  • {4} - Monto formateado
{2} has requested you to pay {3}
Security confirmation command.confirm.response.receiver Confirmacion enviado al quien realizó un requerimiento de pago luego que el pago fue confirmado por el pagador
  • {0} - Monto formateado
  • {1} - Número telefónico del miembro pagador
  • {2} - Nombre de usuario del miembrio pagador
  • {3} - Identificador de transaccion
  • {4} - Nuevo saldo disponible formateado (luego de realizado el pago)
You have received a payment of {0} from member {3} ({2}). Transaction ID: {4}. Your new account balance is : {5}
Security confirmation command.confirm.response.payer Notificación enviada a quien confirmó un requerimiento de pago
  • {0} - Monto formateado
  • {1} - Número telefónico del miembro receptor del pago
  • {2} - Nombre de usuario del miembro receptor del pago
  • {3} - Nombre del miembro receptor del pago
  • {4} - Identificador de transacción
  • {5} - Nuevo saldo disponible formateado (luego de realizado el pago)
You have made a payment of {0} to member: {3} ({2}). Transaction ID: {4}. New account balance: {5}
Security confirmation command.confirm.cancel.payer Notificación de cancelado de requerimiento de pago, enviada al pagador
  • {0} - Monto formateado
  • {1} - Número telefónico del miembro requirente (receptor) del pago
  • {2} - Nombre de usuario del miembro requirente (Receptor) del pago
  • {3} - Nombre del miembro requierente (Receptor) del pago
  • {4} - monto del requerimiento de pago cancelado
Payment request from member {3} by {0} was canceled.
Security confirmation command.confirm.cancel.receiver Notificación de cancelado de requerimiento de pago, enviada al requierente (receptor)
  • {0} - Monto formateado
  • {1} - Número telefónico del miembro pagador
  • {2} - Nombre de usuario del miembro pagador
  • {3} - Nombre del miembro requierente pagador
  • {4} - monto del requerimiento de pago cancelado
Payment request from member {3} by {0} was canceled.
Operation Key (Account details operation) Description Substitutions Basic value
Account details command.accountDetails.response.withTx Respuesta de comando Account details
  • {0} - Balance disponible
  • {1} - Nombre (alias) mas largo de la moneda
  • {2} - Lista de transacciones (items formateados con command.accountDetails.response.tx)
  • {3} - command.accountDetails.response.next ("" si no existen transacciones mas antiguas que las mostradas)
Available balance: {0} {1}. Last transactions: {2} {3}
Account details command.accountDetails.response.tx.dateFormat Formato de la fecha para cada transacción - dd/MM/yyyy HH:mm
Account details command.accountDetails.response.tx Formato de cada item de transacción listado
  • {0} - Secuencial de la transaccion (en la página)
  • {1} - Fecha de la transaccion (formateada con command.accountDetails.response.tx.dateFormat)
  • {2} - Nombre del miembro complementario de la transaccion
  • {3} - Nombre de usuario del miembro complementario de la transaccion
  • {4} - Monto de la transacción
{1} {3} {4}
Account details command.accountDetails.response.tx.separator Caracteres separadores de cada items en el listado de transacciones - ::
Account details command.accountDetails.response.withoutTx Respuesta de comando Account details cuando no hay transacciones para listar
  • {0} - Balance disponible
  • {1} - Nombre (alias) mas largo de la moneda
  • {2} - Número de página actual
Available balance: {0} {1}. No transactions for page {2}
Account details command.accountDetails.response.next Indicador de existencia de transacciones anteriores (existen mas páginas de transacciones para listar) - +
Operation Key (Help operation) Description Substitutions Basic value
Help command.help.help Ayuda general dentro de un cyclosInstance. Es devuelta al recibir un mensaje de comando Help sin parámetros - For information about SMS operations. Send a message with the word help followed by one of the following operation commands: acinfo, pay, rq, reg, info
Operation Key (Direct payment operation) Description Substitutions Basic value
Direct payment command.performPayment.response Confirmación (respuesta) de pago realizado.
  • {0} - Nombre completo del miembro receptor del pago
  • {1} - UserName (LoginName) del miembro receptor del pago
  • {2} - Monto del pago formateado (incluye simbolo de moneda)
  • {3} - Número de transaccion (en Cyclos)
  • {4} - Balance (saldo disponible) del pagador luego de ejecutado el pago.
You have made a payment of {2} to member: {1}. Transaction ID: {3}. Your new account balance is {4}
Operation Key (Register new user operation) Description Substitutions Basic value
Register new user command.registration.response Confirmación (respuesta) de registro realizado.
  • {0} - Nombre de la instancia de cyclos en la cual se realizó el registro
  • {1} - UserName (LoginName) del miembro registrado
  • {2} - Mobile phone number del miembro registrado
You have been registered with mobile number {2} and login name {1}.