Language is configured by adjusting the language variable in your configuration.php file.

Available languages:

  • english (default)
  • spanish
  • german
  • indonesian
  • turkish
  • lithuanian
  • portuguese
  • dutch
  • chinese (simplified)
  • bulgarian
  • serbian
  • french
  • slovak
  • polish
  • italian
  • korean
  • czech
  • galician
  • russian
  • hungarian
  • swedish
  • japanese
  • slovenian
  • hebrew
  • romanian
  • arabic (see
  • portuguese_br (brazilian portuguese pt-BR)
  • persian
  • estonian

Please help us translating FileGator to your language by submitting a Pull Request on GitHub.

How to translate

First, you must setup the project like described in the 'Development' section. Default language file is located under frontend/translations/english.js You can add more languages in the same folder. Once your language file is in place, it needs to be added to frontend/mixins/shared.js. After this, recompile everything with npm run build and then you can use it by adjusting the language variable in your configuration.php file.

You should only translate value on the right, for example:

'Close': 'Schliessen',

Default language file:

const data = {
  'Selected': 'Selected: {0} of {1}',
  'Uploading files': 'Uploading {0}% of {1}',
  'File size error': '{0} is too large, please upload files less than {1}',
  'Upload failed': '{0} failed to upload',
  'Per page': '{0} Per Page',
  'Folder': 'Folder',
  'Login failed, please try again': 'Login failed, please try again',
  'Already logged in': 'Already logged in.',
  'Please enter username and password': 'Please enter username and password.',
  'Not Found': 'Not Found',
  'Not Allowed': 'Not Allowed',
  'Please log in': 'Please log in',
  'Unknown error': 'Unknown error',
  'Add files': 'Add files',
  'New': 'New',
  'New name': 'New name',
  'Username': 'Username',
  'Password': 'Password',
  'Login': 'Log in',
  'Logout': 'Log out',
  'Profile': 'Profile',
  'No pagination': 'No pagination',
  'Time': 'Time',
  'Name': 'Name',
  'Size': 'Size',
  'Home': 'Home',
  'Copy': 'Copy',
  'Move': 'Move',
  'Rename': 'Rename',
  'Required': 'Please fill out this field',
  'Zip': 'Zip',
  'Batch Download': 'Batch Download',
  'Unzip': 'Unzip',
  'Delete': 'Delete',
  'Download': 'Download',
  'Copy link': 'Copy link',
  'Done': 'Done',
  'File': 'File',
  'Drop files to upload': 'Drop files to upload',
  'Close': 'Close',
  'Select Folder': 'Select Folder',
  'Users': 'Users',
  'Files': 'Files',
  'Role': 'Role',
  'Cancel': 'Cancel',
  'Paused': 'Paused',
  'Confirm': 'Confirm',
  'Create': 'Create',
  'User': 'User',
  'Admin': 'Admin',
  'Save': 'Save',
  'Read': 'Read',
  'Write': 'Write',
  'Upload': 'Upload',
  'Permissions': 'Permissions',
  'Homedir': 'Home Folder',
  'Leave blank for no change': 'Leave blank for no change',
  'Are you sure you want to do this?': 'Are you sure you want to do this?',
  'Are you sure you want to allow access to everyone?': 'Are you sure you want to allow access to everyone?',
  'Are you sure you want to stop all uploads?': 'Are you sure you want to stop all uploads?',
  'Something went wrong': 'Something went wrong',
  'Invalid directory': 'Invalid directory',
  'This field is required': 'This field is required',
  'Username already taken': 'Username already taken',
  'User not found': 'User not found',
  'Old password': 'Old password',
  'New password': 'New password',
  'Wrong password': 'Wrong password',
  'Updated': 'Updated',
  'Deleted': 'Deleted',
  'Your file is ready': 'Your file is ready',
  'View': 'View',

export default data

RTL support

Thanks to @yaniv1983 who provided these RTL tweaks for hebrew language in #301.

To enable RTL support, simply add this to your configuration.php 'add_to_head' section:

body {
    direction: rtl;
    color: #000000;
.search-btn[data-v-081c0a81] {
    margin-left: 10px;
    margin-right: unset;
#multi-actions a[data-v-081c0a81] {
    margin: 0 0 15px 15px;
.dropdown .dropdown-menu .has-link a, a.dropdown-item, button.dropdown-item {
    padding-left: 3rem;
    padding-right: unset;
    text-align: right;
table td:not([align]), table th:not([align]) {
    text-align: right;
.b-table .table th .th-wrap .icon {
    margin-left: 0;
    margin-right: .5rem;
    font-size: 1rem;
.b-table .table th {
    flex-direction: unset;
    text-align: right;
.progress-icon[data-v-07f55d0a] {
    margin-right: 15px;
    margin-left: unset;
.progress-items[data-v-07f55d0a] {
    overflow-y: hidden;
    margin-left: -100px;
    padding-left: 100px;
    max-height: 300px;
    margin-right: unset;
    padding-right: unset;
.navbar-burger {
    margin-left: unset;
    margin-right: auto;
@media screen and (min-width: 1024px) {
.navbar-end {
    justify-content: flex-end;
    margin-right: auto;
    margin-left: unset;
@media (min-width: 1088px) {
.logo img[data-v-cd57c856] {
    max-height: 3.5rem !important;