
exports.default = {
  common: {
    // 常规操作
    dialogHiveTreeNoData: 'Please click data source to load source tables',
    noProjectTips: 'You can click the button above to add a project',
    seconds: 'seconds',
    minutes: 'minutes',
    hours: 'hours',
    days: 'days',
    good: 'Good',
    warning: 'Warning',
    error: 'Error',
    add: 'Add',
    edit: 'Edit',
    delete: 'Delete',
    drop: 'Drop',
    repair: 'Repair',
    cancel: 'Cancel',
    close: 'Close',
    update: 'Update',
    copy: 'Copy',
    notice: 'Notification',
    save: 'Save',
    leave: 'Leave',
    load: 'Load',
    loadMetadata: 'Load metadata',
    ok: 'OK',
    confirmClose: 'Turn Off',
    exit: 'Exit',
    retry: 'Retry',
    submit: 'Submit',
    continue: 'Continue',
    setting: 'Settings',
    changePassword: 'Change Password',
    logout: 'Log Out',
    sync: 'Sync',
    clone: 'Clone',
    check: 'Check',
    verify: 'Verify',
    refresh: 'Refresh',
    verifySql: 'Verify SQL',
    cubeDesc: 'Cube Description',
    view: 'View',
    detail: 'Detail',
    draft: 'Draft',
    overview: 'Overview',
    zoomIn: 'Zoom In',
    zoomOut: 'Zoom Out',
    automaticlayout: 'Automatic Layout',
    search: 'Search',
    fullscreen: 'Full Screen',
    loadMore: 'Load More...',
    // 常规状态
    success: 'Success',
    fail: 'Fail',
    running: 'Has a running job',
    status: 'Status',
    // 术语
    model: 'Model',
    alias: 'Alias',
    tableName: 'Table Name',
    tables: 'Tables',
    project: 'Project',
    projects: 'Projects',
    cube: 'Cube',
    models: 'Models',
    jobs: 'Jobs',
    cubes: 'Cubes',
    dataSource: 'Data Source',
    fact: 'Fact Table',
    limitfact: 'Lookup Table(limited)',
    lookup: 'Lookup Table',
    computedColumn: 'Computed Column',
    pk: 'Primary key',
    fk: 'Foreign key',
    dimension: 'Dimension',
    measure: 'Measure',
    disable: 'Add to the blacklist',
    totalSize: 'Total Size :',
    manual: 'Documentation',
    tutorial: 'Tutorial',
    qa: 'FAQ',
    errorDetail: 'Error Message:',
    suggest: 'Suggestion:',
    group: 'Group',
    groupName: 'Group Name',
    user: 'User',
    userName: 'User Name',
    userOrGroup: 'User/Group',
    all: 'All models',
    IKnow: 'Got it',
    contactTech: 'Contact Tech Support',
    next: 'Next',
    prev: 'Prev',
    or: 'or',
    saveAndClose: 'Save and Close',
    sameName: 'Duplicate name',
    sqlEditor: 'SQL Editor',
    // 通用提示
    backupSuccessTip: 'Metadata backup successfully: ',
    unknownError: 'Unknown Error.',
    submitSuccess: 'Submitted successfully.',
    addSuccess: 'Added successfully.',
    saveSuccess: 'Saved successfully.',
    cloneSuccess: 'Cloned successfully.',
    delSuccess: 'Deleted successfully.',
    mergeSuccess: 'Merge successfully',
    markSuccess: 'Mark successfully.',
    backupSuccess: 'Back up successfully.',
    updateSuccess: 'Updated successfully.',
    resetSuccess: 'Reset successfully.',
    actionSuccess: 'The operation is successfully',
    confirmDel: 'Are you sure you want to delete it?',
    checkDraft: 'Exit the page will lose unsaved content.',
    copySuccess: 'Content has been copied to the Clipboard.',
    copyfail: 'Can\'t copy! Your browser does not support paste boards!',
    checkSuccess: 'Great, the expression is valid.',
    // placeholder
    inputPld: 'Please enter...',
    pleaseInput: 'Please enter here',
    pleaseFilter: 'Filter...',
    pleaseFilterByModelName: 'Filter by model name',
    pleaseFilterByIndexGroupName: 'Search Index Group',
    pleaseFilterByCubeName: 'Filter by cube name',
    enterAlias: 'Enter Alias',
    pleaseSelect: 'Please select',
    pleaseSelectOrSearch: 'Please search or select',
    pleaseSelectUserName: 'Please select user name',
    pleaseSelectUserGroup: 'Please select group',
    pleaseSelectUserOrGroupName: 'Please select user/group name',
    pleaseInputUserName: 'Please search or select user name',
    pleaseInputUserGroup: 'Please search or select group name',
    pleaseInputUserOrGroupName: 'Please enter user/group name',
    pleaseSelectColumnName: 'Please select column name',
    pleaseSelectSampleRange: 'Please select sampling percentage',
    noData: 'No data',
    noResults: 'No Results',
    checkNoChange: 'No content changed',
    // 格式提示
    nameFormatValidTip: 'Only supports number, letter and underline',
    nameFormatValidTip3: 'Only supports starting with a number or a letter',
    nameFormatValidTip1: 'Please use number, letter, and underline to name your project, and start with a number or a letter',
    nameFormatValidTip2: 'Only supports Chinese or English characters, numbers, spaces and symbol（_ -()%?）',
    nameMaxLen: '{len} characters at maximum',
    projectPlaceholder: 'Only supports number, letter and underline. Must start with a number or a letter',
    // userNameFormatValidTip: 'User name should only contain letters, numbers, @, dot and underscores.',
    // userGroupNameFormatValidTip: 'User group name should only contain letters, numbers, @, dot and underscores.',
    userNameFormatValidTip: 'The user name can only contain letters, digits, space or underscore and must start with a letter or digit.',
    userGroupNameFormatValidTip: 'The group name can only contain letters, digits, space or underscore and must start with a letter or digit.',
    userGroupNameEmpty: 'Please enter user group name',
    usernameEmpty: 'Please enter a username',
    passwordEmpty: 'Please enter a password',
    passwordLength: 'The password must contain at least 8 characters. Please re-enter.',
    passwordConfirm: 'The password confirmation doesn\'t match.',
    noProject: 'Please enter the project name',
    // 其他
    name: 'Name',
    users: 'Users',
    tip: 'Notice',
    action: 'Actions',
    help: 'Help',
    username: 'Username',
    password: 'Password',
    saveDraft: 'Responding to a request for saving drafts，Please try again later.',
    streamingConnectHiveError: 'Join hive table with streaming table is not supported.',
    seeDetail: 'Details',
    notConnectServer: 'Cannot connect the Kylin server. Please check your network or Kylin server status.',
    notConnectServerIframe: 'Cannot connect the Kyligence server. Please check your network or Kyligence server status.',
    timeOut: 'Request timed out!',
    willClose: 'Are you sure you want to continue closing the window?',
    overwriteWarnTip: 'Current action will overwrite existed results, are you sure you want to continue?',
    moreActions: 'More Actions',
    autoModel: 'Auto-Modeling',
    messages: 'Messages',
    unread: 'Unread',
    readed: 'Readed',
    readedAll: 'Readed All',
    removeAll: 'Remove All Readed',
    clearAll: 'Clear All',
    remove: 'Remove',
    import: 'Import',
    back: 'Back',
    startTime: 'Start Time',
    endTime: 'End Time',
    startTime1: 'Start Time:',
    endTime1: 'End Time:',
    pleaseChoose: 'Please Choose',
    ON: 'ON',
    OFF: 'OFF',
    willGo: 'Exit the page will lose unsaved content.',
    go: 'Continue',
    catchUp: 'Build index now',
    null: 'Null',
    nan: 'NaN',
    purge: 'Purge',
    reset: 'Reset',
    comma: ', ',
    dot: '.',
    colon: ': ',
    sqlLimitTip: 'Only the first 100 rows of SQL statements are displayed. Please click the copy button to obtain the complete queries.',
    sqlPartLimitTip: 'Only parts of SQL statements are displayed. Please click the copy button to obtain the complete queries.',
    overLengthTip: '50 characters at maximum.',
    dataDirectory: 'Datasource',
    useOldPasswordTip: 'You are using the password generated by the system to log in,  please change the password.',
    searchDimensionName: 'Search Dimension Name',
    searchMeasureName: 'Search Measure Name',
    noDimensionInModel: 'No dimensions added to this model.',
    noMeasureInModel: 'No measures added to this model.',
    pleaseClickEditModel: 'Click "Edit" to add some.',
    storageQuotaLimit: 'Please enter a value no less than 1.00',
    noAllNodeTips: 'There’s no active job node now. Service might be unstable. Do you want to continue?',
    continueOperate: 'Continue',
    tryLater: 'Try It Later',
    unSavedTips: 'There exist unsaved edits in current page. Are you sure you want to discard the changes and leave?',
    discardChanges: 'Discard changes',
    systemUpgradeTips: 'System is currently undergoing maintenance. Edits might not be able to be submitted or saved. Do you want to continue?',
    fullLoad: 'Full Load',
    complementedIndex: 'Complemented Index',
    indexAmount: 'Index',
    indexAmountTip: 'Indexes in this segment / Total indexes',
    buildSuccess: 'Submitted successfully. You may go to the job page to ',
    toJoblist: 'check details',
    queryNode: 'Query node',
    jobNode: 'Job node',
    BATCH: 'Batch',
    STREAMING: 'Streaming',
    HYBRID: 'Fusion'
  },
  model: {
    draft: 'Draft',
    modelName: 'Model Name',
    computedColumn: 'Computed Column',
    modelNameGrid: 'Model Name',
    modelList: 'Model List',
    index: 'index',
    indexGroup: 'Index Group',
    tableIndex: 'table index',
    aggregateGroupIndex: 'aggregate indexes',
    indexGroupName: 'Index Group Name',
    modifiedGrid: 'Last Updated Time',
    statusGrid: 'Health Status',
    metaData: 'Metadata',
    checkData: 'Sample Data',
    modelStatusCheck: 'Model Status Check',
    factTableSampling: 'Fact Table Sampling',
    lookupTableSampling: 'Lookup Table Sampling',
    ownerGrid: 'Owner',
    modelDesc: 'Model Description',
    samplingSetting: 'Sampling Setting:',
    checkOption: 'Check Option:',
    checkModel: 'Check Model',
    buildIndexSuccess: 'Success to submit a build index job, please check it on the monitor page.',
    buildIndexSuccess1: ' The new {indexType} will be used for querying after the build is complete. ',
    saveIndexSuccess: 'You have successfully saved the {indexType}.',
    buildIndexFail1: 'Fail to submit the build index job because the model {modelName} doesn\'t have any load data range.',
    buildIndexFail2: 'Fail to generate a build index job because the {indexType} has no change.',
    primaryPartitionColumn: 'Primary Partition Column',
    primaryPartitionWarring: 'Please set time partition column before you set primary partition column.',
    scanRangeSetting: 'Time range setting',
    sameModelName: 'Model with the same name existed.',
    modelNameTips: '1. In each project, the model name needs to be unique.<br/> 2. You can rename the model after it is created.',
    partitionDateTip: '1. Time Partition Column is not required, leave as default if cube always need full build.<br/> 2. Column should contain time value. (type can be date, timestamp, string, varchar, int, integer, bigint, etc.)',
    partitionSplitTip: 'Add multi-level partition column.',
    secondaryPartitionWarring: 'Please set time partition column before you set primary partition column.',
    partitionDateTipNeedTip: 'The model created with kafka data source should have a time partition column.',
    mutilPartitionTip: 'Primary partition column includes integer column and string column (long, bigint, int, short, integer, tinyint, string, char, varchar).',
    modelCheckTips1: 'Model check is highly recommended, it will check data skew and help cube dimension optimizing.',
    modelCheckTips2: 'Model check will trigger a check job (executing time depends on data scale and sampling settings), you can view it on monitor page.',
    modelCheckOptionsTips: 'Model check have three steps to complete: <br/>model status check, fact table sampling and lookup table sampling.<br/>1. Model status check works to check data skew.<br/>2. Table sampling works for cube dimension optimizing.',
    samplingSettingTips: 'Here you can set time range and sampling ratio based on your demand and cluster resource.',
    samplingPercentage: 'Sampling Percentage: ',
    timeRange: 'Time Range: ',
    samplingPercentageTips: 'If sampling ratio is high, check job would return accurate results <br/> with high resource engaged. If sampling ratio is low, check job would <br/>return less accurate results with resource saving.',
    modelHasJob: 'This model has a running job of model check, thus the action is disabled.',
    viewModeLimit: 'This action is disabled in view mode.',
    modelCheck: 'Model check is highly recommended, it will check data skew and help cube dimension optimizing.<br/>Model check have three steps to complete: <br/>model status check, fact table sampling and lookup table sampling.<br/>1. Model status check works to check data skew.<br/>2. Table sampling works for cube dimension optimizing.',
    dragTip: 'Try to drag the tables from the left',
    resetCheckDataTip: 'Please note that model check results would be inconsistent with the new editing. So model check results would be dropped after the new editing saved.',
    dimensionLinkLimit: 'Only dimension columns can be linked',
    computedLinkLimit: 'Computed column cannot be join key.',
    columnName: 'Column Name',
    addCC: 'Add Computed Column',
    editCC: 'Edit Computed Column',
    ccRules: 'Rules of computed column:',
    ccRules1: '1. In project level, computed column\'s name and expression are defined in pairs and correspondingly.',
    ccRules2: '2. Over different models, you can easily reuse one computed column from another model with the same schema.',
    reuseCC1: 'The computed column is defined in model "',
    reuseCC2: '",',
    reuseClick: 'you can reuse it in this model.',
    sameCCName1: 'In this model, computed column name "',
    sameCCName2: '" has been used.Please rename your computed column.',
    sameCCExpression1: 'In this model, there has been a computed column "',
    sameCCExpression2: '" defined as expression.Please define another one.',
    ccWrongPosition: 'The computed column should be defined in table "',
    addModel: 'Add Model',
    hasNoFact: 'Fact Table is mandatory for model',
    cycleLinkTip: 'The join may lead some tables joining in a circle.',
    aloneTableTip: '{aloneCount} tables haven\'t been joined with the fact table directly or via other dimension tables. The model may lose them if you continue to save the model anyway.',
    aloneTableTipTitle: 'Incomplete Table Join',
    authorityDetail: 'Permission denied details',
    authorityMsg: 'You cannot access the model {modelName}. Because you lack data access to the following tables and columns.',
    parameters: 'Parameters',
    type_c: 'Type: ',
    value_c: 'Value: ',
    orderBy_c: 'Order/SUM by:',
    groupBy_c: 'Group By:',
    returnType: 'Return Type'
  },
  cube: {
    tableIndex: 'Table Index',
    measure: 'Measure',
    dimension: 'Dimension',
    noCube: 'You can click below button to add a cube',
    noDims: 'No Dimensions',
    inputSqlTip1: '1. The following shows all the inputing SQL statements, each with ";" as a split.',
    inputSqlTip2: '2. Incorrect inputing SQL statements will be ignored and will not work on subsequent steps.',
    readyCubeTip: 'Cube containing segments is not allowed to be modified, avoiding the inconsistence of cube metadata.',
    disableCubeEditTip: 'Cube {cubename} has related segment(data). To ensure segment has been defined from the same cube, please purge existing segment before edit cube definition.',
    // disableCubeSaveEditTip: 'Existing cube {cubename} differs from the latest editing, please purge its segment in advance or avoid changing existing columns.',
    saveCubeTip: 'Confirm to save the cube?',
    cubeName: 'Cube Name',
    scheduler: 'Scheduler',
    merge: 'Merge Settings',
    maxGroupColumn: 'Max Dimension Combination ',
    schedulerTip: 'Via scheduler, users can set up an incremental build plan: <br/>after triggering the first time build, the new data will be built incrementally at a fixed period(build cycle).',
    cubeNameTip: '1. Cube name is unique name of entire system.<br/>2. Can not edit cube name after created.',
    noticeTip: 'These statuses will trigger an email notification.',
    dimensionTip: '1. In fact table: one normal dimension will be auto generated per column.<br/>2. In lookup table: you can choose to generate a normal dimension or a derived dimension.',
    expressionTip: 'All cubes have to contain one measure for Count(1), suggest use "_Count_" as name (Has been generated automatically)',
    paramValueTip: '1. Only accept single column in param value with "Column" type.<br/>2. Distinct Count is approximate, please indicate Error Rate, higher accuracy degree accompanied with larger storage size and longer build time.',
    orderSumTip: 'Will use this column for SUM and Order by. For constant value 1, will use SUM(1).',
    hostColumnTip: 'Host column is the dimension to derive from, e.g. page_id.',
    refreshSetTip: 'The thresholds will be checked ascendingly to see if any consectuive segments\' time range has exceeded it. <br/>For example the [ 7 days, 30 days] will result in daily incremental segments being merged every 7 days, and the 7-days segments will get merged every 30 days.',
    // for column encoding
    dicTip: 'Dict encoding applies to most columns and is recommended by default. But in the case of ultra-high cardinality, it may cause the problem of insufficient memory.',
    fixedLengthTip: 'Fixed-length encoding applies to the ultra-high cardinality scene, and will select the first N bytes of the column as the encoded value. When N is less than the length of the column, it will cause the column to be truncated; when N is large, the Rowkey is too long and the query performance is degraded.',
    intTip: 'Deprecated, please use integer encoding instead.',
    integerTip: 'For integer characters, the supported integer range is [-2 ^ (8 * N-1), 2 ^ (8 * N-1)].',
    fixedLengthHexTip: 'Use a fixed-length("length" parameter) byte array to encode the hex string dimension value, supporting formats include yyyyMMdd, yyyy-MM-dd, yyyy-MM-dd HH: mm: ss, yyyy-MM-dd HH: mm: ss.SSS (the section containing the timestamp in the column will be truncated).',
    dataTip: 'Use 3 bytes to encode date dimension value.',
    timeTip: 'Use 4 bytes to encode timestamp, supporting from 1970-01-01 00:00:00 to 2038/01/19 03:14:07. Millisecond is ignored. ',
    booleanTip: 'Use 1 byte to encode boolean value, valid value including: true, false; TRUE, FALSE; True, False; t, f; T, F; yes, no; YES, NO; Yes, No; y, n, Y, N, 1, 0.',
    orderedbytesTip: 'Designed for all types. It keeps data\'s order when encoding and it is also the defaults encoding type in most cases.',
    sameCubeName: 'Cube with the same name existed',
    inputCubeName: 'Please enter a cube name',
    addCube: 'Add Cube',
    cubeHasJob: 'This cube has a running job of cube build, thus the action is disabled.',
    selectModelName: 'Please select a model',
    optimizerInputTip: 'What is optimier? Based on model check result and SQL patterns,<br/> optimizer can help suggest dimensions, measures and dimension optimization.',
    rowkeyTip: '<h4>What is Rowkeys?</h4><p>Rowkeys specifies how dimensions are organized. </p><h4>What is Shard By column? </h4><p>If specified as "true", cube data will be sharded according to its value. </p><h4>RowKey Encoding</h4><ol><li>"dict" Use dictionary to encode dimension values. dict encoding is very compact but vulnerable for ultra high cardinality dimensions. </li><li>"boolean" Use 1 byte to encode boolean values, valid value include: true, false, TRUE, FALSE, True, False, t, f, T, F, yes, no, YES, NO, Yes, No, y, n, Y, N, 1, 0</li><li>"integer" Use N bytes to encode integer values, where N equals the length parameter and ranges from 1 to 8. [ -2^(8*N-1), 2^(8*N-1)) is supported for integer encoding with length of N. </li><li>"int" Deprecated, use latest integer encoding instead. </li><li>"date" Use 3 bytes to encode date dimension values. </li><li>"time" Use 4 bytes to encode timestamps, supporting from 1970-01-01 00:00:00 to 2038/01/19 03:14:07. Millisecond is ignored. </li><li>"fix_length" Use a fixed-length("length" parameter) byte array to encode integer dimension values, with potential value truncations. </li><li>"fixed_length_hex" Use a fixed-length("length" parameter) byte array to encode the hex string dimension values, like 1A2BFF or FF00FF, with potential value truncations. Assign one length parameter for every two hex codes. </li></ol>',
    dataOriented: 'Data Oriented',
    businessOriented: 'Business Oriented',
    defaultOriented: 'Default',
    optimizeStrategy: 'Optimize Strategy',
    businessOrientedTip: 'On the Business Oriented, optimizer can barely work for no SQL pattens. Please switch optimize strategy or input some SQLs.',
    dataOrientedTip: 'On the Data Oriented, optimizer can barely work for no model check. Please switch optimize strategy or complete model check.'
  },
  project: {
    mustSelectProject: 'Please select a project first',
    selectProject: 'Please select a project',
    projectList: 'Project List',
    addProject: 'Add Project'
  },
  query: {
    saveQuery: 'Save Query',
    reLoad: 'Saved Query',
    refreshQuery: 'Refresh',
    name: 'Query Name',
    desc: 'Description',
    querySql: 'SQL Statment',
    queryEngine: 'Query Engine: ',
    visualization: 'Visualization',
    grid: 'Grid',
    export: 'Export',
    exportSql: 'Export SQL',
    status: 'Status:',
    startTime: 'Start Time:',
    duration: 'Duration',
    sqlContent: 'SQL Statement:',
    answered_by: 'Answered By',
    queryNode: 'Query Node',
    project: 'Project:',
    graphType: 'Graph Type:',
    dimension: 'Dimensions:',
    metrics: 'Metrics:',
    modelName: 'Model Name: ',
    content: 'Content:',
    result_row_count: 'Result Row Count',
    total_scan_bytes: 'Total Scan Bytes',
    total_scan_count: 'Total Scan Count',
    cache_hit: 'If Hit Cache',
    cache_type: 'Cache Type',
    query_id: 'Query ID',
    index_id: 'Index ID',
    snapshot: 'Snapshot',
    to: 'To',
    type: 'Type',
    original: 'Original',
    startTime_th: 'Start Time',
    latency_th: 'Duration',
    realization_th: 'Answered By',
    acceleration_th: 'Acceleration',
    sqlContent_th: ' SQL Statement',
    ip_th: 'IP',
    submitter: 'Submitter',
    startTimeFilter: 'Start Time',
    endTimeFilter: 'End Time',
    latency: 'Duration',
    clear: 'Reset',
    applyRule: 'Favorite Rule',
    lastModefied: 'Last Executed',
    rate: 'Success Rate',
    frequency: 'Frequency',
    avgDuration: 'Avg. Duration',
    fullyAcce: 'Accelerated',
    partlyAcce: 'Partial accelerated',
    ongoingAcce: 'Accelerating',
    wartingAcce: 'To be accelerated',
    canBeAcce: 'Can be accelerated',
    failed: 'Failed',
    pending: 'Pending',
    unAcce1: 'Not accelerated',
    unAcce: 'Not accelerated yet, click to mark it as favorite query',
    query_status: 'Query Status',
    SUCCEEDED: 'Succeeded',
    FAILED: 'Failed'
  },
  job: {
  },
  dataSource: {
    columnName: 'Column',
    cardinality: 'Cardinality',
    dataType: 'Data Type',
    comment: 'Comment',
    columns: 'Columns',
    samplingPercentage: 'Sampling percentage',
    extendInfo: 'Extend Information',
    statistics: 'Statistics',
    sampleData: 'Sample Data',
    maximum: 'Max Value',
    minimal: 'Min Value',
    excluded: 'Excluded',
    nullCount: 'Null Count',
    exceedPrecisionMaxLengthValue: 'Longest Value Over Precision',
    minLengthVal: 'Min Length Value',
    maxLengthVal: 'Max Length Value',
    expression: 'Expression',
    returnType: 'Data Type',
    tableName: 'Table Name:',
    dimensionName: 'Dimension Name',
    lastModified: 'Last Modified:',
    totalRow: 'Total Rows:',
    collectStatice: 'The higher the sampling percentage, the more accurate the stats information, the more resources engaging.',
    dataSourceHasJob: 'This table has a running job of cube build, thus the action is disabled.',
    topic: 'Kafka Topic:',
    kafkaCluster: 'Kafka Cluster',
    full: 'Full Load',
    incremental: 'Incremental Load',
    snapshot: 'Snapshot',
    rangeInfoTip: 'The load range refers to the data from the start time(included) to end time(excluded).'
  },
  login: {
    signIn: 'Kyligence Account | Sign In'
  },
  menu: {
    studio: 'Data Asset',
    insight: 'Insight',
    monitor: 'Monitor',
    system: 'System',
    setting: 'Setting',
    project: 'Project',
    auto: 'Auto-Modeling',
    overview: 'Overview',
    messages: 'All Messages',
    security: 'Security',
    query: 'Query',
    queryhistory: 'History',
    acceleration: 'Acceleration',
    design: 'Studio',
    job: 'Batch Job',
    streamingjob: 'Streaming Job',
    cluster: 'Cluster',
    admin: 'Admin',
    user: 'User',
    group: 'Group',
    datasource: 'Data Source',
    source: 'Data Source',
    modelList: 'Model',
    index: 'Index',
    modeledit: 'Model Edit',
    snapshot: 'Snapshot',
    refresh: 'Refresh',
    systemcapacity: 'Capacity'
  },
  user: {
    usernameLength: '180 characters at maximum.',
    tip_password_unsafe: 'The password should contain at least one number, letter and special character (~!@#$%^&*(){}|:"<>?[];\',./`).',
    noStartWithPeriod: 'Not support starting with symbol (.)',
    noStartWithSpace: 'Not support starting or ending with blank space',
    noChineseCharacters: 'Not support Chinese characters',
    otherCharacters: 'Not support Chinese characters, nor special symbols ( /:\\*?"<>|)',
    onlyEnglishChars: 'Only supports English characters',
    notOtherChars: 'Not support special symbols (/:\\*?"<>|\')'
  },
  guide: {
    addProjectTip: 'When you add a new project, choose a proper project type is essential. To analysis based on multi-dimensional models, you may choose the AI augmented mode.',
    // loadTableTipAuto: 'The Kylin platform may need to connect with your source data. Choose your desired dataset and sync its schema. Here we use the SSB dataset to do further tasks.',
    queryTipAuto: 'Once source tables synced, you can explore data among the SSB dataset.',
    speedTipAuto: 'SQL statements in the Waiting List are filtered by the system. You can adjust these rules to manage accelerating workload.',
    speedTipAuto1: 'By default, all SQL sent by ADMIN would be accelerated.',
    speedTipAuto2: 'Click the button Accelerate Now, the system will trigger multiple jobs to accelerate all waiting SQL statements.',
    monitorTip: 'Tigger a loading data job and you can check jobs via the Monitor. The load data job usually takes 5 minutes, and you may exit the guide and check the job later.',
    addModelTip: 'Add a new model. Note that the model name should be unique in the project.',
    addModelTip1: 'Scratch tables to the blank canvas and set at least one fact table.',
    addModelTip2: 'Add dimensions and measures.',
    addModelTip3: 'Save the model and set time partition and load range for it.',
    addModelTip4: 'We suggest creating some indexes after saving the model. So you can load data to it and do analysis instantly.',
    loadTableTip: 'The Kylin platform may need to connect with your source data. Choose your desired dataset and sync its schema. Here we will use the SSB dataset to do further tasks.'
  }
}
