This file is indexed.

/usr/share/locale/ko/LC_SCRIPTS/ki18n5/ki18n5.js is in libkf5i18n-data 5.18.0-0ubuntu1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
// kdelibs4.js of Korean KDE translation
// This script is distributed under GNU General Public License, version 2 or later.
// Copyright (C) Chusslove Ilich, 2007. (for strip accelerator part)
// Copyright (C) Park Shinjo, 2007. (rest of all)
//

stripAccRx = /\((&|&)?[a-zA-Z0-9]\)/;
lstJosa = [["가","이","이(가)",false],
           ["를","을","을(를)",false],
           ["는","은","은(는)",false],
           ["와","과","과(와)",false],
           ["","이","(이)",false],
           ["","으","(으)", true]];

// *** Detect the provided word is Hangeul.
function isHangeul(code)
{
    if (code >= 0xac00 && code <= 0xd7af) return true;
    else return false;
}

// *** Strip the accelerator marker, composed of an ASCII alphanumeric
// within parenthesis (with or without an ampersand in front).
function stripAccelerator(phrase)
{
    return phrase.replace(stripAccRx, "");
}

// *** Detect the phrase has 종성(Final jamo). It will be used in
// detection of 을/를, 이/가.
function getFinalJamoType(phrase, rieul)
{
    var code = phrase.charCodeAt(phrase.length - 1);
    if (!isHangeul(code)) return 2;
    code -= 0xac00;
    code %= 28;
    if (rieul && code == 8) return 0;
    switch (code) {
    case 0:
        return 0;
    default:
        return 1;
    }
}

// Functions in below attach appropriate 조사 (postposition)
// according to the word. It only affects Hangeul, if non-Hangeul
// word is provided, then fallback string is used.
function attachJosa(type, phrase)
{
    var i = getFinalJamoType(phrase, lstJosa[type][3]);
    return lstJosa[type][i];
}

function attachIGa(phrase)
{
    return attachJosa(0, phrase);
}

function attachEulReul(phrase)
{
    return attachJosa(1, phrase);
}

function attachEunNeun(phrase)
{
    return attachJosa(2, phrase);
}

function attachWaGwa(phrase)
{
    return attachJosa(3, phrase);
}

function attachI(phrase)
{
    return attachJosa(4, phrase);
}

function attachEu(phrase)
{
    return attachJosa(5, phrase);
}


// ==> Exports to PO calls
Ts.setcall("~stripAccel", stripAccelerator);
Ts.setcall("을를", attachEulReul);
Ts.setcall("이가", attachIGa);
Ts.setcall("은는", attachEunNeun);
Ts.setcall("와과", attachWaGwa);
Ts.setcall("이", attachI);
Ts.setcall("으", attachEu);