Skip to content
Snippets Groups Projects
en.js 15.4 KiB
Newer Older
export default {
  helloWorld: 'Hello, World',

  // Pages
  home: {
    welcome: 'Welcome',
    introduction:
      'AURA is radio automation software for the special needs of community radios. AURA has been developed in several Austrian community radios and it is open source.',
    notLoggedIn: 'You are not logged in yet.',
  },

  showManager: {
    title: 'Radio shows',
    generalSettings: 'General settings for show',
  },

  filePlaylistManager: {
    title: 'Media',
    files: 'Files',
    playlists: 'Playlists',
  },

  credits: {
    title: 'Credits',
    intro:
      'AURA is developed under the GNU Affero General Public License v3. Current and former developers are',

    graphicsIcons: 'Graphics & Icons',

    loadingIcon: 'Animated loading icon',
    otherIcons: 'All other icons',

    moreInfo:
      'For more infos visit the <a href="https://gitlab.servus.at/aura/dashboard">Dashboard repository</a>.<br>To get started with AURA, visit <a href="https://aura.radio">aura.radio</a>.<br>All AURA repositories can be found at <a href="https://code.aura.radio">https://code.aura.radio</a>.',
  },

  help: {
    title: 'Help',
    generalDocumentation: 'You can find the general AURA documentation here: ',
  },

  // Layout
  loading: 'Loading..',
  cancel: 'Cancel',
  delete: 'Delete',
  new: 'New',
  add: 'Add',
  save: 'Save',
  browse: 'Browse',
  drop: 'Drop file here',
  edit: 'Edit',
  slug: 'Slug',
  unimplemented:
    'By the mighty witchcraftry of the mother of time!\n\nThis feature is not implemented yet.',
  noneSetMasculine: '(none set)',
  noneSetFeminine: '(none set)',
  noneSetNeuter: '(none set)',
  noAssignedShows:
    'You have not been assigned any shows yet.<br>They can be assigned in the <a href="%{adminUrl}">administration interface</a>.',

  auth: {
    signOut: 'Sign out',
    signIn: 'Sign in',
    permissionError: 'You are not permitted to view this page',
  },

  navigation: {
    home: 'Home',
    shows: 'Shows',
    filesPlaylists: 'Media',
    calendar: 'Calendar',
    settings: 'Settings',
    profile: 'Profile',
    help: 'Help',
  },

  footer: {
    tagline: 'All the UI you need to run a community radio',
  },

  // Specific components
  header: {
    showMoreDesktop: 'Hit menu button for more',
    showMoreMobile: 'For more options tap the menu button on the right',
  },

  emissionTable: {
    title: 'Title of emission',
    start: 'Emission start',
    duration: 'Duration',
    playlist: 'Playlist',
    actions: 'Actions',
    missingPlaylistData:
      'Information for this playlist is currently not available. Switch to the show of this emission.',
  },

  fileManager: {
    noFilesAvailable: 'There are no files for this show yet',
    upload: 'Add or upload file',
    error: 'Error',

    importAborted: 'The import was aborted',
    importLogTooltip: 'Show import log',
  },

  fileAdder: {
    title: 'Add or upload file',

    link: 'Link',
    linkPlaceholder: 'Enter a HTTP(S) URL',
    download: 'Download from remote source instead of uploading file',

    editMeta: 'Edit metadata',
  },

  importLog: {
    title: 'File import log',
    availableLogs: 'Available logs',

Konrad Mohrfeldt's avatar
Konrad Mohrfeldt committed
    fetchError: 'Error: Could not fetch import log from Tank. Check browser console for more info',
    fetchLog: 'Fetch log',
    normalizeLog: 'Normalization Log',
  },

  playlistSelector: {
    title: 'Assign playlist',

Konrad Mohrfeldt's avatar
Konrad Mohrfeldt committed
    noPlaylistsAvailable: 'No playlists available. Use the buttons below to create some!',
    currentPlaylistLabel: 'Currently selected playlist ID',

    upload: 'Upload',
    uploadAudio: 'Upload audio file',
    goToFiles: "Switch to 'Files & Playlists'",

    mismatchedLength: 'The playlist and the timeslot have different durations',
    mismatchedLengthConfirmation:
      'You are about to assign a playlist with a mismatched duration. Are you sure?',
  },

  playlistManager: {
    noPlaylistsAvailable: 'There are no playlists for this show yet',
    create: 'Create playlist',
  },

  playlistEditor: {
    titleExisting: 'Editing playlist %{id} for show "%{show}"',
    titleNew: 'Add new playlist for show "%{show}"',

    noEntriesAvailable: 'There are no entries yet. Go ahead and add some!',
    saved: 'The playlist has been saved',

    unknownDuration: '(Unkown)',
    tooManyUnknowns:
      'There are two or more entries that have an unknown duration. Please fix this by clicking on the duration field in the table and entering one manually. A playlist may only contains one entry with an unknown duration.',

    types: {
      file: 'File',
      lineIn: 'Line-in',
      stream: 'Stream',
      other: 'Other',
    lineIns: {
      studio1: 'Studio 1',
      preProd: 'Preprod',
      line2: 'Line 2',
    addStream: 'Add stream to playlist',
Konrad Mohrfeldt's avatar
Konrad Mohrfeldt committed
    invalidDurationFormat: 'Please enter a duration in format mm:ss or hh:mm:ss',
  },

  playlistTable: {
    // Our translation framework automatically picks singular/plural
    items: '%{smart_count} item |||| %{smart_count} items',
    assign: 'Assign',
    unset: 'Unset',

    index: 'Nr',
    description: 'Description',
    entries: 'Entries',
    duration: 'Duration',
    lastEdit: 'Last edited',
    type: 'Type',
    source: 'Source',
    actions: 'Actions',
  },

  showSelector: {
    selectShowMany: 'Select show:',
    selectShow: 'Select a radio show',
    noData: 'No shows have been created yet.',
    noDataMatch: 'There are no shows that match your search criteria.',
    showState: {
      label: 'Show status',
      active: 'Active',
      inactive: 'Inactive',
    },
  },

  showJumbotron: {
    activateShow: 'Activate show',
    deactivateShow: 'Deactivate show',
    notActive: 'This show is not active at the moment',
    deactivationWarning: 'You are about to delete show <b>%{show}</b>!',
    continue: 'Are you sure you want to continue',
  },

  showSchedules: {
    title: 'Schedules',
    times: 'Airtime',
    rhythm: 'Rhythm',
    firstBroadcast: 'First airing',
    lastBroadcast: 'Last airing',
    noSchedulesAvailable: 'There are currently no schedules for this show',
    showAll: 'Show All',
    hide: 'Hide',
    scheduleDescription:
      '%{rhythm} beginning %{startDate} from %{startTime} to %{endTime} respectively.',
    scheduleDescriptionFinite:
      '%{rhythm} beginning %{startDate} through %{endDate} from %{startTime} to %{endTime} respectively.',
    title: 'Broadcasts',
    noTimeslotsScheduled: 'No broadcasts are scheduled within the given timeframe.',
    filter: 'Filter',

    editDescription: 'Edit description',
    editPlaylist: 'Edit playlist',
    openPlayer: 'Open player',
    downloadRecording: 'Download recording',
    uploadToCba: 'Upload recording to CBA',

    numberOfSlots: 'Number of slots',
    from: 'From',
    to: 'To (exclusive)',
  },

  showMeta: {
    email: 'Email',
    emailPlaceholder: 'Enter a contact address for this show',
    editEmail: 'Edit email',
    invalidEmail: 'Please enter a valid email',

    showName: 'Show name',
    showNamePlaceholder: 'Enter the name of the show',
    editShowName: 'Edit show name',

    description: 'Description',
    descriptionPlaceholder: 'Enter a description',
    editDescription: 'Edit description',

    shortDescription: 'Short description',
    shortDescriptionPlaceholder: 'Enter a short description of this show',
    editShortDescription: 'Edit short description',

    internalNote: 'Internal note',

    website: 'Website',
    websitePlaceholder: 'Enter a website for this show',
    editWebsite: 'Edit website',
    invalidWebsite: 'Please enter a valid URL',

    type: 'Show type',
    editType: 'Edit show type',

    fundingCategory: 'Funding category',
    fundingCategoryRtr: '(e.g. for RTR)',
    editFundingCategory: 'Edit funding category',

    predecessor: 'Predecessor',
    noPredecessor: 'This show has no predecessor',
    editPredecessor: 'Edit predecessor',
    noPredecessorName: 'The name of the predecessor is unavailable',

    cbaSeriesId: 'CBA Series ID',
    cbaSeriesIdPlaceholder: 'Enter a CBA Series ID for this show',
    editCbaSeriesId: 'Edit CBA Series ID',
    invalidCbaSeriesId: 'Please enter a valid integer as series ID',

    defaultPlaylistId: 'Default show playlist ID',
    editDefaultPlaylistId: 'Edit default show playlist ID',

    // Meta arrays
    categories: 'Categories',
    categoriesLabel: 'Select one or more categories',
    editCategories: 'Edit categories',

    topics: 'Topics',
    topicsLabel: 'Select one or more topics',
    editTopics: 'Edit topics',

    genres: 'Genres',
    genresLabel: 'Select one or more genres',
    editGenres: 'Edit genres',

    languages: 'Languages',
    languagesLabel: 'Select one or more languages',
    editLanguages: 'Edit languages',

    hosts: 'Hosts',
    hostsLabel: 'Select one or more hosts',
    editHosts: 'Edit hosts',

    owners: 'Owners',
    editOwners: 'Edit owners',

    accessAlreadyGiven: 'This user already has access for this show',
    usersWithAccess: 'Users with access to <b>%{show}</b>',
    addNewUsers: 'You can add new users using the table below',

    name: 'Name',
    username: 'Username',
    options: 'Options',

    logo: 'Logo',
    image: 'Image',

Konrad Mohrfeldt's avatar
Konrad Mohrfeldt committed
    multiselect: '<b>Hint:</b> use <code>CTRL+click</code> for multiple selection',
  },

  noteEditor: {
    editNote: 'Edit note',
    title: 'Title',
    titlePlaceholder: 'Enter a title',
    summary: 'Summary',
    summaryPlaceholder: 'Enter a summary',
    content: 'Content',
    contentPlaceholder: 'Describe the content of the show',
    image: 'Image',
    tags: 'Tags',
    contributors: 'Contributors',
    save: 'Save Note',
  error: {
    server: {
      unknown: 'An unknown error server error occurred.',
      null: 'This field cannot be empty.',
      blank: 'This field cannot be empty.',
      unique: 'The value of this field must be unique.',
  imagePicker: {
    title: 'Pick an Image',
    browseImages: 'Browse Images',
    editCurrentImage: 'Edit the current image',
    saveChanges: 'Save changes',
    useImage: 'Use this image',
    chooseAnImage: 'Choose image',
    uploadImage: 'Upload new image',
    abort: 'Abort',
    reset: 'Reset Image',
    error: {
      default: 'Could not upload image.',
      tooLarge: 'The image you’ve selected is too large in filesize.',
    },
  },

  image: {
    altText: 'Alternative Text (for screenreaders)',
    credits: 'Credits',
  },

  showCreator: {
    title: 'Create new show',
    missingShowTypes:
      'No show types have been created yet. You can add them in the <a href="%{adminUrl}/program/type/add/" target="_blank">administration interface</a>.',
    missingShowFundingCategories:
      'No funding categories have been created yet. You can add them in the <a href="%{adminUrl}/program/fundingcategory/add/" target="_blank">administration interface</a>.',
  },

  conflictResolution: {
    title: 'Conflict resolution for new schedule',
    titleModal: 'Resolve a timeslot conflict',

    titleNoConflict: 'No conflict to resolve',
    noConflict: 'This timeslot does not have a conflict. Great!',

    conflictingSlot: 'New Timeslot',
    projectedSlot:
      'The new timeslot runs on <b>%{firstDate}</b> from <b>%{startTime}</b> to <b>%{endTime}</b>',
    conflictsWith: 'It conflicts with the following timeslots',

    newSchedule: 'from <b>%{firstDate}, %{startTime}</b> to <b>%{endTime}</b>',
Konrad Mohrfeldt's avatar
Konrad Mohrfeldt committed
    recurringSchedule: 'This schedule repeats <b>%{rrule}</b> until <b>%{lastDate}</b>',
    leftToResolve:
      '%{smart_count} conflicts left to resolve |||| %{smart_count} conflict left to resolve',
    noneLeftToResolve: 'No more conflicts to resolve!',
    applySolution: 'Apply solution',

    from: 'From',
    to: 'To',
    showName: 'Show name',

    whichStrategy: 'Which solution should be applied?',
    strategies: {
      ours: 'Insert new timeslot, delete old one',
      theirs: 'Delete new timeslot, keep old one',
      theirsStart: 'Insert new timeslot after old timeslot',
      theirsEnd: 'Insert new timeslot before old timeslot',
      theirsBoth: 'Insert new timeslot with interruption by old timeslot',
      oursStart: 'ours-start (TODO: Better description)',
      oursEnd: 'ours-end (TODO: Better description)',
      oursBoth: 'ours-both (TODO: Better description)',
  paginator: {
    gotoFirst: 'Go to first page',
    gotoPrev: 'Go to previous page',
    goto: 'Go to page %{page}',
    gotoNext: 'Go to next page',
    gotoLast: 'Go to last page',
    range: 'Showing %{start} to %{end} of %{count} entries.',
  },

  scheduleEditor: {
    titleCreate: 'Create new schedule for "%{show}"',
    titleEdit: 'Edit schedule for "%{show}"',

    timeslotRuns:
      'This timeslot runs on <b>%{firstDate}</b> from <b>%{startTime}</b> to <b>%{endTime}</b>',
Konrad Mohrfeldt's avatar
Konrad Mohrfeldt committed
    recurringSchedule: 'This schedule repeats from <b>%{rrule}</b> to <b>%{lastDate}</b>',

    singleEmission: 'This timeslot is a one-time emission.',
    coexistingTimeslot:
      'But due to a conflict resolution there is another timeslot on <b>%{firstDate}</b> from <b>%{startTime}</b> to <b>%{endTime}</b>',

    addFallbackTitle: 'Add fallback for schedule',
    currentlySelectedPlaylist: 'Currently selected playlist',
    assignPlaylist: 'Assign playlist',

    start: 'Start',
    end: 'End',
    projectedDuration: '<b>Projected duration:</b> %{duration}',

    pastEventWarning:
      'Past events will be ignored. Start date was set to today!<br>Try again or change the start date to something in the future.',
    from: 'From',
    to: 'To',
    fromDate: 'Starting',
    toDate: 'Until <span class="tw-font-normal tw-text-gray-500">(Date)</span>',

    addRepetition: 'Add repetition schedule',
    whenToRepeat: 'When to repeat?',
    useSameTime: 'Use same start and end time',
    repeatAt: 'Repeat at',
    addNoOfDays: 'How many days later?',
    onlyBusinessDays: 'Only count business days',

    delete: {
      delete: 'Delete',
      timeslotsTitle: 'Deleting timeslots',
      both: 'Delete both',
      scheduleTimeslots: 'Delete schedule and all timeslots',
      timeslot: 'Delete timeslot',
      allTimeslots: 'Delete all future timeslots',
    repetition: {
      followingDay: 'On the following day',
      followingBusinessDay: 'On the following business day',
      numberOfDaysLater: 'A number of days later',
  },

  calendar: {
    today: 'Today',
    empty: 'No playlist',
    fallback: 'Fallback playlist',
    repetition: 'Repetition',
    view: {
      day: 'Day view',
      week: 'Week view',
    switchShow: 'Switch to “%{show}” show',
    editTimeslot: 'Sendung bearbeiten',
    intermission: 'Program intermission',
    mismatchedLength: 'wrong duration',
    playing: 'Currently playing',
  },

  // Etc
  metadata: {
    artist: 'Artist',
    album: 'Album',
    title: 'Title',
    source: 'Source',
    size: 'File size',
  },

  // Etc
  rrule: {
    rrule: 'Repetition rule',

    rule: {
Konrad Mohrfeldt's avatar
Konrad Mohrfeldt committed
      1: 'once',
      2: 'daily',
      3: 'workdays',
      4: 'weekly',
      5: 'every two weeks',
      6: 'every four weeks',
      7: 'even calendar weeks',
      8: 'uneven calendar weeks',
      9: 'Every first week of the month',
      10: 'Every second week of the month',
      11: 'Every third week of the month',
      12: 'Every fourth week of the month',
      13: 'Every fifth week of the month',
  },

  steeringErrorCodes: {
    'no-start-after-end': 'The start date cannot be after the end date.',
Konrad Mohrfeldt's avatar
Konrad Mohrfeldt committed
    'no-same-day-start-and-end': 'The start and end date cannot be on the same day.',
    'one-solution-per-conflict':
      'Exactly one solution is required per conflict. You either submitted no or more than one solution.',
  },