rendered paste bodyIndex: python/ldtp.py
===================================================================
RCS file: /cvs/ldtp/ldtp/python/ldtp.py,v
retrieving revision 1.40
diff -u -p -r1.40 ldtp.py
--- python/ldtp.py 28 Sep 2006 11:26:45 -0000 1.40
+++ python/ldtp.py 10 Oct 2006 20:43:23 -0000
@@ -2954,6 +2954,12 @@ def bindtext (packageName, localeDir, mo
OUTPUT: TODO"""
try:
_requestId = str (random.randint (0, sys.maxint))
+ _message = generatexml ('setlocale', _requestId, os.getenv ('LANG'))
+ sendpacket (_message)
+ _responseStatus, _responseData = getresponse (_requestId)
+ if _responseStatus[0] != 0:
+ raise LdtpExecutionError ('bindtext:setlocale failed: ' + _responseStatus[1])
+ _requestId = str (random.randint (0, sys.maxint))
_message = generatexml ('bindtext', _requestId, packageName, localeDir, mode)
sendpacket (_message)
_responseStatus, _responseData = getresponse (_requestId)
Index: src/client-handler.c
===================================================================
RCS file: /cvs/ldtp/ldtp/src/client-handler.c,v
retrieving revision 1.31
diff -u -p -r1.31 client-handler.c
--- src/client-handler.c 27 Sep 2006 18:02:36 -0000 1.31
+++ src/client-handler.c 10 Oct 2006 20:43:24 -0000
@@ -589,9 +589,7 @@ createpo (gchar *package_name, gchar *lo
g_free (mopathfilename);
}
}
-#endif
-#ifdef ENABLE_LOCALIZATION
static void
deletepo (char *filename, FILE *log_fp, LDTPError **err)
{
@@ -624,18 +622,24 @@ bind_text (LDTPClientContext *cctxt, gch
* FIXME
* Currently only mo files are handled
*/
- filename = g_strdup_printf ("%s/%s-%d.po", g_get_tmp_dir (),
- package_name, g_random_int_range (G_MININT, G_MAXINT));
- createpo (package_name, locale_dir, filename, mode, cctxt->log_fp, err);
- if (*err && (*err)->err_code != LDTP_ERROR_SUCCESS) {
- *err = ldtp_error_get_error (LDTP_ERROR_UNABLE_TO_CREATE_PO);
- log_msg (LDTP_LOG_CAUSE, (*err)->message, cctxt->log_fp);
- return;
+ if (g_ascii_strcasecmp (mode, "mo") == 0) {
+ filename = g_strdup_printf ("%s/%s-%d.po", g_get_tmp_dir (),
+ package_name, g_random_int_range (G_MININT, G_MAXINT));
+ createpo (package_name, locale_dir, filename, mode, cctxt->log_fp, err);
+ if (*err && (*err)->err_code != LDTP_ERROR_SUCCESS) {
+ *err = ldtp_error_get_error (LDTP_ERROR_UNABLE_TO_CREATE_PO);
+ log_msg (LDTP_LOG_CAUSE, (*err)->message, cctxt->log_fp);
+ return;
+ }
+ }
+ else {
+ filename = g_strdup_printf ("%s/%s", locale_dir, package_name);
}
temp_flag = init_catalog (filename, cctxt->log_fp);
if (!cctxt->locale_set && temp_flag)
cctxt->locale_set = temp_flag;
- deletepo (filename, cctxt->log_fp, err);
+ if (g_ascii_strcasecmp (mode, "mo") == 0)
+ deletepo (filename, cctxt->log_fp, err);
g_free (filename);
#else
g_print ("Localization option not enabled in LDTP\n");
@@ -712,6 +716,13 @@ handle_request (LDTPClientContext* cctxt
return;
}
switch (command) {
+ case LDTP_CMD_SETLOCALE:
+ if (cctxt->locale_lang)
+ g_free (cctxt->locale_lang);
+ cctxt->locale_lang = g_strdup (cctxt->req->context);
+ cctxt->locale_set = TRUE;
+ setlocale (LC_ALL, "");
+ return;
case LDTP_CMD_LAUNCHAPP: {
GError *error = NULL;
if (cctxt->req->component && g_ascii_strcasecmp(cctxt->req->component, "1") == 0) {
@@ -1430,7 +1441,6 @@ handle_client (void *ptr)
char *resp_pckt = NULL;
LDTPError* err = NULL;
- gchar *locale_lang = NULL;
LDTPClientContext *cctxt = NULL;
Packet *pckt = NULL;
@@ -1443,18 +1453,7 @@ handle_client (void *ptr)
cctxt->resp = calloc (1, sizeof (LDTPResponse));
cctxt->sock_fd = *sock_fd;
cctxt->log_fp = NULL;
-
- /*
- Check whether locale lang set or not
- */
- locale_lang = getenv ("LANG");
- if (locale_lang &&
- g_utf8_collate (locale_lang, "en_US.UTF-8") != 0) {
- g_print ("Locale languages: %s\n", locale_lang);
- cctxt->locale_set = TRUE;
- setlocale (LC_ALL, "");
- } else
- cctxt->locale_set = FALSE;
+ cctxt->locale_set = FALSE;
while (1) {
packet_len = 0;
Index: src/ldtp-command.c
===================================================================
RCS file: /cvs/ldtp/ldtp/src/ldtp-command.c,v
retrieving revision 1.16
diff -u -p -r1.16 ldtp-command.c
--- src/ldtp-command.c 28 Sep 2006 11:26:03 -0000 1.16
+++ src/ldtp-command.c 10 Oct 2006 20:43:24 -0000
@@ -200,6 +200,7 @@ ldtp_command_init_command_table ()
ldtp_command_new ( LDTP_CMD_HASSTATE, "hasstate"),
ldtp_command_new ( LDTP_CMD_LAUNCHAPP, "launchapp"),
ldtp_command_new ( LDTP_CMD_SINGLECLICKROW, "singleclickrow"),
+ ldtp_command_new ( LDTP_CMD_SETLOCALE, "setlocale"),
NULL
};
Index: src/ldtp-command.h
===================================================================
RCS file: /cvs/ldtp/ldtp/src/ldtp-command.h,v
retrieving revision 1.16
diff -u -p -r1.16 ldtp-command.h
--- src/ldtp-command.h 28 Sep 2006 11:26:03 -0000 1.16
+++ src/ldtp-command.h 10 Oct 2006 20:43:24 -0000
@@ -174,7 +174,8 @@ enum _LDTPCommandId {
LDTP_CMD_STOPRECORD,
LDTP_CMD_HASSTATE,
LDTP_CMD_LAUNCHAPP,
- LDTP_CMD_SINGLECLICKROW
+ LDTP_CMD_SINGLECLICKROW,
+ LDTP_CMD_SETLOCALE
};
struct _LDTPCommand {