Files
TREK/shared/src/i18n/ko/trip.ts
T
Maurice 45f1ff7799 feat(planner): public transit routing via Transitous (#1065)
Each day header gets a transit button (replacing the rename pencil, which
moved next to the day name in the day detail panel). It opens a route search
backed by Transitous/MOTIS — free, open data, no paid provider: from/to stop
search with the day's own places as quick picks, depart/arrive time, mode
filters (train, subway, tram, bus, ferry, cable car) and ranking by best
route, fewer transfers or less walking. Results show local times, duration,
transfers, walking time and line badges in their official colors, with a
stop-by-stop breakdown per connection.

Adding a connection saves it as a regular transport reservation — typed by
its dominant leg, timed from the itinerary's wall-clock departure/arrival
converted to station-local time (tz-lookup), with the origin, transfer stops
and destination as endpoints and the compact legs in metadata.transit. It
slots into the day timeline by time and inherits editing, deletion and
drag-reordering from the existing transport machinery; the transport detail
view renders the full itinerary. Re-saving a transit transport through the
edit modal preserves the stored itinerary while the route is unchanged.

The server proxies the Transitous API (JWT-guarded, rate-limited, identifying
User-Agent, short response cache, strict mode whitelist); TRANSIT_API_URL
lets self-hosters use their own MOTIS instance. New i18n keys in every
locale, wiki page updated.

Discussion #1065
2026-07-03 15:06:31 +02:00

74 lines
3.4 KiB
TypeScript

import type { TranslationStrings } from '../types';
const trip: TranslationStrings = {
'trip.tabs.plan': '계획',
'trip.tabs.transports': '교통',
'trip.tabs.reservations': '예약',
'trip.tabs.reservationsShort': '예약',
'trip.tabs.packing': '짐 목록',
'trip.tabs.packingShort': '짐',
'trip.tabs.lists': '목록',
'trip.tabs.listsShort': '목록',
'trip.tabs.budget': 'Costs',
'trip.tabs.files': '파일',
'trip.loading': '여행 불러오는 중...',
'trip.loadingPhotos': '장소 사진 불러오는 중...',
'trip.mobilePlan': '계획',
'trip.mobilePlaces': '장소',
'trip.toast.placeUpdated': '장소가 업데이트되었습니다',
'trip.toast.placeAdded': '장소가 추가되었습니다',
'trip.toast.placeDeleted': '장소가 삭제되었습니다',
'trip.toast.selectDay': '먼저 날을 선택하세요',
'trip.toast.assignedToDay': '장소가 날에 배정되었습니다',
'trip.toast.reorderError': '순서 변경 실패',
'trip.toast.reservationUpdated': '예약이 업데이트되었습니다',
'trip.toast.reservationAdded': '예약이 추가되었습니다',
'trip.toast.deleted': '삭제됨',
'trip.confirm.deletePlace': '이 장소를 삭제할까요?',
'trip.confirm.deletePlaces': '{count}개 장소를 삭제할까요?',
'trip.toast.placesDeleted': '{count}개 장소가 삭제되었습니다',
'trip.invite.linkTitle': '여행 초대 링크',
'trip.invite.linkHint': 'TREK 계정이 있는 사람이 이 링크를 열면 여행에 멤버로 참여합니다. 기존 링크를 무효화하려면 다시 생성하세요.',
'trip.invite.create': '초대 링크 만들기',
'trip.invite.regenerate': '다시 생성',
'trip.invite.disable': '비활성화',
'trip.invite.joinHeading': '이 여행 참여하기',
'trip.invite.joinPrompt': '"{title}" 여행에 초대되었습니다.',
'trip.invite.joinCta': '여행 참여',
'trip.invite.joining': '참여 중…',
'trip.invite.invalidTitle': '초대를 사용할 수 없음',
'trip.invite.invalid': '이 초대 링크는 유효하지 않거나 만료되었습니다.',
'trip.invite.backToDashboard': '대시보드로 돌아가기',
'transit.title': '대중교통',
'transit.from': '출발',
'transit.to': '도착',
'transit.searchStop': '정류장 또는 역 검색…',
'transit.swap': '출발지·도착지 교체',
'transit.depart': '출발 시각',
'transit.arrive': '도착 시각',
'transit.mode.rail': '기차',
'transit.mode.subway': '지하철',
'transit.mode.tram': '트램',
'transit.mode.bus': '버스',
'transit.mode.ferry': '여객선',
'transit.mode.cable': '케이블카',
'transit.pref.best': '최적 경로',
'transit.pref.transfers': '환승 최소',
'transit.pref.walking': '도보 최소',
'transit.search': '검색',
'transit.searching': '검색 중…',
'transit.searchError': '경로 검색에 실패했습니다. 다시 시도해 주세요.',
'transit.noResults': '연결편을 찾을 수 없습니다. 시간이나 필터를 변경해 보세요.',
'transit.direct': '직행',
'transit.transfers': '환승 {count}회',
'transit.min': '{count}분',
'transit.stops': '{count}개 정류장',
'transit.walkTo': '{name}까지 도보',
'transit.platform': '{track}번 승강장',
'transit.adding': '추가 중…',
'transit.addToDay': '일정에 추가',
'transit.itinerary': '여정',
'transit.attribution': '경로 데이터 제공:',
};
export default trip;