jma-lang-ko 1.0.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +85 -58
  3. package/package.json +12 -16
  4. package/src/core/createTranslator.js +15 -0
  5. package/src/data/earthquake/11.json +4 -0
  6. package/src/data/earthquake/12.json +8 -0
  7. package/src/data/earthquake/21.json +16 -0
  8. package/src/data/earthquake/22.json +58 -0
  9. package/src/data/earthquake/23.json +49 -0
  10. package/{data/earthquakearealist.json → src/data/earthquake/24_1.json} +189 -189
  11. package/src/data/earthquake/24_2.json +1893 -0
  12. package/src/data/earthquake/24_3.json +4372 -0
  13. package/{data/epicenterlist.json → src/data/earthquake/41.json} +344 -372
  14. package/src/data/earthquake/42.json +168 -0
  15. package/src/data/earthquake/43.json +759 -0
  16. package/src/data/earthquake/44.json +43 -0
  17. package/src/data/earthquake/51.json +5 -0
  18. package/src/data/earthquake/52.json +11 -0
  19. package/src/data/earthquake/62.json +57 -0
  20. package/src/data/tsunami/14.json +12 -0
  21. package/{data/tsunamiarealist.json → src/data/tsunami/31.json} +99 -99
  22. package/src/data/tsunami/34.json +81 -0
  23. package/{data/tsunamistation.json → src/data/tsunami/35.json} +609 -554
  24. package/src/data/volcano/81.json +52 -0
  25. package/src/data/volcano/82.json +122 -0
  26. package/src/earthquake/index.js +169 -0
  27. package/src/index.js +3 -0
  28. package/src/tsunami/index.js +49 -0
  29. package/src/volcano/index.js +26 -0
  30. package/data/citylist.json +0 -1903
  31. package/data/commentlist.json +0 -57
  32. package/data/office.json +0 -20
  33. package/data/preflist.json +0 -49
  34. package/data/tsunamiHeadline.json +0 -20
  35. package/index.js +0 -86
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 hoya
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,58 +1,85 @@
1
- # JMA-LANG-KO
2
-
3
- **JMA-LANG-KO**는 일본 기상청(JMA, Japan Meteorological Agency)의 지진·해일 정보에서 사용되는 일본어 지역명, 진앙명 등을 한국어로 변환하는 라이브러리입니다.
4
- Node.js 환경에서 간단히 불러와 사용할 수 있습니다.
5
-
6
- ---
7
-
8
- ## 📦설치
9
-
10
- ```bash
11
- npm install jma-lang-ko
12
- ```
13
-
14
- ## 🔎사용 예시
15
-
16
- ```js
17
- import {JPEpicenterToKR} from 'jma-lang-ko'
18
-
19
- console.log(JPEpicenterToKR("350"))
20
- // 출력 예시: 도쿄도 23구
21
- ```
22
-
23
- ## 🚩제공 함수
24
- | 함수명 | 기능 | 입력값 | 출력값 |
25
- | --- | --- | :-: | --- |
26
- | JPEpicenterToKR | 지진의 진앙지명(코드)을 한국어로 변환합니다 | "350" | "도쿄도 23구" |
27
- | JPPrefToKR | 도도부현 이름(코드)을 한국어로 변환합니다. | "13" | "도쿄도" |
28
- | JPQuakeAreaToKR | 지진정보 세부구역 이름(코드)을 한국어로 변환합니다. | "221" | "미야기 중부" |
29
- | JPCityToKR | 시정촌명(코드)을 한국어로 변환합니다. | "1311300" | "도쿄 시부야 " |
30
- | JPCommentToKR | 지진/해일 전문에서의 고정부가문 코드를 한국어로 변환합니다. | "0211" | "해일경보 등(대해일경보·해···" |
31
- | JPTsunamiAreaToKR | 해일예보구 이름(코드)을 한국어로 변환합니다. | "312" | "도쿄 만 내만" |
32
- | JPTsunamiStationToKR | 해일관측점 이름(코드)을 한국어로 변환합니다. | "21060" | "이와테 해역 70km A" |
33
-
34
- ## ⚠️ 주의사항
35
- - **입력값은 반드시 문자열(string)** 형태여야 합니다.
36
- 예: `JPEpicenterToKR("350")` / `JPEpicenterToKR(350)`
37
- (숫자로 입력 일치 비교에 실패하여 변환되지 않습니다.)
38
-
39
- - **Node.js 20 이상** 환경에서 사용하는 것을 권장합니다.
40
- (JSON `import ... with { type: "json" }` 문법은 Node.js 20+ 이상에서 정식 지원됩니다.)
41
-
42
- - ES Module(`"type": "module"`) 환경을 사용해야 합니다.
43
- CommonJS(`require`)에서는 바로 사용할 수 없습니다.
44
- CommonJS 환경에서는 [동적 import](https://nodejs.org/api/esm.html#esm_import_expressions)를 이용해 다음과 같이 사용할 수 있습니다:
45
-
46
- ```js
47
- const { JPEpicenterToKR } = await import('jma-lang-ko');
48
- console.log(JPEpicenterToKR("350"));
49
- ```
50
- - JSON 데이터(data/*.json)는 정기적으로 업데이트됩니다.
51
- 새로운 관측점 등 코드가 추가된 경우, ```npm update jma-lang-ko```로 최신 버전을 받아주세요.
52
-
53
- ## 🧾 라이선스
54
- MIT License © 2025 monggae0319
55
-
56
- ## 🐞 버그 신고
57
- 문제가 있거나 새로운 지역명이 필요하다면 이슈를 남겨주세요.
58
- [Github Issues](https://github.com/monggae0319/jma-lang-ko/issues)
1
+ # JMA-LANG-KO
2
+
3
+ **JMA-LANG-KO**는 일본 기상청(JMA, Japan Meteorological Agency)의 지진·해일 정보에서 사용되는 일본어 지역명, 진앙명 등을 한국어로 변환하는 라이브러리입니다.
4
+ Node.js 환경에서 간단히 불러와 사용할 수 있습니다.
5
+
6
+ ---
7
+
8
+ ## 📦설치
9
+
10
+ ```bash
11
+ npm install jma-lang-ko
12
+ ```
13
+
14
+ ## 🔎사용 예시
15
+
16
+ ```js
17
+ import {earthquake, tsunami} from 'jma-lang-ko'
18
+
19
+ console.log(earthquake.EarthquakeWarningKR('31'))
20
+ // 출력 예시: 긴급지진속보(경보)
21
+ ```
22
+ 모든 함수는 ```string | number``` 타입의 코드를 입력받을 수 있습니다.
23
+
24
+ ## 🚩제공 함수
25
+ ### earthquake
26
+ | 함수명 | 코드 종류 | 입력값 | 출력값 |
27
+ | --- | --- | :-: | --- |
28
+ | EarthquakeWarningKR | ”警報等情報要素/緊急地震速報”<br>"경보 정보 요소 / 긴급지진속보" | 00 | "없음" |
29
+ | EarthquakeForecastKR | ”緊急地震速報”<br>"긴급지진속보" | 00 | "긴급지진속보(예보)" |
30
+ | AreaForecastEEWKR | ”緊急地震速報/地方予報区”<br>"긴급지진속보 / 지방 예보구" | 99011910 | "홋카이도 도오" |
31
+ | AreaForecastLocalEEWKR | ”地震情報/都道府県等”<br>"지진정보 / 도도부현 등" | 01 | "홋카이도" |
32
+ | AreaInformationPrefectureEarthquakeKR | ”緊急地震速報/地方予報区”<br>"긴급지진속보 / 지방 예보구" | 9910 | "홋카이도" |
33
+ | AreaForecastLocalEKR | ”地震情報/細分区域”<br>"지진정보 / 세분 구역" | 100 | "이시카리 지방 북부" |
34
+ | AreaInformationCityKR | ”震度観測点”<br>"진도 관측점" | 0123500 | "이시카리 시 하나가와" |
35
+ | PointSeismicIntensityKR | ”緊急地震速報/地方予報区”<br>"긴급지진속보 / 지방 예보구" | 9910 | "홋카이도" |
36
+ | AreaEpicenterKR | ”震央地名”<br>"진앙지명" | 011 | "홋카이도 지방" |
37
+ | AreaEpicenterAbbreviationKR | ”短縮用震央地名”<br>"단축용 진앙지명" | 9011 | "홋카이도 도오" |
38
+ | AreaEpicenterDetailKR | ”詳細震央地名”<br>"상세 진앙지명" | 1001 | "미국, 알래스카 주 중앙부" |
39
+ | AreaEpicenterSupplimentKR | ”震央補助”<br>"진앙지명" | 100 | "에토로후 섬" |
40
+ | TokaiInformationKR | ”東海観連情報番号”<br>"도카이 관련 정보 번호" | 000 | "임시" |
41
+ | EarthquakeInformationKR | ”地震関連情報番号”<br>"지진 관련 정보 번호" | 111 | "조사중" |
42
+ | AdditionalCommentEarthquakeKR | ”固定付加文”<br>"고정 부가문" | 0101 | "이후, 약간의 해수면 변동이 있을 수도 있습니다." |
43
+
44
+ ### tsunami
45
+ | 함수명 | 코드 종류 | 입력값 | 출력값 |
46
+ | --- | --- | :-: | --- |
47
+ | TsunamiWarningKR | ”警報等情報要素/津波警報・注意報・予報”<br>"경보 정보 요소 / 해일경보・주의보・예보" | 00 | "해일 없음" |
48
+ | AreaTsunamiKR | ”津波予報区”<br>"해일 예보구" | 100 | "홋카이도 태평양 연안 동부" |
49
+ | CoastTsunamiKR | ”沿岸地域”<br>"연안 지역" | 100 | "홋카이도 태평양 연안 동부" |
50
+ | PointTsunamiKR | “潮位観測点”<br>"조위 관측점" | 10001 | "쿠시로" |
51
+
52
+ ### volcano
53
+ | 함수명 | 코드 종류 | 입력값 | 출력값 |
54
+ | --- | --- | :-: | --- |
55
+ | VolcanicWarningKR | ”警報等情報要素/噴火警報・予報等”<br>"경보 등 정보 요소 / 분화경보・예보 등" | 11 | "레벨 1 (활화산인 것에 유의)" |
56
+ | PointVolcanoKR | ”火山名”<br>"화산명" | 101 | "시레토코 이오 산" |
57
+
58
+ ## 참고
59
+ - [스프레드시트](https://docs.google.com/spreadsheets/d/17cB-37OMFv_xTEbMl0HCRVv635JfL1TiuYq6dff8Gdw/edit?usp=sharing) 에서 코드를 확인하실 수 있습니다.
60
+ - [JMA 지진 화산 관련 XML 전문 해설 자료](https://docs.google.com/document/d/1OP7uViQ5Xldd2slCO8BKJOhEq0IS-fy5NHllnm3vUiU/edit?usp=sharing)에서 코드의 적용 장소를 확인할 수 있습니다.
61
+ - 해당 문서는 현재 미완성이며 오류가 있을 수 있습니다. 파일은 수시 업데이트 됩니다.
62
+
63
+ ## ⚠️ 주의사항
64
+ - **Node.js 20 이상** 환경에서 사용하는 것을 권장합니다.
65
+ (JSON `import ... with { type: "json" }` 문법은 Node.js 20+ 이상에서 정식 지원됩니다.)
66
+
67
+ - ES Module(`"type": "module"`) 환경을 사용해야 합니다.
68
+ CommonJS(`require`)에서는 바로 사용할 수 없습니다.
69
+ CommonJS 환경에서는 [동적 import](https://nodejs.org/api/esm.html#esm_import_expressions)를 이용해 다음과 같이 사용할 수 있습니다:
70
+
71
+ ```js
72
+ (async () => {
73
+ const { earthquake } = await import('jma-lang-ko');
74
+ console.log(earthquake.AreaEpicenterKR("350"));
75
+ })();
76
+ ```
77
+ - JSON 데이터(data/*.json)는 수시 업데이트됩니다.
78
+ 새로운 관측점 등 코드가 추가된 경우, ```npm update jma-lang-ko```로 최신 버전을 받아주세요.
79
+
80
+ ## 🧾 라이선스
81
+ MIT License © 2025 monggae0319
82
+
83
+ ## 🐞 버그 신고
84
+ 문제가 있거나 새로운 지역명이 필요하다면 이슈를 남겨주세요.
85
+ [Github Issues](https://github.com/monggae0319/jma-lang-ko/issues)
package/package.json CHANGED
@@ -1,28 +1,24 @@
1
1
  {
2
2
  "name": "jma-lang-ko",
3
- "version": "1.0.1",
4
- "description": "Translate JMA-related Japanese terms (epicenter, region, tsunami, etc.) into Korean",
3
+ "version": "2.0.0",
4
+ "description": "Translate Japan Meteorological Agency (JMA) disaster codes into Korean",
5
5
  "type": "module",
6
- "main": "index.js",
7
6
  "exports": {
8
- ".": "./index.js"
9
- },
10
- "repository": {
11
- "type": "git",
12
- "url": "https://github.com/monggae0319/jma-lang-ko.git"
7
+ ".": "./src/index.js"
13
8
  },
9
+ "files": [
10
+ "src"
11
+ ],
14
12
  "keywords": [
15
13
  "jma",
16
14
  "japan",
17
- "translate",
18
- "korean",
19
15
  "earthquake",
20
- "tsunami"
16
+ "tsunami",
17
+ "volcano",
18
+ "disaster",
19
+ "translate",
20
+ "korean"
21
21
  ],
22
22
  "author": "monggae0319",
23
- "license": "MIT",
24
- "bugs": {
25
- "url": "https://github.com/monggae0319/jma-lang-ko/issues"
26
- },
27
- "homepage": "https://github.com/monggae0319/jma-lang-ko#readme"
23
+ "license": "MIT"
28
24
  }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * 코드 → 한국어 변환 함수 생성기
3
+ * @param {Object<string, string>} map
4
+ * @returns {(value: string | number) => string}
5
+ */
6
+ export function createTranslator(map) {
7
+ return (value) => {
8
+ if (value === null || value === undefined) {
9
+ return value;
10
+ }
11
+
12
+ const key = String(value);
13
+ return map[key] ?? key;
14
+ };
15
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "00" : "없음",
3
+ "31" : "긴급지진속보(경보)"
4
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "00": "긴급지진속보(예보)",
3
+ "01": "긴급지진속보(예보)",
4
+ "09": "긴급지진속보(예보)",
5
+ "10": "긴급지진속보(경보)",
6
+ "11": "긴급지진속보(경보)",
7
+ "19": "긴급지진속보(경보)"
8
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "9910": "홋카이도",
3
+ "9920": "도호쿠",
4
+ "9931": "간토",
5
+ "9932": "이즈 제도",
6
+ "9933": "오가사와라",
7
+ "9934": "호쿠리쿠",
8
+ "9935": "고신",
9
+ "9936": "도카이",
10
+ "9941": "긴키",
11
+ "9942": "츄고쿠",
12
+ "9943": "시코쿠",
13
+ "9951": "큐슈",
14
+ "9952": "아마미(군도)",
15
+ "9960": "오키나와"
16
+ }
@@ -0,0 +1,58 @@
1
+ {
2
+ "9011": "홋카이도 도오",
3
+ "9012": "홋카이도 도난",
4
+ "9013": "홋카이도 도호쿠",
5
+ "9014": "홋카이도 도토",
6
+ "9020": "아오모리",
7
+ "9030": "이와테",
8
+ "9040": "미야기",
9
+ "9050": "아키타",
10
+ "9060": "야마가타",
11
+ "9070": "후쿠시마",
12
+ "9080": "이바라키",
13
+ "9090": "토치기",
14
+ "9100": "군마",
15
+ "9110": "사이타마",
16
+ "9120": "치바",
17
+ "9131": "도쿄",
18
+ "9132": "이즈 제도",
19
+ "9133": "오가사와라",
20
+ "9140": "카나가와",
21
+ "9150": "니가타",
22
+ "9160": "토야마",
23
+ "9170": "이시카와",
24
+ "9180": "후쿠이",
25
+ "9190": "야마나시",
26
+ "9200": "나가노",
27
+ "9210": "기후",
28
+ "9220": "시즈오카",
29
+ "9230": "아이치",
30
+ "9240": "미에",
31
+ "9250": "시가",
32
+ "9260": "교토",
33
+ "9270": "오사카",
34
+ "9280": "효고",
35
+ "9290": "나라",
36
+ "9300": "와카야마",
37
+ "9310": "돗토리",
38
+ "9320": "시마네",
39
+ "9330": "오카야마",
40
+ "9340": "히로시마",
41
+ "9350": "야마구치",
42
+ "9360": "토쿠시마",
43
+ "9370": "카가와",
44
+ "9380": "에히메",
45
+ "9390": "고치",
46
+ "9400": "후쿠오카",
47
+ "9410": "사가",
48
+ "9420": "나가사키",
49
+ "9430": "구마모토",
50
+ "9440": "오이타",
51
+ "9450": "미야자키",
52
+ "9461": "가고시마",
53
+ "9462": "아마미(군도)",
54
+ "9471": "오키나와 본섬",
55
+ "9472": "다이토 섬",
56
+ "9473": "미야코 섬",
57
+ "9474": "야에야마"
58
+ }
@@ -0,0 +1,49 @@
1
+ {
2
+ "01": "홋카이도",
3
+ "02": "아오모리 현",
4
+ "03": "이와테 현",
5
+ "04": "미야기 현",
6
+ "05": "아키타 현",
7
+ "06": "야마가타 현",
8
+ "07": "후쿠시마 현",
9
+ "08": "이바라키 현",
10
+ "09": "토치기 현",
11
+ "10": "군마 현",
12
+ "11": "사이타마 현",
13
+ "12": "치바 현",
14
+ "13": "도쿄 도",
15
+ "14": "카나가와 현",
16
+ "15": "니가타 현",
17
+ "16": "토야마 현",
18
+ "17": "이시카와 현",
19
+ "18": "후쿠이 현",
20
+ "19": "야마나시 현",
21
+ "20": "나가노 현",
22
+ "21": "기후 현",
23
+ "22": "시즈오카 현",
24
+ "23": "아이치 현",
25
+ "24": "미에 현",
26
+ "25": "시가 현",
27
+ "26": "교토 부",
28
+ "27": "오사카 부",
29
+ "28": "효고 현",
30
+ "29": "나라 현",
31
+ "30": "와카야마 현",
32
+ "31": "돗토리 현",
33
+ "32": "시마네 현",
34
+ "33": "오카야마 현",
35
+ "34": "히로시마 현",
36
+ "35": "야마구치 현",
37
+ "36": "토쿠시마 현",
38
+ "37": "카가와 현",
39
+ "38": "에히메 현",
40
+ "39": "고치 현",
41
+ "40": "후쿠오카 현",
42
+ "41": "사가 현",
43
+ "42": "나가사키 현",
44
+ "43": "구마모토 현",
45
+ "44": "오이타 현",
46
+ "45": "미야자키 현",
47
+ "46": "가고시마 현",
48
+ "47": "오키나와 현"
49
+ }