{{ boot.msg }}
{{ boot.error }}
{{ t('version') }} {{ version }}

{{ greeting }}, {{ welcome.customer_name }}

{{ welcome.message || welcomeLine }}

{{ t('press_ok') }}

{{ t('register') }}

{{ (settings.paired===false || !settings.dongleChipId) ? t('not_paired') : t('desc_settings') }}

{{ t('id_source_' + (reg.source || 'stored')) }} · {{ t('device_hint') }}
{{ reg.error }}
{{ clock.time }}
{{ clock.day }},
{{ clock.date }}
{{ Math.round(weather.current.temp) }}°
{{ weather.place ? weather.place.name : '' }}
{{ pageTitle }}
{{ t('room') }} {{ welcome.room_number || '–' }} · {{ welcome.customer_name }} · {{ t('not_checked_in') }}
{{ stayLine }}

{{ greeting }}{{ layout==='grand' ? '' : ', ' }}{{ welcome.customer_name }}

{{ welcomeLine }}

{{ t('grand_directory') }}

{{ t('grand_stay') }}

{{ welcomeLine }}

{{ m.label }}
{{ m.desc }}
{{ t('loading') }}
{{ hotel.error }}

{{ t('guide') }}

{{ hotel.info.title || t('informations') }}
{{ t('check_in') }}: {{ hotel.info.checkin }} · {{ t('check_out') }}: {{ hotel.info.checkout }}

{{ hotel.menus.title || t('event_info') }}

{{ c.title }}
{{ c.description }}
{{ t('menu_not_available') }}

{{ t('guest_feedback') }}

{{ t('guest_feedback') }}
{{ t('rate_hint') }}
{{ t('loading') }}
{{ order.error }}

{{ t('checkout_order') }}

{{ cartCount }}
{{ t('orders') }}
{{ t('total') }}: {{ fmtPrice(cartTotal) }}
{{ t('cart_empty') }}
{{ t('status') }}
{{ t('order_status') }}

{{ cat.category_name }}

{{ order.cart[p.product_id].qty }}
{{ p.product_name }}
{{ p.product_description }}
{{ fmtPrice(p.product_price) }}
{{ t('loading') }}
{{ resv.error }}

{{ t('reservation') }}

{{ t('your_reservation') }}
{{ t('your_reservations') }}

{{ cat.category_name }}

{{ u.unit_name }}
{{ u.unit_description }}
{{ t('open_hours') }}: {{ u.open_at }} – {{ u.close_at }}
{{ svc.error }}

{{ t('messages') }}

{{ t('message_status') }}
{{ svc.messages ? svc.messages.length + ' · ' : '' }}{{ t('messages') }}
{{ t('message_new') }}
{{ t('new_message') }}
{{ t(tpl.key) }}
{{ t(tpl.key + '_desc') }}

{{ t('weather') }}

{{ Math.round(weather.current.temp) }}°C
{{ t('weather') }} · {{ weather.place.name }}
{{ t(wxText(weather.current.code)) }} · ▲ {{ Math.round(weather.daily[0].max) }}° ▼ {{ Math.round(weather.daily[0].min) }}°
{{ weather.error || t('desc_weather') }}

{{ t('wakeup_list') }}

{{ t('wakeup_new') }}
{{ t('wakeup_desc') }}
{{ fmtDateTime(Number(w.when)) }}
{{ t('room') }}: {{ w.roomNumber }}
{{ t('type') }}: {{ w.type==='ROOM' ? t('start_tv_channel') : t('front_desk_call') }}
{{ t('loading') }}
{{ t(route==='radio' ? 'menu_radio' : 'menu_tv') }}
{{ t('loading') }}
{{ flights.error }}

{{ t('nearest_airports') }}

