Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4b269e4d authored by Bjorn Bringert's avatar Bjorn Bringert
Browse files

Move pseudolocalize to aapt

Only aapt used pseudolocalization, so the code has
been moved to frameworks/base/tools/aapt

Change-Id: I1ddb3215c927fb19ca3765768edb8d14b38da94a
parent f012cfe7
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -2,8 +2,7 @@ LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)

LOCAL_SRC_FILES:= \
	CopyFile.c \
	pseudolocalize.cpp
	CopyFile.c

ifeq ($(HOST_OS),cygwin)
LOCAL_CFLAGS += -DWIN32_EXE
+0 −9
Original line number Diff line number Diff line
#ifndef HOST_PSEUDOLOCALIZE_H
#define HOST_PSEUDOLOCALIZE_H

#include <string>

std::string pseudolocalize_string(const std::string& source);

#endif // HOST_PSEUDOLOCALIZE_H

libs/host/pseudolocalize.cpp

deleted100644 → 0
+0 −119
Original line number Diff line number Diff line
#include <host/pseudolocalize.h>

using namespace std;

static const char*
pseudolocalize_char(char c)
{
    switch (c) {
        case 'a':   return "\xc4\x83";
        case 'b':   return "\xcf\x84";
        case 'c':   return "\xc4\x8b";
        case 'd':   return "\xc4\x8f";
        case 'e':   return "\xc4\x99";
        case 'f':   return "\xc6\x92";
        case 'g':   return "\xc4\x9d";
        case 'h':   return "\xd1\x9b";
        case 'i':   return "\xcf\x8a";
        case 'j':   return "\xc4\xb5";
        case 'k':   return "\xc4\xb8";
        case 'l':   return "\xc4\xba";
        case 'm':   return "\xe1\xb8\xbf";
        case 'n':   return "\xd0\xb8";
        case 'o':   return "\xcf\x8c";
        case 'p':   return "\xcf\x81";
        case 'q':   return "\x51";
        case 'r':   return "\xd2\x91";
        case 's':   return "\xc5\xa1";
        case 't':   return "\xd1\x82";
        case 'u':   return "\xce\xb0";
        case 'v':   return "\x56";
        case 'w':   return "\xe1\xba\x85";
        case 'x':   return "\xd1\x85";
        case 'y':   return "\xe1\xbb\xb3";
        case 'z':   return "\xc5\xba";
        case 'A':   return "\xc3\x85";
        case 'B':   return "\xce\xb2";
        case 'C':   return "\xc4\x88";
        case 'D':   return "\xc4\x90";
        case 'E':   return "\xd0\x84";
        case 'F':   return "\xce\x93";
        case 'G':   return "\xc4\x9e";
        case 'H':   return "\xc4\xa6";
        case 'I':   return "\xd0\x87";
        case 'J':   return "\xc4\xb5";
        case 'K':   return "\xc4\xb6";
        case 'L':   return "\xc5\x81";
        case 'M':   return "\xe1\xb8\xbe";
        case 'N':   return "\xc5\x83";
        case 'O':   return "\xce\x98";
        case 'P':   return "\xcf\x81";
        case 'Q':   return "\x71";
        case 'R':   return "\xd0\xaf";
        case 'S':   return "\xc8\x98";
        case 'T':   return "\xc5\xa6";
        case 'U':   return "\xc5\xa8";
        case 'V':   return "\xce\xbd";
        case 'W':   return "\xe1\xba\x84";
        case 'X':   return "\xc3\x97";
        case 'Y':   return "\xc2\xa5";
        case 'Z':   return "\xc5\xbd";
        default:    return NULL;
    }
}

/**
 * Converts characters so they look like they've been localized.
 *
 * Note: This leaves escape sequences untouched so they can later be
 * processed by ResTable::collectString in the normal way.
 */
string
pseudolocalize_string(const string& source)
{
    const char* s = source.c_str();
    string result;
    const size_t I = source.length();
    for (size_t i=0; i<I; i++) {
        char c = s[i];
        if (c == '\\') {
            if (i<I-1) {
                result += '\\';
                i++;
                c = s[i];
                switch (c) {
                    case 'u':
                        // this one takes up 5 chars
                        result += string(s+i, 5);
                        i += 4;
                        break;
                    case 't':
                    case 'n':
                    case '#':
                    case '@':
                    case '?':
                    case '"':
                    case '\'':
                    case '\\':
                    default:
                        result += c;
                        break;
                }
            } else {
                result += c;
            }
        } else {
            const char* p = pseudolocalize_char(c);
            if (p != NULL) {
                result += p;
            } else {
                result += c;
            }
        }
    }

    //printf("result=\'%s\'\n", result.c_str());
    return result;
}