# Labels

You can overwrite any of the player labels to fully customize the video player text.

Label localization is based on **ISO language codes** such as `en`, `de`, `fr`.\
**Region-specific variants are not supported** — only the base language code is used.

This ensures consistent and predictable labeling across all platforms.

```javascript
const player = new js3q({
  dataid: '5c3b0910-8850-11e7-9273-002590c750be',
  container: 'player',
  labels: {
    en: {
    quality: 'Video Quality',
    playbackrate: 'Playbackrate',
    subtitles: 'Subtitles',
    auto: 'Auto',
    off: 'Off',
    chapters: 'Chapters',
    playbackerror:
      '<b>Error</b><br/><br/>An playback error occurred, please try again or try another browser.',
    drmerror:
      '<b>Error</b><br/><br/>This video requires DRM, please use a different Browser.',
    close: 'Dismiss',
    help: 'Problems? Give Feedback',
    stats: 'Show Debug info',
    debugCopy: 'Copy Debug info',
    licenseInformations: 'License informations',
    ad: 'Ad',
    adendsin: ' ends in ',
    skipin: 'Skip this ad in ',
    skip: ' Skip Ad',
    live: 'Live',
    backtolive: ' Back to Live',
    audiotracks: ' Audio Tracks',
    streamoffline: 'Livestream currently offline',
    streamnotavailable: 'Livestream currently not available',
    resume: 'Resume Video',
    size: 'Size',
    currentPosition: 'Now playing',
    bug: {
      description: 'Select all that applies',
      message: 'More details? (optional)',
      submit: 'Submit',
      video: 'Video problems',
      audio: 'Audio problems',
      network: 'Network problems oder buffering',
      submitmessage:
        'Thank you for your feedback. We will look at your data and make improvements to your operating system or browser if necessary.<br/><br/> At our <a href="https://3q.video/de/player-about" target="_blank">Support page</a>, you`ll find tips on how to solve play issues.',
    },
    tips: {
      play: 'Play',
      pause: 'Pause',
      volume: 'Unmute',
      mutevolume: 'Mute',
      fullscreen: 'Fullscreen',
      exitfullscreen: 'Exit Fullscreen',
      cast: 'Cast on',
      airplay: 'Cast with Airplay',
      backtolive: 'Switch back to Livestream',
      chapter: 'Chapters',
      close: 'Dismiss',
      settings: 'Settings',
      settingsClose: 'Close settings',
      subtitles: 'Subtitles',
      transcript: 'Transcript',
      transcriptLang : 'Choose language',
      transcriptSearchPlaceholder: 'Search transcript',
      pip: 'Picture in Picture',
      back: "Zur&uuml;ck"
    },
    config: {
      fetchError: 'Error loading configuration file',
      forbiddenError: 'No authorization',
      goneError: 'Key has expired',
      serverError: 'Server error',
      notFoundError: 'The video is not available',
      notPublished: 'The video is not published',
      geoRestriction: 'The content is not available in your country.',
    },
    http: {
      fetchError: 'Error loading content',
      forbiddenError: 'No authorization',
      goneError: 'Key has expired',
      serverError: 'Server error',
      notFoundError: 'The content is not available',
      notPublished: 'The content is not published',
      geoRestriction: 'The content is not available in your country.',
    },
    playlist: {
      label: 'Playlist',
      next: 'Next video in',
      playnext: 'Play next',
    playback: 'Back',
    of: 'of',
    now: 'Now playing:',
    history: 'Latest',
    listLabel: 'Show Playlist',
    open: 'Hide Playlist',
    multichannelButton: 'Alternate channels',
    searchPlaceholder: 'Search',
    allCategories: 'All Categories',
    },
    podcast: {
    listLabel: 'Show Podcast',
    open: 'Hide Podcast',
    },
    cta: {
    skip: 'Resume video',
    },
    quizzing: {
    answer: 'Answer',
    answeragain: 'Answer again',
    showanswer: 'Show answers',
    skip: 'Resume to video',
    },
    poll: {
    label: 'Poll',
    commit: 'Thanks for voting.',
    },
    casting: {
    playson: 'Casting on ',
    },
    wall: {
    prelive: 'Watch our livestream here',
    postlive: 'Our Livestream has ended.',
    postlivemessage: 'Thanks for watching',
    },
    comments: {
    headline: 'Comments',
    name: 'Name',
    comment: 'Enter your comment here',
    send: 'Send',
    thanks: 'Thank you for your comment',
    ariaName: 'Your name',
    ariaComment: 'Your comment',
    ariaButton: 'Send comment',
    },
    passwordProtection: {
    wrongpassword: 'Password is wrong, please try again.',
    enterpassword: 'Enter password',
    },
    countdown: {
    days: 'Days',
    hours: 'Hours',
    minutes: 'Minutes',
    seconds: 'Seconds',
    },
    livestatus: {
    addToCalendar: 'add to calendar',
    startingSoon: 'The stream is starting soon!',
    },
    processing: 'Video is being processed',
    embedMenu: 'Embed-Code',
    transcript: 'Transcript',
    reactions: 'React',
    pip: 'Picture in Picture',
    recommendations: 'Recommendations',
    recommendationsCountdownText: 'Next video starts in'
    },
    de: {
    // Same structure as above; different language strings
    }
  }
})
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://player.docs.3q.video/player-web-sdk/labels.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