{{ a.airport.iata || a.airport.icao }}
{{ a.airport.name }}
{{ a.airport.city || a.airport.countryName }}
{{ fmtKm(a.km) }} {{ compass(a.bearing) }}
{{ flights.sel.airport.iata || flights.sel.airport.icao }}
{{ flights.sel.airport.name }}
{{ flights.sel.airport.city }}, {{ flights.sel.airport.countryName }} · {{ flights.sel.airport.icao }} · {{ fmtKm(flights.sel.km) }} {{ compass(flights.sel.bearing) }} {{ t('from_hotel') }}
{{ Math.round(flights.wx.temp) }}°C
{{ t(wxText(flights.wx.code)) }} · {{ t('wind') }} {{ Math.round(flights.wx.wind) }} km/h
{{ t('updated') }} {{ hhmm(flights.updated) }}

{{ g.title }} · {{ g.flights.length }}

➤
{{ flightNo(f) }} · {{ f.airline }}
{{ statusText(f.status) }} · {{ fmtKm(f.km) }} {{ compass(f.bearing) }} · {{ f.country }}
{{ f.onGround ? '–' : fmtAlt(f.altitude) }}
{{ fmtSpeed(f.speed) }}
{{ t('no_flights') }}

{{ t('flights_hint') }}

{{ t('loading') }}
{{ news.error }}

{{ grp.title }}

{{ c.title }}
{{ c.description }}
{{ t('no_data') }}

{{ ai('title') }}

{{ ai('intro') }}

{{ ai('loading') }}

{{ ai(assistant.state==='idle' ? 'ready' : assistant.state) }}
{{ t('loading') }}
{{ applications.error }}
{{ a.name }}
{{ t('no_data') }}
{{ t('vod_purchases') }}
{{ vod.purchases.length }}
{{ t('loading') }}
{{ vod.error }}

{{ genre }}

{{ m.title }}
{{ m.year }} · {{ Math.round((m.duration||0)/60) }} {{ t('min') }}
{{ t('no_data') }}
{{ it.title }}
{{ stripHtml(it.value) }}
{{ t('menu_not_available') }}

{{ t('connection') }}

{{ wmsOnline ? t('connection_ok') : t('wms_offline') }} · {{ t('last_contact') }} {{ wmsSince }}

{{ t('tuner') }}

· {{ tuner.detail }}
{{ p.k }}:{{ p.v }}
{{ p.k }}:{{ p.v }}
{{ p.k }}:{{ p.v }}
{{ p.k }}:{{ p.v }}
{{ tuner.charsetFix }}
{{ t('scan_hint') }}
{{ t('tuner_hint') }}

{{ t('language_appearance') }}

{{ s.name }}
{{ t('skin_hint') }}
{{ l.name }}
{{ t('layout_hint') }}
{{ t('on') }} {{ t('off') }}
{{ t('animations_hint') }}
{{ t('background_video_hint') }}

{{ t('menu_chat') }}

{{ chatPhonePretty || '–' }}

{{ t('screensaver') }}

{{ n === 0 ? t('off') : t('after_minutes').replace('%d', n) }}
{{ t('screensaver_hint') }}

{{ t('stay') }}

{{ dateLabel(serverStay.from) }}
{{ dateLabel(serverStay.to) }}

{{ t('guest') }}

{{ t('hotel_label') }}{{ settings.hotelName || '–' }} {{ t('guest') }}{{ welcome.customer_name || t('not_checked_in') }} {{ t('room_number') }}{{ welcome.room_number || '–' }} {{ t('currency') }}{{ currency }} {{ t('timezone') }}{{ welcome.time_zone || '–' }} WMS{{ hotelVars.wmsUrlAddress || '–' }} {{ t('version') }}{{ version }}
{{ web.title || web.host }}
{{ web.host }} · {{ t('web_note') }}
{{ t('loading') }}
{{ t('scan_channels') }}
{{ scan.progress || 0 }}%
{{ scan.tv || 0 }} {{ t('scan_tv') }} {{ scan.radio || 0 }} {{ t('scan_radio') }} {{ scanMhz(scan.freq) }}

{{ t('scan_running') }}

{{ t('scan_done') }}

{{ t('scan_stopped') }}

{{ vodTime(player.currentTime) }} / {{ vodTime(player.duration) }}
{{ t('vod_speed') }}

{{ t('audio') }}

{{ r.label }}
{{ t('original') }}

{{ t('subtitles') }}

{{ r.label }}
{{ toast.text }}