Compare commits

...

No commits in common. "main" and "gh-pages" have entirely different histories.

261 changed files with 8528 additions and 48770 deletions

View file

@ -1,67 +0,0 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"
on:
push:
branches: [ master ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ master ]
schedule:
- cron: '20 16 * * 0'
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
language: [ 'javascript' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
# Learn more:
# https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
steps:
- name: Checkout repository
uses: actions/checkout@v2
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v1
# Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
#- run: |
# make bootstrap
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1

View file

@ -1,22 +0,0 @@
name: publish docs
on:
push:
branches:
- main
jobs:
build:
name: deploy
runs-on: ubuntu-latest
steps:
- name: checkout main
uses: actions/checkout@v3
with:
ref: main
- name: deploy docs
uses: mhausenblas/mkdocs-deploy-gh-pages@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CUSTOM_DOMAIN: docs.adminerevo.org
EXTRA_PACKAGES: build-base

5
.gitignore vendored
View file

@ -1,5 +0,0 @@
/adminer/adminer.css
/adminer*.php
/editor*.php
/vendor/
/.idea

12
.gitmodules vendored
View file

@ -1,12 +0,0 @@
[submodule "jush"]
path = externals/jush
url = https://github.com/vrana/jush
[submodule "JsShrink"]
path = externals/JsShrink
url = https://github.com/vrana/JsShrink
[submodule "designs/hydra"]
path = designs/hydra
url = https://github.com/Niyko/Hydra-Dark-Theme-for-Adminer
[submodule "designs/pepa-linha-dark"]
path = designs/pepa-linha-dark
url = https://github.com/pepa-linha/Adminer-Design-Dark

0
.nojekyll Normal file
View file

View file

@ -1,9 +0,0 @@
language: php
php:
- 5.6
- 7.1
- 7.2
- 7.3
- 7.4
- 8.0
script: git diff --name-only $TRAVIS_COMMIT_RANGE | grep '\.php$' | xargs -n1 -P8 php -l | grep -v 'No syntax errors'; test $? -eq 1

308
404.html Normal file
View file

@ -0,0 +1,308 @@
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="description" content="AdminerEvo documentation">
<link rel="icon" href="/assets/favicon.png">
<meta name="generator" content="mkdocs-1.4.2, mkdocs-material-9.0.6">
<title>AdminerEvo</title>
<link rel="stylesheet" href="/assets/stylesheets/main.558e4712.min.css">
<link rel="stylesheet" href="/assets/stylesheets/palette.2505c338.min.css">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
<link rel="stylesheet" href="/assets/local.css">
<script>__md_scope=new URL("/",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
</head>
<body dir="ltr" data-md-color-scheme="default" data-md-color-primary="" data-md-color-accent="">
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
</div>
<div data-md-component="announce">
</div>
<header class="md-header" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="/." title="AdminerEvo" class="md-header__button md-logo" aria-label="AdminerEvo" data-md-component="logo">
<img src="/assets/logo-shield-white.svg" alt="logo">
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
AdminerEvo
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
</span>
</div>
</div>
</div>
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
</label>
<nav class="md-search__options" aria-label="Search">
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
</button>
</nav>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
Initializing search
</div>
<ol class="md-search-result__list" role="presentation"></ol>
</div>
</div>
</div>
</div>
</div>
<div class="md-header__source">
<a href="https://github.com/adminerevo/adminerevo" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
</div>
<div class="md-source__repository">
GitHub
</div>
</a>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
<div class="md-tabs__inner md-grid">
<ul class="md-tabs__list">
<li class="md-tabs__item">
<a href="/." class="md-tabs__link">
Home
</a>
</li>
</ul>
</div>
</nav>
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="/." title="AdminerEvo" class="md-nav__button md-logo" aria-label="AdminerEvo" data-md-component="logo">
<img src="/assets/logo-shield-white.svg" alt="logo">
</a>
AdminerEvo
</label>
<div class="md-nav__source">
<a href="https://github.com/adminerevo/adminerevo" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
</div>
<div class="md-source__repository">
GitHub
</div>
</a>
</div>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="/." class="md-nav__link">
Home
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<h1>404 - Not found</h1>
</article>
</div>
</div>
<a href="#" class="md-top md-icon" data-md-component="top" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12Z"/></svg>
Back to top
</a>
</main>
<footer class="md-footer">
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</a>
</div>
<div class="md-social">
<a href="https://github.com/adminerevo/adminerevo" target="_blank" rel="noopener" title="github.com" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"base": "/", "features": ["navigation.tabs", "navigation.top", "toc.integrate", "content.code.annotate"], "search": "/assets/javascripts/workers/search.e5c33ebb.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="/assets/javascripts/bundle.51d95adb.min.js"></script>
</body>
</html>

1
CNAME Normal file
View file

@ -0,0 +1 @@
docs.adminerevo.org

View file

@ -1 +0,0 @@
Apache-2.0 OR GPL-2.0-only

View file

@ -1,202 +0,0 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View file

@ -1,339 +0,0 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

View file

@ -1,39 +0,0 @@
ROOT_DIRECTORY = $(shell dirname "$(realpath $(lastword $(MAKEFILE_LIST)))")
PHP := $(shell which php)
PORT := 8000
.DEFAULT_GOAL := default
.PHONY: default
default: compile
.PHONY: compile
compile:
$(PHP) $(ROOT_DIRECTORY)/compile.php
.PHONY: server
server:
php \
--server 127.0.0.1:$(PORT) \
--docroot $(ROOT_DIRECTORY)
.PHONY: initialize
initialize:
git \
-C $(ROOT_DIRECTORY) \
submodule \
update \
--init \
--recursive
.PHONY: clean
clean:
rm \
--recursive \
--force \
$(ROOT_DIRECTORY)/adminer.php
.PHONY: clean.all
clean.all: clean

View file

@ -1,134 +0,0 @@
# Plugins
AdminerEvo and AdminerEvo Editor can be extended by plugins. [To use a plugin](#to-use-a-plugin)
| Name / link | Description |
| --- | --- |
| [plugin](https://raw.githubusercontent.com/adminerevo/adminerevo/master/plugins/plugin.php) | Required to run any plugin |
| [database-hide](https://raw.githubusercontent.com/adminerevo/adminerevo/master/plugins/database-hide.php) | Hide some databases from the interface - just to improve design, not a security plugin |
| [designs](https://raw.githubusercontent.com/adminerevo/adminerevo/master/plugins/designs.php) | Allow switching designs |
| [dump-alter](https://raw.githubusercontent.com/adminerevo/adminerevo/master/plugins/dump-alter.php) | Exports one database (e.g. `development`) so that it can be synced with other database (e.g. `production`) |
| [dump-bz2](https://raw.githubusercontent.com/adminerevo/adminerevo/master/plugins/dump-bz2.php) | Dump to Bzip2 format |
| [dump-date](https://raw.githubusercontent.com/adminerevo/adminerevo/master/plugins/dump-date.php) | Include current date and time in export filename |
| [dump-json](https://raw.githubusercontent.com/adminerevo/adminerevo/master/plugins/dump-json.php) | Dump to JSON format |
| [dump-xml](https://raw.githubusercontent.com/adminerevo/adminerevo/master/plugins/dump-xml.php) | Dump to XML format in structure `<database name="><table name="><column name=">` value |
| [dump-zip](https://raw.githubusercontent.com/adminerevo/adminerevo/master/plugins/dump-zip.php) | Dump to ZIP format |
| [edit-calendar](https://raw.githubusercontent.com/adminerevo/adminerevo/master/plugins/edit-calendar.php) | Display [jQuery UI](http://jqueryui.com/) [Timepicker](http://trentrichardson.com/examples/timepicker/) for each date and datetime field |
| [edit-foreign](https://raw.githubusercontent.com/adminerevo/adminerevo/master/plugins/edit-foreign.php) | Select foreign key in edit form |
| [edit-textarea](https://raw.githubusercontent.com/adminerevo/adminerevo/master/plugins/edit-textarea.php) | Use `<textarea>` for `char` and `varchar` |
| [enum-option](https://raw.githubusercontent.com/adminerevo/adminerevo/master/plugins/enum-option.php) | Use `<select><option>` for `enum` edit instead of `<input type="radio">` |
| [enum-types](https://raw.githubusercontent.com/adminerevo/adminerevo/master/plugins/enum-types.php) | Use `<select><option>` for `enum` edit instead of regular input text on enum type in PostgreSQL |
| [file-upload](https://raw.githubusercontent.com/adminerevo/adminerevo/master/plugins/file-upload.php) | Edit fields ending with _path by `<input type="file">` and link to the uploaded files from select |
| [foreign-system](https://raw.githubusercontent.com/adminerevo/adminerevo/master/plugins/foreign-system.php) | Link system tables (in `mysql` and `information_schema` databases) by foreign keys |
| [frames](https://raw.githubusercontent.com/adminerevo/adminerevo/master/plugins/frames.php) | Allow using Adminer inside a frame |
| [json-column](https://raw.githubusercontent.com/adminerevo/adminerevo/master/plugins/json-column.php) | Display JSON values as table in edit |
| [login-otp](https://raw.githubusercontent.com/adminerevo/adminerevo/master/plugins/login-otp.php) | Require One Time Password at login |
| [login-servers](https://raw.githubusercontent.com/adminerevo/adminerevo/master/plugins/login-servers.php) | Display constant list of servers in login form |
| [login-password-less](https://raw.githubusercontent.com/adminerevo/adminerevo/master/plugins/login-password-less.php) | Enable login without password ([example](https://github.com/adminerevo/adminerevo/blob/main/adminer/sqlite.php)) |
| [login-ssl](https://raw.githubusercontent.com/adminerevo/adminerevo/master/plugins/login-ssl.php) | Connect to MySQL using SSL |
| [login-table](https://raw.githubusercontent.com/adminerevo/adminerevo/master/plugins/login-table.php) | Authenticate a user from the login table |
| [master-slave](https://raw.githubusercontent.com/adminerevo/adminerevo/master/plugins/master-slave.php) | Execute writes on master and reads on slave |
| [pretty-json-column](https://raw.githubusercontent.com/adminerevo/adminerevo/master/plugins/pretty-json-column.php) | Pretty print JSON values in edit |
| [slugify](https://raw.githubusercontent.com/adminerevo/adminerevo/master/plugins/slugify.php) | Prefill field containing `_slug` with slugified value of a previous field (JavaScript) |
| [sql-log](https://raw.githubusercontent.com/adminerevo/adminerevo/master/plugins/sql-log.php) | Log all queries to SQL file |
| [struct-comments](https://raw.githubusercontent.com/adminerevo/adminerevo/master/plugins/struct-comments.php) | Show comments of sql structure in more places (mainly where you edit things) |
| [tables-filter](https://raw.githubusercontent.com/adminerevo/adminerevo/master/plugins/tables-filter.php) | Filter names in tables list |
| [tinymce](https://raw.githubusercontent.com/adminerevo/adminerevo/master/plugins/tinymce.php) | Edit all fields containing `_html` by HTML editor [TinyMCE](http://tinymce.moxiecode.com/) and display the HTML in select |
| [translation](https://raw.githubusercontent.com/adminerevo/adminerevo/master/plugins/translation.php) | Translate all table and field comments, enum and set values from the translation table (automatically inserts new translations) |
| [version-noverify](https://raw.githubusercontent.com/adminerevo/adminerevo/master/plugins/version-noverify.php) | Disable version checker |
| [wymeditor](https://raw.githubusercontent.com/adminerevo/adminerevo/master/plugins/wymeditor.php) | Edit all fields containing `_html` by HTML editor [WYMeditor](http://www.wymeditor.org/) and display the HTML in select |
## User contributed plugins
| Name / link | Author | Description |
| --- | --- | --- |
| [allowed-prefixes](https://github.com/LinkedList/Adminer-Allowed-Prefixes) | Martin Macko | Show only tables with user set prefixes |
| [checkbox-select](https://bitbucket.org/beholder/adminer-checkboxselect/src) | Alexander Shabunevich | Check multiple checkboxes at once by Shift+click. |
| [colorfields](https://github.com/smuuf/adminer-colorfields) | Prema van Smuuf | |
| [convention-foreign-keys](https://gist.github.com/raw/821510/convention-foreign-keys.php) | Ivan Nečas | Links for foreign keys by convention `user_id => users.id` |
| [convention-foreign-keys](https://raw.github.com/Michal-Mikolas/Adminer-Editor-package/master/plugins/ConventionsForeignKeys.php) | Michal Mikoláš | Links for foreign keys by convention `user_id => users.id` |
| [AdminerCopy](https://github.com/adilyildiz/AdminerCopy) | Adil Yildiz | |
| [Camera Upload](https://github.com/margenn/adminer-camera-upload-plugin) | Marcelo Gennari | |
| [cellformula](https://gist.github.com/redfish-d86e/bd6e1bb86424bec46c1289a997cfe972) | Tommy Tan | |
| [CustomizeThemeBasedOnServer](https://github.com/mmokross/AdminerCustomizeThemeBasedOnServer) | Michael Mokroß | |
| [Disable tables](https://github.com/icyz/adminer/blob/master/plugins/disable-tables.php) | Andrea Mariani | |
| [DisplayForeignKeyName](https://gist.github.com/anonymous/13b657087cf55323150c#file-display-foreign-key-name-php) | Bruno Vibert | |
| [DumpMarkdownDict](https://github.com/sc419/AdminerDumpMarkdownDict) | | |
| [dump-markdown](https://github.com/fthiella/adminer-plugin-dump-markdown) | Federico Thiella | |
| [dump-xml-dataset](https://github.com/Gobie/adminer-plugins) | Michal Brašna | Dump to XML format specifically PHPUnit's XML DataSet structure |
| [FasterTablesFilter](https://github.com/LinkedList/FasterTablesFilter) | Martin Macko | |
| [favorites tables](https://openuserjs.org/scripts/knedle/Adminer_-_favorites_tables) | Ladislav Ševcůj | |
| [FillLoginForm](https://github.com/arxeiss/Adminer-FillLoginForm) | Pavel Kutáč | |
| [fk-disable](https://github.com/icyz/adminer/blob/master/plugins/fk-disable.php) | Andrea Mariani | |
| [floatThead](https://github.com/stano/adminer-floatThead) | Stano Paška | Floating table header plugin |
| [folder-import](https://gist.github.com/joshcangit/ad28f82baf1c9c2fab22dd9e8f39f799) | Joshua | |
| [ForeignKeys](https://github.com/mhucik/AdminerForeignKeysPlugin) | Marek Hučík | |
| [hidePgSchemas](https://github.com/raitocz/hidePgSchemas) | Martin Jagr | Hide schemas with `pg_` prefix |
| [HideTables](https://github.com/arxeiss/Adminer-HideTables) | Pavel Kutáč | |
| [HideableColumns](https://github.com/derStephan/AdminerPlugins/blob/master/hideableColumns.php) | Stephan | |
| [input-uuid-generator](https://github.com/arxeiss/adminer-input-uuid-generator) | Pavel Kutáč | |
| [ispconfig](https://github.com/natanfelles/adminer-ispconfig) | Natan Felles | Authenticate and auto-check host by ISPConfig Remote API |
| [JsonVarDumper](https://gist.github.com/marcbln/22dd713966cbda67af2e6bfc465a5c46) | Marc Christenfeldt | |
| [login-servers-enhanced](https://github.com/crazy-max/login-servers-enhanced) | CrazyMax | Fork of the official login-servers Adminer plugin with enhancements |
| [nette-user-login](https://gist.github.com/3423745) | Mikuláš Dítě | |
| [one-click-login](https://github.com/giofreitas/one-click-login) | Sérgio Freitas | |
| [PHP Export](https://github.com/gremki/AdminerPHPExport) | Adrian Andreescu | |
| [PHP Serialized Data](https://gist.github.com/donwilson/0bc0ec7c3701fb20747777a1a7b4cab4) | Don Wilson | |
| [readable-dates](https://gist.github.com/scr4bble/9ee4a9f1405ffc1465f59e03768e2768) | Dora Bulkins | Replaces UNIX timestamps with human-readable dates in your local format |
| [resize](https://github.com/TiagoGilMarques/adminer.resize) | Tiago Gil Marques | Left column (tables) resizer (allow you to resize left table column) |
| [restore-menu-scroll](https://gist.github.com/NoxArt/8085521) | Jiří Petruželka | Remembers and restores scollbar position of side menu |
| [SchemaDefaultToPublic](https://github.com/MartinZubek/adminer-schema-default-to-public) | Martin Zubek | |
| [SearchAutocomplete](https://github.com/derStephan/AdminerPlugins/blob/master/searchAutocomplete.php) | Stephan | |
| [SQLite3 without password](https://github.com/FrancoisCapon/LoginToASqlite3DatabaseWithoutCredentialsWithAdminer) | François Capon | |
| [StickyColumns](https://github.com/derStephan/AdminerPlugins/blob/master/stickyColumns.php) | Stephan | |
| [suggest-tablefields](https://github.com/icyz/adminer/blob/master/plugins/suggest-tablefields.php) | Andrea Mariani | |
| [table-filter](https://github.com/zhgabor/adminer-table-filter) | Gábor Zabojszky-Horvath | Quickly filtering tables, works only with custom themes where table list is floated |
| [table-header-scroll](https://github.com/jnvsor/adminer-table-header-scroll/) | Jonathan Vollebregt | Makes the table header scroll with the viewport |
| [tablesCollapse](https://github.com/TiagoGilMarques/adminer.tablesCollapse) | Tiago Gil Marques | Left column tables collapse (allows you to collapse tables, and translations tables with some sufix patterns, like phpmyadmin) |
| [tables_fuzzy_search](https://github.com/brunetton/adminer-tables_fuzzy_search) | Bruno Duyé | Fuzzy search (filter) in tables list |
| [tables-history](https://gist.github.com/aoloe/303f314aec36851d4c88) | Ale Rimoldi | |
| [tree-view](https://github.com/PetroKostyuk/adminer-tree-view) | Petro Kostyuk | |
| [login-serversjson-previewsimple-menucollations](https://github.com/pematon/adminer-plugins) | Pematon | |
| [Adminer Bootstrap-Like Design](https://github.com/natanfelles/adminer-bootstrap-like) | Natan Felles | |
| [Theme for Adminer](https://github.com/pematon/adminer-theme) | Pematon | Responsive touch-friendly theme |
| [Theme Switcher](https://github.com/felladrin/adminer-theme-switcher) | Victor Nogueira | |
## To use a plugin
Create a PHP file specifying which plugins do you want to use:
```php
<?php
function adminer_object() {
// required to run any plugin
include_once "./plugins/plugin.php";
// autoloader
foreach (glob("plugins/*.php") as $filename) {
include_once "./$filename";
}
// enable extra drivers just by including them
//~ include "./plugins/drivers/simpledb.php";
$plugins = array(
// specify enabled plugins here
new AdminerDumpXml(),
new AdminerTinymce(),
new AdminerFileUpload("data/"),
new AdminerSlugify(),
new AdminerTranslation(),
new AdminerForeignSystem(),
);
/* It is possible to combine customization and plugins:
class AdminerCustomization extends AdminerPlugin {
}
return new AdminerCustomization($plugins);
*/
return new AdminerPlugin($plugins);
}
// include original Adminer or Adminer Editor
include "./adminer.php";
```

View file

@ -1,49 +0,0 @@
# AdminerEvo
**Adminer** - Database management in a single PHP file
**Adminer Editor** - Data manipulation for end-users
## A bit of history
The original Adminer was created and maintained by Jakub Vrána in the [vrana/adminer](https://github.com/vrana/adminer) repository.
Not being maintained for more than two years and being a daily user of Adminer, I've tried to get in touch with the original developer to propose my help to continue the project, but without success, I got no answer.
I have then started to search if someone would be interested in continuing the project with me and found someone who seemed to have the same interest and view on the future of this project.
I am now starting to take over the project under a slightly different name and will try to keep compatibility with all current database engines but also to give Adminer a new features, layout, etc.
## Before participating
Before you start developing around AdminerEvo, please carefully read the roadmap, the status of open issues, and even get in touch with us.
It would be sad spending time/energy on development of a feature which would not be accepted into the main project.
## License
This work is dual-licensed under Apache 2.0 and GPL 2.0.
You can choose between either one of them if you use this work.
`SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-only`
## Information from the original developer
|||
|---|---|
|Supports|MySQL, MariaDB, PostgreSQL, SQLite, MS SQL, Oracle, Elasticsearch, MongoDB, SimpleDB (plugin), Firebird (plugin), ClickHouse (plugin)|
|Requirements|PHP 5+|
|Licence|Apache License 2.0 or GPL 2|
&nbsp;
|File|Purpose|
|---|---|
|`adminer/index.php`|Run development version of Adminer|
|`editor/index.php`|Run development version of Adminer Editor|
|`editor/example.php`|Example customization|
|`plugins/readme.txt`|Plugins for Adminer and Adminer Editor|
|`adminer/plugin.php`|Plugin demo|
|`adminer/sqlite.php`|Development version of Adminer with SQLite allowed|
|`editor/sqlite.php`|Development version of Editor with SQLite allowed|
|`adminer/designs.php`|Development version of Adminer with `adminer.css` switcher|
|`compile.php`|Create a single file version|
|`lang.php`|Update translations|
|`tests/katalon.html`|Katalon Automation Recorder test suite|
If downloaded from Git then run: `git submodule update --init`

View file

@ -1,21 +0,0 @@
# Security Policy
## Supported Versions
The AdminerEvo team only supports the last published version and the
last development version (last commit).
## Reporting a Vulnerability
To report a vulnerability, create a new security advisory
[here](https://github.com/adminerevo/adminerevo/security/advisories).
Security issues are handled with top priority. Should a report go
unnoticed for more than a week, please send a message in the original
report thread.
Once acknowledged, a fix should be available and a new version
released within a week.
Security advisories will be made public after a fix and new version
have been released, or the advisory has been declined.

View file

@ -1,90 +0,0 @@
<?php
$PROCEDURE = ($_GET["name"] ? $_GET["name"] : $_GET["call"]);
page_header(lang('Call') . ": " . h($PROCEDURE), $error);
$routine = routine($_GET["call"], (isset($_GET["callf"]) ? "FUNCTION" : "PROCEDURE"));
$in = array();
$out = array();
foreach ($routine["fields"] as $i => $field) {
if (substr($field["inout"], -3) == "OUT") {
$out[$i] = "@" . idf_escape($field["field"]) . " AS " . idf_escape($field["field"]);
}
if (!$field["inout"] || substr($field["inout"], 0, 2) == "IN") {
$in[] = $i;
}
}
if (!$error && $_POST) {
$call = array();
foreach ($routine["fields"] as $key => $field) {
if (in_array($key, $in)) {
$val = process_input($field);
if ($val === false) {
$val = "''";
}
if (isset($out[$key])) {
$connection->query("SET @" . idf_escape($field["field"]) . " = $val");
}
}
$call[] = (isset($out[$key]) ? "@" . idf_escape($field["field"]) : $val);
}
$query = (isset($_GET["callf"]) ? "SELECT" : "CALL") . " " . table($PROCEDURE) . "(" . implode(", ", $call) . ")";
$start = microtime(true);
$result = $connection->multi_query($query);
$affected = $connection->affected_rows; // getting warnigns overwrites this
echo $adminer->selectQuery($query, $start, !$result);
if (!$result) {
echo "<p class='error'>" . error() . "\n";
} else {
$connection2 = connect();
if (is_object($connection2)) {
$connection2->select_db(DB);
}
do {
$result = $connection->store_result();
if (is_object($result)) {
select($result, $connection2);
} else {
echo "<p class='message'>" . lang('Routine has been called, %d row(s) affected.', $affected)
. " <span class='time'>" . @date("H:i:s") . "</span>\n" // @ - time zone may be not set
;
}
} while ($connection->next_result());
if ($out) {
select($connection->query("SELECT " . implode(", ", $out)));
}
}
}
?>
<form action="" method="post">
<?php
if ($in) {
echo "<table cellspacing='0' class='layout'>\n";
foreach ($in as $key) {
$field = $routine["fields"][$key];
$name = $field["field"];
echo "<tr><th>" . $adminer->fieldName($field);
$value = $_POST["fields"][$name];
if ($value != "") {
if ($field["type"] == "enum") {
$value = +$value;
}
if ($field["type"] == "set") {
$value = array_sum($value);
}
}
input($field, $value, (string) $_POST["function"][$name]); // param name can be empty
echo "\n";
}
echo "</table>\n";
}
?>
<p>
<input type="submit" value="<?php echo lang('Call'); ?>">
<input type="hidden" name="token" value="<?php echo $token; ?>">
</form>

View file

@ -1,229 +0,0 @@
<?php
$TABLE = $_GET["create"];
$partition_by = array();
foreach (array('HASH', 'LINEAR HASH', 'KEY', 'LINEAR KEY', 'RANGE', 'LIST') as $key) {
$partition_by[$key] = $key;
}
$referencable_primary = referencable_primary($TABLE);
$foreign_keys = array();
foreach ($referencable_primary as $table_name => $field) {
$foreign_keys[str_replace("`", "``", $table_name) . "`" . str_replace("`", "``", $field["field"])] = $table_name; // not idf_escape() - used in JS
}
$orig_fields = array();
$table_status = array();
if ($TABLE != "") {
$orig_fields = fields($TABLE);
$table_status = table_status($TABLE);
if (!$table_status) {
$error = lang('No tables.');
}
}
$row = $_POST;
$row["fields"] = (array) $row["fields"];
if ($row["auto_increment_col"]) {
$row["fields"][$row["auto_increment_col"]]["auto_increment"] = true;
}
if ($_POST) {
set_adminer_settings(array("comments" => $_POST["comments"], "defaults" => $_POST["defaults"]));
}
if ($_POST && !process_fields($row["fields"]) && !$error) {
if ($_POST["drop"]) {
queries_redirect(substr(ME, 0, -1), lang('Table has been dropped.'), drop_tables(array($TABLE)));
} else {
$fields = array();
$all_fields = array();
$use_all_fields = false;
$foreign = array();
$orig_field = reset($orig_fields);
$after = " FIRST";
foreach ($row["fields"] as $key => $field) {
$foreign_key = $foreign_keys[$field["type"]];
$type_field = ($foreign_key !== null ? $referencable_primary[$foreign_key] : $field); //! can collide with user defined type
if ($field["field"] != "") {
if (!$field["has_default"]) {
$field["default"] = null;
}
if ($key == $row["auto_increment_col"]) {
$field["auto_increment"] = true;
}
$process_field = process_field($field, $type_field);
$all_fields[] = array($field["orig"], $process_field, $after);
if (!$orig_field || $process_field != process_field($orig_field, $orig_field)) {
$fields[] = array($field["orig"], $process_field, $after);
if ($field["orig"] != "" || $after) {
$use_all_fields = true;
}
}
if ($foreign_key !== null) {
$foreign[idf_escape($field["field"])] = ($TABLE != "" && $jush != "sqlite" ? "ADD" : " ") . format_foreign_key(array(
'table' => $foreign_keys[$field["type"]],
'source' => array($field["field"]),
'target' => array($type_field["field"]),
'on_delete' => $field["on_delete"],
));
}
$after = " AFTER " . idf_escape($field["field"]);
} elseif ($field["orig"] != "") {
$use_all_fields = true;
$fields[] = array($field["orig"]);
}
if ($field["orig"] != "") {
$orig_field = next($orig_fields);
if (!$orig_field) {
$after = "";
}
}
}
$partitioning = "";
if ($partition_by[$row["partition_by"]]) {
$partitions = array();
if ($row["partition_by"] == 'RANGE' || $row["partition_by"] == 'LIST') {
foreach (array_filter($row["partition_names"]) as $key => $val) {
$value = $row["partition_values"][$key];
$partitions[] = "\n PARTITION " . idf_escape($val) . " VALUES " . ($row["partition_by"] == 'RANGE' ? "LESS THAN" : "IN") . ($value != "" ? " ($value)" : " MAXVALUE"); //! SQL injection
}
}
$partitioning .= "\nPARTITION BY $row[partition_by]($row[partition])" . ($partitions // $row["partition"] can be expression, not only column
? " (" . implode(",", $partitions) . "\n)"
: ($row["partitions"] ? " PARTITIONS " . (+$row["partitions"]) : "")
);
} elseif (support("partitioning") && preg_match("~partitioned~", $table_status["Create_options"])) {
$partitioning .= "\nREMOVE PARTITIONING";
}
$message = lang('Table has been altered.');
if ($TABLE == "") {
cookie("adminer_engine", $row["Engine"]);
$message = lang('Table has been created.');
}
$name = trim($row["name"]);
queries_redirect(ME . (support("table") ? "table=" : "select=") . urlencode($name), $message, alter_table(
$TABLE,
$name,
($jush == "sqlite" && ($use_all_fields || $foreign) ? $all_fields : $fields),
$foreign,
($row["Comment"] != $table_status["Comment"] ? $row["Comment"] : null),
($row["Engine"] && $row["Engine"] != $table_status["Engine"] ? $row["Engine"] : ""),
($row["Collation"] && $row["Collation"] != $table_status["Collation"] ? $row["Collation"] : ""),
($row["Auto_increment"] != "" ? number($row["Auto_increment"]) : ""),
$partitioning
));
}
}
page_header(($TABLE != "" ? lang('Alter table') : lang('Create table')), $error, array("table" => $TABLE), h($TABLE));
if (!$_POST) {
$row = array(
"Engine" => $_COOKIE["adminer_engine"],
"fields" => array(array("field" => "", "type" => (isset($types["int"]) ? "int" : (isset($types["integer"]) ? "integer" : "")), "on_update" => "")),
"partition_names" => array(""),
);
if ($TABLE != "") {
$row = $table_status;
$row["name"] = $TABLE;
$row["fields"] = array();
if (!$_GET["auto_increment"]) { // don't prefill by original Auto_increment for the sake of performance and not reusing deleted ids
$row["Auto_increment"] = "";
}
foreach ($orig_fields as $field) {
$field["has_default"] = isset($field["default"]);
$row["fields"][] = $field;
}
if (support("partitioning")) {
$from = "FROM information_schema.PARTITIONS WHERE TABLE_SCHEMA = " . q(DB) . " AND TABLE_NAME = " . q($TABLE);
$result = $connection->query("SELECT PARTITION_METHOD, PARTITION_ORDINAL_POSITION, PARTITION_EXPRESSION $from ORDER BY PARTITION_ORDINAL_POSITION DESC LIMIT 1");
list($row["partition_by"], $row["partitions"], $row["partition"]) = $result->fetch_row();
$partitions = get_key_vals("SELECT PARTITION_NAME, PARTITION_DESCRIPTION $from AND PARTITION_NAME != '' ORDER BY PARTITION_ORDINAL_POSITION");
$partitions[""] = "";
$row["partition_names"] = array_keys($partitions);
$row["partition_values"] = array_values($partitions);
}
}
}
$collations = collations();
$engines = engines();
// case of engine may differ
foreach ($engines as $engine) {
if (!strcasecmp($engine, $row["Engine"])) {
$row["Engine"] = $engine;
break;
}
}
?>
<form action="" method="post" id="form">
<p>
<?php if (support("columns") || $TABLE == "") { ?>
<?php echo lang('Table name'); ?>: <input name="name" data-maxlength="64" value="<?php echo h($row["name"]); ?>" autocapitalize="off">
<?php if ($TABLE == "" && !$_POST) { echo script("focus(qs('#form')['name']);"); } ?>
<?php echo ($engines ? "<select name='Engine'>" . optionlist(array("" => "(" . lang('engine') . ")") + $engines, $row["Engine"]) . "</select>" . on_help("getTarget(event).value", 1) . script("qsl('select').onchange = helpClose;") : ""); ?>
<?php echo ($collations && !preg_match("~sqlite|mssql~", $jush) ? html_select("Collation", array("" => "(" . lang('collation') . ")") + $collations, $row["Collation"]) : ""); ?>
<input type="submit" value="<?php echo lang('Save'); ?>">
<?php } ?>
<?php if (support("columns")) { ?>
<div class="scrollable">
<table cellspacing="0" id="edit-fields" class="nowrap">
<?php
edit_fields($row["fields"], $collations, "TABLE", $foreign_keys);
?>
</table>
<?php echo script("editFields();"); ?>
</div>
<p>
<?php echo lang('Auto Increment'); ?>: <input type="number" name="Auto_increment" size="6" value="<?php echo h($row["Auto_increment"]); ?>">
<?php echo checkbox("defaults", 1, ($_POST ? $_POST["defaults"] : adminer_setting("defaults")), lang('Default values'), "columnShow(this.checked, 5)", "jsonly"); ?>
<?php
$comments = ($_POST ? $_POST["comments"] : adminer_setting("comments"));
echo (support("comment")
? checkbox("comments", 1, $comments, lang('Comment'), "editingCommentsClick(this, true);", "jsonly")
. ' ' . (preg_match('~\n~', $row["Comment"])
? "<textarea name='Comment' rows='2' cols='20'" . ($comments ? "" : " class='hidden'") . ">" . h($row["Comment"]) . "</textarea>"
: '<input name="Comment" value="' . h($row["Comment"]) . '" data-maxlength="' . (min_version(5.5) ? 2048 : 60) . '"' . ($comments ? "" : " class='hidden'") . '>'
)
: '')
;
?>
<p>
<input type="submit" value="<?php echo lang('Save'); ?>">
<?php } ?>
<?php if ($TABLE != "") { ?><input type="submit" name="drop" value="<?php echo lang('Drop'); ?>"><?php echo confirm(lang('Drop %s?', $TABLE)); ?><?php } ?>
<?php
if (support("partitioning")) {
$partition_table = preg_match('~RANGE|LIST~', $row["partition_by"]);
print_fieldset("partition", lang('Partition by'), $row["partition_by"]);
?>
<p>
<?php echo "<select name='partition_by'>" . optionlist(array("" => "") + $partition_by, $row["partition_by"]) . "</select>" . on_help("getTarget(event).value.replace(/./, 'PARTITION BY \$&')", 1) . script("qsl('select').onchange = partitionByChange;"); ?>
(<input name="partition" value="<?php echo h($row["partition"]); ?>">)
<?php echo lang('Partitions'); ?>: <input type="number" name="partitions" class="size<?php echo ($partition_table || !$row["partition_by"] ? " hidden" : ""); ?>" value="<?php echo h($row["partitions"]); ?>">
<table cellspacing="0" id="partition-table"<?php echo ($partition_table ? "" : " class='hidden'"); ?>>
<thead><tr><th><?php echo lang('Partition name'); ?><th><?php echo lang('Values'); ?></thead>
<?php
foreach ($row["partition_names"] as $key => $val) {
echo '<tr>';
echo '<td><input name="partition_names[]" value="' . h($val) . '" autocapitalize="off">';
echo ($key == count($row["partition_names"]) - 1 ? script("qsl('input').oninput = partitionNameChange;") : '');
echo '<td><input name="partition_values[]" value="' . h($row["partition_values"][$key]) . '">';
}
?>
</table>
</div></fieldset>
<?php
}
?>
<input type="hidden" name="token" value="<?php echo $token; ?>">
</form>

View file

@ -1,80 +0,0 @@
<?php
$row = $_POST;
if ($_POST && !$error && !isset($_POST["add_x"])) { // add is an image and PHP changes add.x to add_x
$name = trim($row["name"]);
if ($_POST["drop"]) {
$_GET["db"] = ""; // to save in global history
queries_redirect(remove_from_uri("db|database"), lang('Database has been dropped.'), drop_databases(array(DB)));
} elseif (DB !== $name) {
// create or rename database
if (DB != "") {
$_GET["db"] = $name;
queries_redirect(preg_replace('~\bdb=[^&]*&~', '', ME) . "db=" . urlencode($name), lang('Database has been renamed.'), rename_database($name, $row["collation"]));
} else {
$databases = explode("\n", str_replace("\r", "", $name));
$success = true;
$last = "";
foreach ($databases as $db) {
if (count($databases) == 1 || $db != "") { // ignore empty lines but always try to create single database
if (!create_database($db, $row["collation"])) {
$success = false;
}
$last = $db;
}
}
restart_session();
set_session("dbs", null);
queries_redirect(ME . "db=" . urlencode($last), lang('Database has been created.'), $success);
}
} else {
// alter database
if (!$row["collation"]) {
redirect(substr(ME, 0, -1));
}
query_redirect("ALTER DATABASE " . idf_escape($name) . (preg_match('~^[a-z0-9_]+$~i', $row["collation"]) ? " COLLATE $row[collation]" : ""), substr(ME, 0, -1), lang('Database has been altered.'));
}
}
page_header(DB != "" ? lang('Alter database') : lang('Create database'), $error, array(), h(DB));
$collations = collations();
$name = DB;
if ($_POST) {
$name = $row["name"];
} elseif (DB != "") {
$row["collation"] = db_collation(DB, $collations);
} elseif ($jush == "sql") {
// propose database name with limited privileges
foreach (get_vals("SHOW GRANTS") as $grant) {
if (preg_match('~ ON (`(([^\\\\`]|``|\\\\.)*)%`\.\*)?~', $grant, $match) && $match[1]) {
$name = stripcslashes(idf_unescape("`$match[2]`"));
break;
}
}
}
?>
<form action="" method="post">
<p>
<?php
echo ($_POST["add_x"] || strpos($name, "\n")
? '<textarea id="name" name="name" rows="10" cols="40">' . h($name) . '</textarea><br>'
: '<input name="name" id="name" value="' . h($name) . '" data-maxlength="64" autocapitalize="off">'
) . "\n" . ($collations ? html_select("collation", array("" => "(" . lang('collation') . ")") + $collations, $row["collation"]) . doc_link(array(
'sql' => "charset-charsets.html",
'mariadb' => "supported-character-sets-and-collations/",
'mssql' => "ms187963.aspx",
)) : "");
echo script("focus(qs('#name'));");
?>
<input type="submit" value="<?php echo lang('Save'); ?>">
<?php
if (DB != "") {
echo "<input type='submit' name='drop' value='" . lang('Drop') . "'>" . confirm(lang('Drop %s?', DB)) . "\n";
} elseif (!$_POST["add_x"] && $_GET["db"] == "") {
echo "<input type='image' class='icon' name='add' src='../adminer/static/plus.gif' alt='+' title='" . lang('Add next') . "'>\n";
}
?>
<input type="hidden" name="token" value="<?php echo $token; ?>">
</form>

View file

@ -1,246 +0,0 @@
<?php
$tables_views = array_merge((array) $_POST["tables"], (array) $_POST["views"]);
if ($tables_views && !$error && !$_POST["search"]) {
$result = true;
$message = "";
if ($jush == "sql" && $_POST["tables"] && count($_POST["tables"]) > 1 && ($_POST["drop"] || $_POST["truncate"] || $_POST["copy"])) {
queries("SET foreign_key_checks = 0"); // allows to truncate or drop several tables at once
}
if ($_POST["truncate"]) {
if ($_POST["tables"]) {
$result = truncate_tables($_POST["tables"]);
}
$message = lang('Tables have been truncated.');
} elseif ($_POST["move"]) {
$result = move_tables((array) $_POST["tables"], (array) $_POST["views"], $_POST["target"]);
$message = lang('Tables have been moved.');
} elseif ($_POST["copy"]) {
$result = copy_tables((array) $_POST["tables"], (array) $_POST["views"], $_POST["target"]);
$message = lang('Tables have been copied.');
} elseif ($_POST["drop"]) {
if ($_POST["views"]) {
$result = drop_views($_POST["views"]);
}
if ($result && $_POST["tables"]) {
$result = drop_tables($_POST["tables"]);
}
$message = lang('Tables have been dropped.');
} elseif ($jush != "sql") {
$result = ($jush == "sqlite"
? queries("VACUUM")
: apply_queries("VACUUM" . ($_POST["optimize"] ? "" : " ANALYZE"), $_POST["tables"])
);
$message = lang('Tables have been optimized.');
} elseif (!$_POST["tables"]) {
$message = lang('No tables.');
} elseif ($result = queries(($_POST["optimize"] ? "OPTIMIZE" : ($_POST["check"] ? "CHECK" : ($_POST["repair"] ? "REPAIR" : "ANALYZE"))) . " TABLE " . implode(", ", array_map('idf_escape', $_POST["tables"])))) {
while ($row = $result->fetch_assoc()) {
$message .= "<b>" . h($row["Table"]) . "</b>: " . h($row["Msg_text"]) . "<br>";
}
}
queries_redirect(substr(ME, 0, -1), $message, $result);
}
page_header(($_GET["ns"] == "" ? lang('Database') . ": " . h(DB) : lang('Schema') . ": " . h($_GET["ns"])), $error, true);
if ($adminer->homepage()) {
if ($_GET["ns"] !== "") {
echo "<h3 id='tables-views'>" . lang('Tables and views') . "</h3>\n";
$tables_list = tables_list();
if (!$tables_list) {
echo "<p class='message'>" . lang('No tables.') . "\n";
} else {
echo "<form action='' method='post'>\n";
if (support("table")) {
echo "<fieldset><legend>" . lang('Search data in tables') . " <span id='selected2'></span></legend><div>";
echo "<input type='search' name='query' value='" . h($_POST["query"]) . "'>";
echo script("qsl('input').onkeydown = partialArg(bodyKeydown, 'search');", "");
echo " <input type='submit' name='search' value='" . lang('Search') . "'>\n";
if ($adminer->operator_regexp !== null) {
echo "<p><label><input type='checkbox' name='regexp' value='1'" . (empty($_POST['regexp']) ? '' : ' checked') . '>' . lang('as a regular expression') . '</label>';
echo doc_link(array('sql' => 'regexp.html', 'pgsql' => 'functions-matching.html#FUNCTIONS-POSIX-REGEXP')) . "</p>\n";
}
echo "</div></fieldset>\n";
if ($_POST["search"] && $_POST["query"] != "") {
$_GET["where"][0]["op"] = $adminer->operator_regexp === null || empty($_POST['regexp']) ? "LIKE %%" : $adminer->operator_regexp;
search_tables();
}
}
echo "<div class='scrollable'>\n";
echo "<table cellspacing='0' class='nowrap checkable'>\n";
echo script("mixin(qsl('table'), {onclick: tableClick, ondblclick: partialArg(tableClick, true)});");
echo '<thead><tr class="wrap">';
echo '<td><input id="check-all" type="checkbox" class="jsonly">' . script("qs('#check-all').onclick = partial(formCheck, /^(tables|views)\[/);", "");
echo '<th>' . lang('Table');
echo '<td>' . lang('Engine') . doc_link(array('sql' => 'storage-engines.html'));
echo '<td>' . lang('Collation') . doc_link(array('sql' => 'charset-charsets.html', 'mariadb' => 'supported-character-sets-and-collations/'));
echo '<td>' . lang('Data Length') . doc_link(array('sql' => 'show-table-status.html', 'pgsql' => 'functions-admin.html#FUNCTIONS-ADMIN-DBOBJECT', 'oracle' => 'REFRN20286'));
echo '<td>' . lang('Index Length') . doc_link(array('sql' => 'show-table-status.html', 'pgsql' => 'functions-admin.html#FUNCTIONS-ADMIN-DBOBJECT'));
echo '<td>' . lang('Data Free') . doc_link(array('sql' => 'show-table-status.html'));
echo '<td>' . lang('Auto Increment') . doc_link(array('sql' => 'example-auto-increment.html', 'mariadb' => 'auto_increment/'));
echo '<td>' . lang('Rows') . doc_link(array('sql' => 'show-table-status.html', 'pgsql' => 'catalog-pg-class.html#CATALOG-PG-CLASS', 'oracle' => 'REFRN20286'));
echo (support("comment") ? '<td>' . lang('Comment') . doc_link(array('sql' => 'show-table-status.html', 'pgsql' => 'functions-info.html#FUNCTIONS-INFO-COMMENT-TABLE')) : '');
echo "</thead>\n";
$tables = 0;
foreach ($tables_list as $name => $type) {
$view = ($type !== null && !preg_match('~table|sequence~i', $type));
$id = h("Table-" . $name);
echo '<tr' . odd() . '><td>' . checkbox(($view ? "views[]" : "tables[]"), $name, in_array($name, $tables_views, true), "", "", "", $id);
echo '<th>' . (support("table") || support("indexes") ? "<a href='" . h(ME) . "table=" . urlencode($name) . "' title='" . lang('Show structure') . "' id='$id'>" . h($name) . '</a>' : h($name));
if ($view) {
echo '<td colspan="6"><a href="' . h(ME) . "view=" . urlencode($name) . '" title="' . lang('Alter view') . '">' . (preg_match('~materialized~i', $type) ? lang('Materialized view') : lang('View')) . '</a>';
echo '<td align="right"><a href="' . h(ME) . "select=" . urlencode($name) . '" title="' . lang('Select data') . '">?</a>';
} else {
foreach (array(
"Engine" => array(),
"Collation" => array(),
"Data_length" => array("create", lang('Alter table')),
"Index_length" => array("indexes", lang('Alter indexes')),
"Data_free" => array("edit", lang('New item')),
"Auto_increment" => array("auto_increment=1&create", lang('Alter table')),
"Rows" => array("select", lang('Select data')),
) as $key => $link) {
$id = " id='$key-" . h($name) . "'";
echo ($link ? "<td align='right'>" . (support("table") || $key == "Rows" || (support("indexes") && $key != "Data_length")
? "<a href='" . h(ME . "$link[0]=") . urlencode($name) . "'$id title='$link[1]'>?</a>"
: "<span$id>?</span>"
) : "<td id='$key-" . h($name) . "'>");
}
$tables++;
}
echo (support("comment") ? "<td id='Comment-" . h($name) . "'>" : "");
}
echo "<tr><td><th>" . lang('%d in total', count($tables_list));
echo "<td>" . h($jush == "sql" ? $connection->result("SELECT @@default_storage_engine") : "");
echo "<td>" . h(db_collation(DB, collations()));
foreach (array("Data_length", "Index_length", "Data_free") as $key) {
echo "<td align='right' id='sum-$key'>";
}
echo "</table>\n";
echo "</div>\n";
if (!information_schema(DB)) {
echo "<div class='footer'><div>\n";
$vacuum = "<input type='submit' value='" . lang('Vacuum') . "'> " . on_help("'VACUUM'");
$optimize = "<input type='submit' name='optimize' value='" . lang('Optimize') . "'> " . on_help($jush == "sql" ? "'OPTIMIZE TABLE'" : "'VACUUM OPTIMIZE'");
echo "<fieldset><legend>" . lang('Selected') . " <span id='selected'></span></legend><div>"
. ($jush == "sqlite" ? $vacuum
: ($jush == "pgsql" ? $vacuum . $optimize
: ($jush == "sql" ? "<input type='submit' value='" . lang('Analyze') . "'> " . on_help("'ANALYZE TABLE'") . $optimize
. "<input type='submit' name='check' value='" . lang('Check') . "'> " . on_help("'CHECK TABLE'")
. "<input type='submit' name='repair' value='" . lang('Repair') . "'> " . on_help("'REPAIR TABLE'")
: "")))
. "<input type='submit' name='truncate' value='" . lang('Truncate') . "'> " . on_help($jush == "sqlite" ? "'DELETE'" : "'TRUNCATE" . ($jush == "pgsql" ? "'" : " TABLE'")) . confirm()
. "<input type='submit' name='drop' value='" . lang('Drop') . "'>" . on_help("'DROP TABLE'") . confirm() . "\n";
$databases = (support("scheme") ? $adminer->schemas() : $adminer->databases());
if (count($databases) != 1 && $jush != "sqlite") {
$db = (isset($_POST["target"]) ? $_POST["target"] : (support("scheme") ? $_GET["ns"] : DB));
echo "<p>" . lang('Move to other database') . ": ";
echo ($databases ? html_select("target", $databases, $db) : '<input name="target" value="' . h($db) . '" autocapitalize="off">');
echo " <input type='submit' name='move' value='" . lang('Move') . "'>";
echo (support("copy") ? " <input type='submit' name='copy' value='" . lang('Copy') . "'> " . checkbox("overwrite", 1, $_POST["overwrite"], lang('overwrite')) : "");
echo "\n";
}
echo "<input type='hidden' name='all' value=''>"; // used by trCheck()
echo script("qsl('input').onclick = function () { selectCount('selected', formChecked(this, /^(tables|views)\[/));" . (support("table") ? " selectCount('selected2', formChecked(this, /^tables\[/) || $tables);" : "") . " }");
echo "<input type='hidden' name='token' value='$token'>\n";
echo "</div></fieldset>\n";
echo "</div></div>\n";
}
echo "</form>\n";
echo script("tableCheck();");
}
$links = [];
$links[] = "<a href='" . h(ME) . "create='>" . lang('Create table') . "</a>";
if (support("view")) {
$links[] = "<a href='" . h(ME) . "view='>" . lang('Create view') . "</a>";
}
echo generate_linksbar($links);
if (support("routine")) {
echo "<h3 id='routines'>" . lang('Routines') . "</h3>\n";
$routines = routines();
if ($routines) {
echo "<table cellspacing='0'>\n";
echo '<thead><tr><th>' . lang('Name') . '<td>' . lang('Type') . '<td>' . lang('Return type') . "<td></thead>\n";
odd('');
foreach ($routines as $row) {
$name = ($row["SPECIFIC_NAME"] == $row["ROUTINE_NAME"] ? "" : "&name=" . urlencode($row["ROUTINE_NAME"])); // not computed on the pages to be able to print the header first
echo '<tr' . odd() . '>';
echo '<th><a href="' . h(ME . ($row["ROUTINE_TYPE"] != "PROCEDURE" ? 'callf=' : 'call=') . urlencode($row["SPECIFIC_NAME"]) . $name) . '">' . h($row["ROUTINE_NAME"]) . '</a>';
echo '<td>' . h($row["ROUTINE_TYPE"]);
echo '<td>' . h($row["DTD_IDENTIFIER"]);
echo '<td><a href="' . h(ME . ($row["ROUTINE_TYPE"] != "PROCEDURE" ? 'function=' : 'procedure=') . urlencode($row["SPECIFIC_NAME"]) . $name) . '">' . lang('Alter') . "</a>";
}
echo "</table>\n";
}
$links = [];
if (support('procedure')) {
$links[] = "<a href='" . h(ME) . "procedure='>" . lang('Create procedure') . "</a>";
}
$links[] = "<a href='" . h(ME) . "function='>" . lang('Create function') . "</a>";
echo generate_linksbar($links);
}
if (support("sequence")) {
echo "<h3 id='sequences'>" . lang('Sequences') . "</h3>\n";
$sequences = get_vals("SELECT sequence_name FROM information_schema.sequences WHERE sequence_schema = current_schema() ORDER BY sequence_name");
if ($sequences) {
echo "<table cellspacing='0'>\n";
echo "<thead><tr><th>" . lang('Name') . "</thead>\n";
odd('');
foreach ($sequences as $val) {
echo "<tr" . odd() . "><th><a href='" . h(ME) . "sequence=" . urlencode($val) . "'>" . h($val) . "</a>\n";
}
echo "</table>\n";
}
echo generate_linksbar(["<a href='" . h(ME) . "sequence='>" . lang('Create sequence') . "</a>"]);
}
if (support("type")) {
echo "<h3 id='user-types'>" . lang('User types') . "</h3>\n";
$user_types = types();
if ($user_types) {
echo "<table cellspacing='0'>\n";
echo "<thead><tr><th>" . lang('Name') . "</thead>\n";
odd('');
foreach ($user_types as $val) {
echo "<tr" . odd() . "><th><a href='" . h(ME) . "type=" . urlencode($val) . "'>" . h($val) . "</a>\n";
}
echo "</table>\n";
}
echo generate_linksbar(["<a href='" . h(ME) . "type='>" . lang('Create type') . "</a>"]);
}
if (support("event")) {
echo "<h3 id='events'>" . lang('Events') . "</h3>\n";
$rows = get_rows("SHOW EVENTS");
if ($rows) {
echo "<table cellspacing='0'>\n";
echo "<thead><tr><th>" . lang('Name') . "<td>" . lang('Schedule') . "<td>" . lang('Start') . "<td>" . lang('End') . "<td></thead>\n";
foreach ($rows as $row) {
echo "<tr>";
echo "<th>" . h($row["Name"]);
echo "<td>" . ($row["Execute at"] ? lang('At given time') . "<td>" . $row["Execute at"] : lang('Every') . " " . $row["Interval value"] . " " . $row["Interval field"] . "<td>$row[Starts]");
echo "<td>$row[Ends]";
echo '<td><a href="' . h(ME) . 'event=' . urlencode($row["Name"]) . '">' . lang('Alter') . '</a>';
}
echo "</table>\n";
$event_scheduler = $connection->result("SELECT @@event_scheduler");
if ($event_scheduler && $event_scheduler != "ON") {
echo "<p class='error'><code class='jush-sqlset'>event_scheduler</code>: " . h($event_scheduler) . "\n";
}
}
echo generate_linksbar(["<a href='" . h(ME) . "event='>" . lang('Create event') . "</a>"]);
}
if ($tables_list) {
echo script("ajaxSetHtml('" . js_escape(ME) . "script=db');");
}
}
}

View file

@ -1,14 +0,0 @@
<?php
function adminer_object() {
include_once "../plugins/plugin.php";
include_once "../plugins/designs.php";
$designs = array();
foreach (glob("../designs/*", GLOB_ONLYDIR) as $filename) {
$designs["$filename/adminer.css"] = basename($filename);
}
return new AdminerPlugin(array(
new AdminerDesigns($designs),
));
}
include "./index.php";

View file

@ -1,10 +0,0 @@
<?php
$TABLE = $_GET["download"];
$fields = fields($TABLE);
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=" . friendly_url("$TABLE-" . implode("_", $_GET["where"])) . "." . friendly_url($_GET["field"]));
$select = array(idf_escape($_GET["field"]));
$result = $driver->select($TABLE, $select, array(where($_GET, $fields)), $select);
$row = ($result ? $result->fetch_row() : array());
echo $driver->value($row[0], $fields[$_GET["field"]]);
exit; // don't output footer

View file

@ -1,499 +0,0 @@
<?php
$drivers["elastic"] = "Elasticsearch (beta)";
if (isset($_GET["elastic"])) {
define("DRIVER", "elastic");
if (function_exists('json_decode') && ini_bool('allow_url_fopen')) {
class Min_DB {
var $extension = "JSON", $server_info, $errno, $error, $_url, $_db;
/**
* @param string $path
* @param array|null $content
* @param string $method
* @return array|false
*/
function rootQuery($path, array $content = null, $method = 'GET') {
@ini_set('track_errors', 1); // @ - may be disabled
$file = @file_get_contents("$this->_url/" . ltrim($path, '/'), false, stream_context_create(array('http' => array(
'method' => $method,
'content' => $content !== null ? json_encode($content) : null,
'header' => $content !== null ? 'Content-Type: application/json' : [],
'ignore_errors' => 1,
'follow_location' => 0,
'max_redirects' => 0,
))));
if ($file === false) {
$this->error = lang('Invalid server or credentials.');
return false;
}
$return = json_decode($file, true);
if ($return === null) {
$this->error = lang('Invalid server or credentials.');
return false;
}
if (!preg_match('~^HTTP/[0-9.]+ 2~i', $http_response_header[0])) {
if (isset($return['error']['root_cause'][0]['type'])) {
$this->error = $return['error']['root_cause'][0]['type'] . ": " . $return['error']['root_cause'][0]['reason'];
} else {
$this->error = lang('Invalid server or credentials.');
}
return false;
}
return $return;
}
/** Performs query relative to actual selected DB
* @param string $path
* @param array|null $content
* @param string $method
* @return array|false
*/
function query($path, array $content = null, $method = 'GET') {
return $this->rootQuery(($this->_db != "" ? "$this->_db/" : "/") . ltrim($path, '/'), $content, $method);
}
/**
* @param string $server
* @param string $username
* @param string $password
* @return bool
*/
function connect($server, $username, $password) {
$this->_url = build_http_url($server, $username, $password, "localhost", 9200);
$return = $this->query('');
if (!$return) {
return false;
}
if (!isset($return['version']['number'])) {
$this->error = lang('Invalid server or credentials.');
return false;
}
$this->server_info = $return['version']['number'];
return true;
}
function select_db($database) {
$this->_db = $database;
return true;
}
function quote($string) {
return $string;
}
}
class Min_Result {
var $num_rows, $_rows;
function __construct($rows) {
$this->num_rows = count($rows);
$this->_rows = $rows;
reset($this->_rows);
}
function fetch_assoc() {
$return = current($this->_rows);
next($this->_rows);
return $return;
}
function fetch_row() {
return array_values($this->fetch_assoc());
}
}
}
class Min_Driver extends Min_SQL {
function select($table, $select, $where, $group, $order = array(), $limit = 1, $page = 0, $print = false) {
global $adminer;
$data = array();
$query = "$table/_search";
if ($select != array("*")) {
$data["fields"] = $select;
}
if ($order) {
$sort = array();
foreach ($order as $col) {
$col = preg_replace('~ DESC$~', '', $col, 1, $count);
$sort[] = ($count ? array($col => "desc") : $col);
}
$data["sort"] = $sort;
}
if ($limit) {
$data["size"] = +$limit;
if ($page) {
$data["from"] = ($page * $limit);
}
}
foreach ($where as $val) {
list($col, $op, $val) = explode(" ", $val, 3);
if ($col == "_id") {
$data["query"]["ids"]["values"][] = $val;
}
elseif ($col . $val != "") {
$term = array("term" => array(($col != "" ? $col : "_all") => $val));
if ($op == "=") {
$data["query"]["filtered"]["filter"]["and"][] = $term;
} else {
$data["query"]["filtered"]["query"]["bool"]["must"][] = $term;
}
}
}
if ($data["query"] && !$data["query"]["filtered"]["query"] && !$data["query"]["ids"]) {
$data["query"]["filtered"]["query"] = array("match_all" => array());
}
$start = microtime(true);
$search = $this->_conn->query($query, $data);
if ($print) {
echo $adminer->selectQuery("$query: " . json_encode($data), $start, !$search);
}
if (!$search) {
return false;
}
$return = array();
foreach ($search['hits']['hits'] as $hit) {
$row = array();
if ($select == array("*")) {
$row["_id"] = $hit["_id"];
}
$fields = $hit['_source'];
if ($select != array("*")) {
$fields = array();
foreach ($select as $key) {
$fields[$key] = $hit['fields'][$key];
}
}
foreach ($fields as $key => $val) {
if ($data["fields"]) {
$val = $val[0];
}
$row[$key] = (is_array($val) ? json_encode($val) : $val); //! display JSON and others differently
}
$return[] = $row;
}
return new Min_Result($return);
}
function update($type, $record, $queryWhere, $limit = 0, $separator = "\n") {
//! use $limit
$parts = preg_split('~ *= *~', $queryWhere);
if (count($parts) == 2) {
$id = trim($parts[1]);
$query = "$type/$id";
return $this->_conn->query($query, $record, 'POST');
}
return false;
}
function insert($type, $record) {
$id = ""; //! user should be able to inform _id
$query = "$type/$id";
$response = $this->_conn->query($query, $record, 'POST');
$this->_conn->last_id = $response['_id'];
return $response['created'];
}
function delete($type, $queryWhere, $limit = 0) {
//! use $limit
$ids = array();
if (is_array($_GET["where"]) && $_GET["where"]["_id"]) {
$ids[] = $_GET["where"]["_id"];
}
if (is_array($_POST['check'])) {
foreach ($_POST['check'] as $check) {
$parts = preg_split('~ *= *~', $check);
if (count($parts) == 2) {
$ids[] = trim($parts[1]);
}
}
}
$this->_conn->affected_rows = 0;
foreach ($ids as $id) {
$query = "{$type}/{$id}";
$response = $this->_conn->query($query, '{}', 'DELETE');
if (is_array($response) && $response['found'] == true) {
$this->_conn->affected_rows++;
}
}
return $this->_conn->affected_rows;
}
}
function connect() {
global $adminer;
$connection = new Min_DB;
list($server, $username, $password) = $adminer->credentials();
if ($password != "" && $connection->connect($server, $username, "")) {
return lang('Database does not support password.');
}
if ($connection->connect($server, $username, $password)) {
return $connection;
}
return $connection->error;
}
function support($feature) {
return preg_match("~database|table|columns~", $feature);
}
function logged_user() {
global $adminer;
$credentials = $adminer->credentials();
return $credentials[1];
}
function get_databases() {
global $connection;
$return = $connection->rootQuery('_aliases');
if ($return) {
$return = array_keys($return);
sort($return, SORT_STRING);
}
return $return;
}
function collations() {
return array();
}
function db_collation($db, $collations) {
}
function engines() {
return array();
}
function count_tables($databases) {
global $connection;
$return = array();
$result = $connection->query('_stats');
if ($result && $result['indices']) {
$indices = $result['indices'];
foreach ($indices as $indice => $stats) {
$indexing = $stats['total']['indexing'];
$return[$indice] = $indexing['index_total'];
}
}
return $return;
}
function tables_list() {
global $connection;
if (min_version(6)) {
return array('_doc' => 'table');
}
$return = $connection->query('_mapping');
if ($return) {
$return = array_fill_keys(array_keys($return[$connection->_db]["mappings"]), 'table');
}
return $return;
}
function table_status($name = "", $fast = false) {
global $connection;
$search = $connection->query("_search", array(
"size" => 0,
"aggregations" => array(
"count_by_type" => array(
"terms" => array(
"field" => "_type"
)
)
)
), "POST");
$return = array();
if ($search) {
$tables = $search["aggregations"]["count_by_type"]["buckets"];
foreach ($tables as $table) {
$return[$table["key"]] = array(
"Name" => $table["key"],
"Engine" => "table",
"Rows" => $table["doc_count"],
);
if ($name != "" && $name == $table["key"]) {
return $return[$name];
}
}
}
return $return;
}
function error() {
global $connection;
return h($connection->error);
}
function information_schema() {
}
function is_view($table_status) {
}
function indexes($table, $connection2 = null) {
return array(
array("type" => "PRIMARY", "columns" => array("_id")),
);
}
function fields($table) {
global $connection;
$mappings = array();
if (min_version(6)) {
$result = $connection->query("_mapping");
if ($result) {
$mappings = $result[$connection->_db]['mappings']['properties'];
}
} else {
$result = $connection->query("$table/_mapping");
if ($result) {
$mappings = $result[$table]['properties'];
if (!$mappings) {
$mappings = $result[$connection->_db]['mappings'][$table]['properties'];
}
}
}
$return = array();
if ($mappings) {
foreach ($mappings as $name => $field) {
$return[$name] = array(
"field" => $name,
"full_type" => $field["type"],
"type" => $field["type"],
"privileges" => array("insert" => 1, "select" => 1, "update" => 1),
);
if ($field["properties"]) { // only leaf fields can be edited
unset($return[$name]["privileges"]["insert"]);
unset($return[$name]["privileges"]["update"]);
}
}
}
return $return;
}
function foreign_keys($table) {
return array();
}
function table($idf) {
return $idf;
}
function idf_escape($idf) {
return $idf;
}
function convert_field($field) {
}
function unconvert_field($field, $return) {
return $return;
}
function fk_support($table_status) {
}
function found_rows($table_status, $where) {
return null;
}
/** Create index
* @param string
* @return mixed
*/
function create_database($db) {
global $connection;
return $connection->rootQuery(urlencode($db), null, 'PUT');
}
/** Remove index
* @param array
* @return mixed
*/
function drop_databases($databases) {
global $connection;
return $connection->rootQuery(urlencode(implode(',', $databases)), array(), 'DELETE');
}
/** Alter type
* @param array
* @return mixed
*/
function alter_table($table, $name, $fields, $foreign, $comment, $engine, $collation, $auto_increment, $partitioning) {
global $connection;
$properties = array();
foreach ($fields as $f) {
$field_name = trim($f[1][0]);
$field_type = trim($f[1][1] ? $f[1][1] : "text");
$properties[$field_name] = array(
'type' => $field_type
);
}
if (!empty($properties)) {
$properties = array('properties' => $properties);
}
return $connection->query("_mapping/{$name}", $properties, 'PUT');
}
/** Drop types
* @param array
* @return bool
*/
function drop_tables($tables) {
global $connection;
$return = true;
foreach ($tables as $table) { //! convert to bulk api
$return = $return && $connection->query(urlencode($table), array(), 'DELETE');
}
return $return;
}
function last_id() {
global $connection;
return $connection->last_id;
}
function driver_config() {
$types = array();
$structured_types = array();
foreach (array(
lang('Numbers') => array("long" => 3, "integer" => 5, "short" => 8, "byte" => 10, "double" => 20, "float" => 66, "half_float" => 12, "scaled_float" => 21),
lang('Date and time') => array("date" => 10),
lang('Strings') => array("string" => 65535, "text" => 65535),
lang('Binary') => array("binary" => 255),
) as $key => $val) {
$types += $val;
$structured_types[$key] = array_keys($val);
}
return array(
'possible_drivers' => array("json + allow_url_fopen"),
'jush' => "elastic",
'operators' => array("=", "query"),
'functions' => array(),
'grouping' => array(),
'edit_functions' => array(array("json")),
'types' => $types,
'structured_types' => $structured_types,
);
}
}

View file

@ -1,748 +0,0 @@
<?php
$drivers["mongo"] = "MongoDB (alpha)";
if (isset($_GET["mongo"])) {
define("DRIVER", "mongo");
if (class_exists('MongoDB')) {
class Min_DB {
var $extension = "Mongo", $server_info = MongoClient::VERSION, $error, $last_id, $_link, $_db;
function connect($uri, $options) {
try {
$this->_link = new MongoClient($uri, $options);
if ($options["password"] != "") {
$options["password"] = "";
try {
new MongoClient($uri, $options);
$this->error = lang('Database does not support password.');
} catch (Exception $e) {
// this is what we want
}
}
} catch (Exception $e) {
$this->error = $e->getMessage();
}
}
function query($query) {
return false;
}
function select_db($database) {
try {
$this->_db = $this->_link->selectDB($database);
return true;
} catch (Exception $ex) {
$this->error = $ex->getMessage();
return false;
}
}
function quote($string) {
return $string;
}
}
class Min_Result {
var $num_rows, $_rows = array(), $_offset = 0, $_charset = array();
function __construct($result) {
foreach ($result as $item) {
$row = array();
foreach ($item as $key => $val) {
if (is_a($val, 'MongoBinData')) {
$this->_charset[$key] = 63;
}
$row[$key] =
(is_a($val, 'MongoId') ? "ObjectId(\"$val\")" :
(is_a($val, 'MongoDate') ? gmdate("Y-m-d H:i:s", $val->sec) . " GMT" :
(is_a($val, 'MongoBinData') ? $val->bin : //! allow downloading
(is_a($val, 'MongoRegex') ? "$val" :
(is_object($val) ? get_class($val) : // MongoMinKey, MongoMaxKey
$val
)))));
}
$this->_rows[] = $row;
foreach ($row as $key => $val) {
if (!isset($this->_rows[0][$key])) {
$this->_rows[0][$key] = null;
}
}
}
$this->num_rows = count($this->_rows);
}
function fetch_assoc() {
$row = current($this->_rows);
if (!$row) {
return $row;
}
$return = array();
foreach ($this->_rows[0] as $key => $val) {
$return[$key] = $row[$key];
}
next($this->_rows);
return $return;
}
function fetch_row() {
$return = $this->fetch_assoc();
if (!$return) {
return $return;
}
return array_values($return);
}
function fetch_field() {
$keys = array_keys($this->_rows[0]);
$name = $keys[$this->_offset++];
return (object) array(
'name' => $name,
'charsetnr' => $this->_charset[$name],
);
}
}
class Min_Driver extends Min_SQL {
public $primary = "_id";
function select($table, $select, $where, $group, $order = array(), $limit = 1, $page = 0, $print = false) {
$select = ($select == array("*")
? array()
: array_fill_keys($select, true)
);
$sort = array();
foreach ($order as $val) {
$val = preg_replace('~ DESC$~', '', $val, 1, $count);
$sort[$val] = ($count ? -1 : 1);
}
return new Min_Result($this->_conn->_db->selectCollection($table)
->find(array(), $select)
->sort($sort)
->limit($limit != "" ? +$limit : 0)
->skip($page * $limit)
);
}
function insert($table, $set) {
try {
$return = $this->_conn->_db->selectCollection($table)->insert($set);
$this->_conn->errno = $return['code'];
$this->_conn->error = $return['err'];
$this->_conn->last_id = $set['_id'];
return !$return['err'];
} catch (Exception $ex) {
$this->_conn->error = $ex->getMessage();
return false;
}
}
}
function get_databases($flush) {
global $connection;
$return = array();
$dbs = $connection->_link->listDBs();
foreach ($dbs['databases'] as $db) {
$return[] = $db['name'];
}
return $return;
}
function count_tables($databases) {
global $connection;
$return = array();
foreach ($databases as $db) {
$return[$db] = count($connection->_link->selectDB($db)->getCollectionNames(true));
}
return $return;
}
function tables_list() {
global $connection;
return array_fill_keys($connection->_db->getCollectionNames(true), 'table');
}
function drop_databases($databases) {
global $connection;
foreach ($databases as $db) {
$response = $connection->_link->selectDB($db)->drop();
if (!$response['ok']) {
return false;
}
}
return true;
}
function indexes($table, $connection2 = null) {
global $connection;
$return = array();
foreach ($connection->_db->selectCollection($table)->getIndexInfo() as $index) {
$descs = array();
foreach ($index["key"] as $column => $type) {
$descs[] = ($type == -1 ? '1' : null);
}
$return[$index["name"]] = array(
"type" => ($index["name"] == "_id_" ? "PRIMARY" : ($index["unique"] ? "UNIQUE" : "INDEX")),
"columns" => array_keys($index["key"]),
"lengths" => array(),
"descs" => $descs,
);
}
return $return;
}
function fields($table) {
return fields_from_edit();
}
function found_rows($table_status, $where) {
global $connection;
//! don't call count_rows()
return $connection->_db->selectCollection($_GET["select"])->count($where);
}
$operators = array("=");
$operator_regexp = null;
} elseif (class_exists('MongoDB\Driver\Manager')) {
class Min_DB {
var $extension = "MongoDB", $server_info = MONGODB_VERSION, $affected_rows, $error, $last_id;
/** @var MongoDB\Driver\Manager */
var $_link;
var $_db, $_db_name;
function connect($uri, $options) {
$class = 'MongoDB\Driver\Manager';
$this->_link = new $class($uri, $options);
$this->executeCommand('admin', array('ping' => 1));
}
function executeCommand($db, $command) {
$class = 'MongoDB\Driver\Command';
try {
return $this->_link->executeCommand($db, new $class($command));
} catch (Exception $e) {
$this->error = $e->getMessage();
return array();
}
}
function executeBulkWrite($namespace, $bulk, $counter) {
try {
$results = $this->_link->executeBulkWrite($namespace, $bulk);
$this->affected_rows = $results->$counter();
return true;
} catch (Exception $e) {
$this->error = $e->getMessage();
return false;
}
}
function query($query) {
return false;
}
function select_db($database) {
$this->_db_name = $database;
return true;
}
function quote($string) {
return $string;
}
}
class Min_Result {
var $num_rows, $_rows = array(), $_offset = 0, $_charset = array();
function __construct($result) {
foreach ($result as $item) {
$row = array();
foreach ($item as $key => $val) {
if (is_a($val, 'MongoDB\BSON\Binary')) {
$this->_charset[$key] = 63;
}
$row[$key] =
(is_a($val, 'MongoDB\BSON\ObjectID') ? 'MongoDB\BSON\ObjectID("' . "$val\")" :
(is_a($val, 'MongoDB\BSON\UTCDatetime') ? $val->toDateTime()->format('Y-m-d H:i:s') :
(is_a($val, 'MongoDB\BSON\Binary') ? $val->getData() : //! allow downloading
(is_a($val, 'MongoDB\BSON\Regex') ? "$val" :
(is_object($val) || is_array($val) ? json_encode($val, 256) : // 256 = JSON_UNESCAPED_UNICODE
$val // MongoMinKey, MongoMaxKey
)))));
}
$this->_rows[] = $row;
foreach ($row as $key => $val) {
if (!isset($this->_rows[0][$key])) {
$this->_rows[0][$key] = null;
}
}
}
$this->num_rows = count($this->_rows);
}
function fetch_assoc() {
$row = current($this->_rows);
if (!$row) {
return $row;
}
$return = array();
foreach ($this->_rows[0] as $key => $val) {
$return[$key] = $row[$key];
}
next($this->_rows);
return $return;
}
function fetch_row() {
$return = $this->fetch_assoc();
if (!$return) {
return $return;
}
return array_values($return);
}
function fetch_field() {
$keys = array_keys($this->_rows[0]);
$name = $keys[$this->_offset++];
return (object) array(
'name' => $name,
'charsetnr' => $this->_charset[$name],
);
}
}
class Min_Driver extends Min_SQL {
public $primary = "_id";
function select($table, $select, $where, $group, $order = array(), $limit = 1, $page = 0, $print = false) {
global $connection;
$select = ($select == array("*")
? array()
: array_fill_keys($select, 1)
);
if (count($select) && !isset($select['_id'])) {
$select['_id'] = 0;
}
$where = where_to_query($where);
$sort = array();
foreach ($order as $val) {
$val = preg_replace('~ DESC$~', '', $val, 1, $count);
$sort[$val] = ($count ? -1 : 1);
}
if (isset($_GET['limit']) && is_numeric($_GET['limit']) && $_GET['limit'] > 0) {
$limit = $_GET['limit'];
}
$limit = min(200, max(1, (int) $limit));
$skip = $page * $limit;
$class = 'MongoDB\Driver\Query';
try {
return new Min_Result($connection->_link->executeQuery("$connection->_db_name.$table", new $class($where, array('projection' => $select, 'limit' => $limit, 'skip' => $skip, 'sort' => $sort))));
} catch (Exception $e) {
$connection->error = $e->getMessage();
return false;
}
}
function update($table, $set, $queryWhere, $limit = 0, $separator = "\n") {
global $connection;
$db = $connection->_db_name;
$where = sql_query_where_parser($queryWhere);
$class = 'MongoDB\Driver\BulkWrite';
$bulk = new $class(array());
if (isset($set['_id'])) {
unset($set['_id']);
}
$removeFields = array();
foreach ($set as $key => $value) {
if ($value == 'NULL') {
$removeFields[$key] = 1;
unset($set[$key]);
}
}
$update = array('$set' => $set);
if (count($removeFields)) {
$update['$unset'] = $removeFields;
}
$bulk->update($where, $update, array('upsert' => false));
return $connection->executeBulkWrite("$db.$table", $bulk, 'getModifiedCount');
}
function delete($table, $queryWhere, $limit = 0) {
global $connection;
$db = $connection->_db_name;
$where = sql_query_where_parser($queryWhere);
$class = 'MongoDB\Driver\BulkWrite';
$bulk = new $class(array());
$bulk->delete($where, array('limit' => $limit));
return $connection->executeBulkWrite("$db.$table", $bulk, 'getDeletedCount');
}
function insert($table, $set) {
global $connection;
$db = $connection->_db_name;
$class = 'MongoDB\Driver\BulkWrite';
$bulk = new $class(array());
if ($set['_id'] == '') {
unset($set['_id']);
}
$bulk->insert($set);
return $connection->executeBulkWrite("$db.$table", $bulk, 'getInsertedCount');
}
}
function get_databases($flush) {
global $connection;
$return = array();
foreach ($connection->executeCommand('admin', array('listDatabases' => 1)) as $dbs) {
foreach ($dbs->databases as $db) {
$return[] = $db->name;
}
}
return $return;
}
function count_tables($databases) {
$return = array();
return $return;
}
function tables_list() {
global $connection;
$collections = array();
foreach ($connection->executeCommand($connection->_db_name, array('listCollections' => 1)) as $result) {
$collections[$result->name] = 'table';
}
return $collections;
}
function drop_databases($databases) {
return false;
}
function indexes($table, $connection2 = null) {
global $connection;
$return = array();
foreach ($connection->executeCommand($connection->_db_name, array('listIndexes' => $table)) as $index) {
$descs = array();
$columns = array();
foreach (get_object_vars($index->key) as $column => $type) {
$descs[] = ($type == -1 ? '1' : null);
$columns[] = $column;
}
$return[$index->name] = array(
"type" => ($index->name == "_id_" ? "PRIMARY" : (isset($index->unique) ? "UNIQUE" : "INDEX")),
"columns" => $columns,
"lengths" => array(),
"descs" => $descs,
);
}
return $return;
}
function fields($table) {
global $driver;
$fields = fields_from_edit();
if (!$fields) {
$result = $driver->select($table, array("*"), null, null, array(), 10);
if ($result) {
while ($row = $result->fetch_assoc()) {
foreach ($row as $key => $val) {
$row[$key] = null;
$fields[$key] = array(
"field" => $key,
"type" => "string",
"null" => ($key != $driver->primary),
"auto_increment" => ($key == $driver->primary),
"privileges" => array(
"insert" => 1,
"select" => 1,
"update" => 1,
),
);
}
}
}
}
return $fields;
}
function found_rows($table_status, $where) {
global $connection;
$where = where_to_query($where);
$toArray = $connection->executeCommand($connection->_db_name, array('count' => $table_status['Name'], 'query' => $where))->toArray();
return $toArray[0]->n;
}
function sql_query_where_parser($queryWhere) {
$queryWhere = preg_replace('~^\sWHERE \(?\(?(.+?)\)?\)?$~', '\1', $queryWhere);
$wheres = explode(' AND ', $queryWhere);
$wheresOr = explode(') OR (', $queryWhere);
$where = array();
foreach ($wheres as $whereStr) {
$where[] = trim($whereStr);
}
if (count($wheresOr) == 1) {
$wheresOr = array();
} elseif (count($wheresOr) > 1) {
$where = array();
}
return where_to_query($where, $wheresOr);
}
function where_to_query($whereAnd = array(), $whereOr = array()) {
global $adminer;
$data = array();
foreach (array('and' => $whereAnd, 'or' => $whereOr) as $type => $where) {
if (is_array($where)) {
foreach ($where as $expression) {
list($col, $op, $val) = explode(" ", $expression, 3);
if ($col == "_id" && preg_match('~^(MongoDB\\\\BSON\\\\ObjectID)\("(.+)"\)$~', $val, $match)) {
list(, $class, $val) = $match;
$val = new $class($val);
}
if (!in_array($op, $adminer->operators)) {
continue;
}
if (preg_match('~^\(f\)(.+)~', $op, $match)) {
$val = (float) $val;
$op = $match[1];
} elseif (preg_match('~^\(date\)(.+)~', $op, $match)) {
$dateTime = new DateTime($val);
$class = 'MongoDB\BSON\UTCDatetime';
$val = new $class($dateTime->getTimestamp() * 1000);
$op = $match[1];
}
switch ($op) {
case '=':
$op = '$eq';
break;
case '!=':
$op = '$ne';
break;
case '>':
$op = '$gt';
break;
case '<':
$op = '$lt';
break;
case '>=':
$op = '$gte';
break;
case '<=':
$op = '$lte';
break;
case 'regex':
$op = '$regex';
break;
default:
continue 2;
}
if ($type == 'and') {
$data['$and'][] = array($col => array($op => $val));
} elseif ($type == 'or') {
$data['$or'][] = array($col => array($op => $val));
}
}
}
}
return $data;
}
$operators = array(
"=",
"!=",
">",
"<",
">=",
"<=",
"regex",
"(f)=",
"(f)!=",
"(f)>",
"(f)<",
"(f)>=",
"(f)<=",
"(date)=",
"(date)!=",
"(date)>",
"(date)<",
"(date)>=",
"(date)<=",
);
$operator_regexp = 'regex';
}
function table($idf) {
return $idf;
}
function idf_escape($idf) {
return $idf;
}
function table_status($name = "", $fast = false) {
$return = array();
foreach (tables_list() as $table => $type) {
$return[$table] = array("Name" => $table);
if ($name == $table) {
return $return[$table];
}
}
return $return;
}
function create_database($db, $collation) {
return true;
}
function last_id() {
global $connection;
return $connection->last_id;
}
function error() {
global $connection;
return h($connection->error);
}
function collations() {
return array();
}
function logged_user() {
global $adminer;
$credentials = $adminer->credentials();
return $credentials[1];
}
function connect() {
global $adminer;
$connection = new Min_DB;
list($server, $username, $password) = $adminer->credentials();
$options = array();
if ($username . $password != "") {
$options["username"] = $username;
$options["password"] = $password;
}
$db = $adminer->database();
if ($db != "") {
$options["db"] = $db;
}
if (($auth_source = getenv("MONGO_AUTH_SOURCE"))) {
$options["authSource"] = $auth_source;
}
$connection->connect("mongodb://$server", $options);
if ($connection->error) {
return $connection->error;
}
return $connection;
}
function alter_indexes($table, $alter) {
global $connection;
foreach ($alter as $val) {
list($type, $name, $set) = $val;
if ($set == "DROP") {
$return = $connection->_db->command(array("deleteIndexes" => $table, "index" => $name));
} else {
$columns = array();
foreach ($set as $column) {
$column = preg_replace('~ DESC$~', '', $column, 1, $count);
$columns[$column] = ($count ? -1 : 1);
}
$return = $connection->_db->selectCollection($table)->ensureIndex($columns, array(
"unique" => ($type == "UNIQUE"),
"name" => $name,
//! "sparse"
));
}
if ($return['errmsg']) {
$connection->error = $return['errmsg'];
return false;
}
}
return true;
}
function support($feature) {
return preg_match("~database|indexes|descidx~", $feature);
}
function db_collation($db, $collations) {
}
function information_schema() {
}
function is_view($table_status) {
}
function convert_field($field) {
}
function unconvert_field($field, $return) {
return $return;
}
function foreign_keys($table) {
return array();
}
function fk_support($table_status) {
}
function engines() {
return array();
}
function alter_table($table, $name, $fields, $foreign, $comment, $engine, $collation, $auto_increment, $partitioning) {
global $connection;
if ($table == "") {
$connection->_db->createCollection($name);
return true;
}
}
function drop_tables($tables) {
global $connection;
foreach ($tables as $table) {
$response = $connection->_db->selectCollection($table)->drop();
if (!$response['ok']) {
return false;
}
}
return true;
}
function truncate_tables($tables) {
global $connection;
foreach ($tables as $table) {
$response = $connection->_db->selectCollection($table)->remove();
if (!$response['ok']) {
return false;
}
}
return true;
}
function driver_config() {
global $operators, $operator_regexp;
return array(
'possible_drivers' => array("mongo", "mongodb"),
'jush' => "mongo",
'operators' => $operators,
'operator_regexp' => $operator_regexp,
'functions' => array(),
'grouping' => array(),
'edit_functions' => array(array("json")),
);
}
}

View file

@ -1,679 +0,0 @@
<?php
/**
* @author Jakub Cernohuby
* @author Vladimir Stastka
* @author Jakub Vrana
*/
$drivers["mssql"] = "MS SQL (beta)";
if (isset($_GET["mssql"])) {
define("DRIVER", "mssql");
if (extension_loaded("sqlsrv")) {
class Min_DB {
var $extension = "sqlsrv", $_link, $_result, $server_info, $affected_rows, $errno, $error;
function _get_error() {
$this->error = "";
foreach (sqlsrv_errors() as $error) {
$this->errno = $error["code"];
$this->error .= "$error[message]\n";
}
$this->error = rtrim($this->error);
}
function connect($server, $username, $password) {
global $adminer;
$db = $adminer->database();
$connection_info = array("UID" => $username, "PWD" => $password, "CharacterSet" => "UTF-8");
if ($db != "") {
$connection_info["Database"] = $db;
}
$this->_link = @sqlsrv_connect(preg_replace('~:~', ',', $server), $connection_info);
if ($this->_link) {
$info = sqlsrv_server_info($this->_link);
$this->server_info = $info['SQLServerVersion'];
} else {
$this->_get_error();
}
return (bool) $this->_link;
}
function quote($string) {
return "'" . str_replace("'", "''", $string) . "'";
}
function select_db($database) {
return $this->query("USE " . idf_escape($database));
}
function query($query, $unbuffered = false) {
$result = sqlsrv_query($this->_link, $query); //! , array(), ($unbuffered ? array() : array("Scrollable" => "keyset"))
$this->error = "";
if (!$result) {
$this->_get_error();
return false;
}
return $this->store_result($result);
}
function multi_query($query) {
$this->_result = sqlsrv_query($this->_link, $query);
$this->error = "";
if (!$this->_result) {
$this->_get_error();
return false;
}
return true;
}
function store_result($result = null) {
if (!$result) {
$result = $this->_result;
}
if (!$result) {
return false;
}
if (sqlsrv_field_metadata($result)) {
return new Min_Result($result);
}
$this->affected_rows = sqlsrv_rows_affected($result);
return true;
}
function next_result() {
return $this->_result ? sqlsrv_next_result($this->_result) : null;
}
function result($query, $field = 0) {
$result = $this->query($query);
if (!is_object($result)) {
return false;
}
$row = $result->fetch_row();
return $row[$field];
}
}
class Min_Result {
var $_result, $_offset = 0, $_fields, $num_rows;
function __construct($result) {
$this->_result = $result;
// $this->num_rows = sqlsrv_num_rows($result); // available only in scrollable results
}
function _convert($row) {
foreach ((array) $row as $key => $val) {
if (is_a($val, 'DateTime')) {
$row[$key] = $val->format("Y-m-d H:i:s");
}
//! stream
}
return $row;
}
function fetch_assoc() {
return $this->_convert(sqlsrv_fetch_array($this->_result, SQLSRV_FETCH_ASSOC));
}
function fetch_row() {
return $this->_convert(sqlsrv_fetch_array($this->_result, SQLSRV_FETCH_NUMERIC));
}
function fetch_field() {
if (!$this->_fields) {
$this->_fields = sqlsrv_field_metadata($this->_result);
}
$field = $this->_fields[$this->_offset++];
$return = new stdClass;
$return->name = $field["Name"];
$return->orgname = $field["Name"];
$return->type = ($field["Type"] == 1 ? 254 : 0);
return $return;
}
function seek($offset) {
for ($i=0; $i < $offset; $i++) {
sqlsrv_fetch($this->_result); // SQLSRV_SCROLL_ABSOLUTE added in sqlsrv 1.1
}
}
function __destruct() {
sqlsrv_free_stmt($this->_result);
}
}
} elseif (extension_loaded("mssql")) {
class Min_DB {
var $extension = "MSSQL", $_link, $_result, $server_info, $affected_rows, $error;
function connect($server, $username, $password) {
$this->_link = @mssql_connect($server, $username, $password);
if ($this->_link) {
$result = $this->query("SELECT SERVERPROPERTY('ProductLevel'), SERVERPROPERTY('Edition')");
if ($result) {
$row = $result->fetch_row();
$this->server_info = $this->result("sp_server_info 2", 2) . " [$row[0]] $row[1]";
}
} else {
$this->error = mssql_get_last_message();
}
return (bool) $this->_link;
}
function quote($string) {
return "'" . str_replace("'", "''", $string) . "'";
}
function select_db($database) {
return mssql_select_db($database);
}
function query($query, $unbuffered = false) {
$result = @mssql_query($query, $this->_link); //! $unbuffered
$this->error = "";
if (!$result) {
$this->error = mssql_get_last_message();
return false;
}
if ($result === true) {
$this->affected_rows = mssql_rows_affected($this->_link);
return true;
}
return new Min_Result($result);
}
function multi_query($query) {
return $this->_result = $this->query($query);
}
function store_result() {
return $this->_result;
}
function next_result() {
return mssql_next_result($this->_result->_result);
}
function result($query, $field = 0) {
$result = $this->query($query);
if (!is_object($result)) {
return false;
}
return mssql_result($result->_result, 0, $field);
}
}
class Min_Result {
var $_result, $_offset = 0, $_fields, $num_rows;
function __construct($result) {
$this->_result = $result;
$this->num_rows = mssql_num_rows($result);
}
function fetch_assoc() {
return mssql_fetch_assoc($this->_result);
}
function fetch_row() {
return mssql_fetch_row($this->_result);
}
function num_rows() {
return mssql_num_rows($this->_result);
}
function fetch_field() {
$return = mssql_fetch_field($this->_result);
$return->orgtable = $return->table;
$return->orgname = $return->name;
return $return;
}
function seek($offset) {
mssql_data_seek($this->_result, $offset);
}
function __destruct() {
mssql_free_result($this->_result);
}
}
} elseif (extension_loaded("pdo_dblib")) {
class Min_DB extends Min_PDO {
var $extension = "PDO_DBLIB";
function connect($server, $username, $password) {
$this->dsn("dblib:charset=utf8;host=" . str_replace(":", ";unix_socket=", preg_replace('~:(\d)~', ';port=\1', $server)), $username, $password);
return true;
}
function select_db($database) {
// database selection is separated from the connection so dbname in DSN can't be used
return $this->query("USE " . idf_escape($database));
}
}
}
class Min_Driver extends Min_SQL {
function insertUpdate($table, $rows, $primary) {
foreach ($rows as $set) {
$update = array();
$where = array();
foreach ($set as $key => $val) {
$update[] = "$key = $val";
if (isset($primary[idf_unescape($key)])) {
$where[] = "$key = $val";
}
}
//! can use only one query for all rows
if (!queries("MERGE " . table($table) . " USING (VALUES(" . implode(", ", $set) . ")) AS source (c" . implode(", c", range(1, count($set))) . ") ON " . implode(" AND ", $where) //! source, c1 - possible conflict
. " WHEN MATCHED THEN UPDATE SET " . implode(", ", $update)
. " WHEN NOT MATCHED THEN INSERT (" . implode(", ", array_keys($set)) . ") VALUES (" . implode(", ", $set) . ");" // ; is mandatory
)) {
return false;
}
}
return true;
}
function begin() {
return queries("BEGIN TRANSACTION");
}
}
function idf_escape($idf) {
return "[" . str_replace("]", "]]", $idf) . "]";
}
function table($idf) {
return ($_GET["ns"] != "" ? idf_escape($_GET["ns"]) . "." : "") . idf_escape($idf);
}
function connect() {
global $adminer;
$connection = new Min_DB;
$credentials = $adminer->credentials();
if ($connection->connect($credentials[0], $credentials[1], $credentials[2])) {
return $connection;
}
return $connection->error;
}
function get_databases() {
return get_vals("SELECT name FROM sys.databases WHERE name NOT IN ('master', 'tempdb', 'model', 'msdb')");
}
function limit($query, $where, $limit, $offset = 0, $separator = " ") {
return ($limit !== null ? " TOP (" . ($limit + $offset) . ")" : "") . " $query$where"; // seek later
}
function limit1($table, $query, $where, $separator = "\n") {
return limit($query, $where, 1, 0, $separator);
}
function db_collation($db, $collations) {
global $connection;
return $connection->result("SELECT collation_name FROM sys.databases WHERE name = " . q($db));
}
function engines() {
return array();
}
function logged_user() {
global $connection;
return $connection->result("SELECT SUSER_NAME()");
}
function tables_list() {
return get_key_vals("SELECT name, type_desc FROM sys.all_objects WHERE schema_id = SCHEMA_ID(" . q(get_schema()) . ") AND type IN ('S', 'U', 'V') ORDER BY name");
}
function count_tables($databases) {
global $connection;
$return = array();
foreach ($databases as $db) {
$connection->select_db($db);
$return[$db] = $connection->result("SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES");
}
return $return;
}
function table_status($name = "") {
$return = array();
foreach (get_rows("SELECT ao.name AS Name, ao.type_desc AS Engine, (SELECT value FROM fn_listextendedproperty(default, 'SCHEMA', schema_name(schema_id), 'TABLE', ao.name, null, null)) AS Comment FROM sys.all_objects AS ao WHERE schema_id = SCHEMA_ID(" . q(get_schema()) . ") AND type IN ('S', 'U', 'V') " . ($name != "" ? "AND name = " . q($name) : "ORDER BY name")) as $row) {
if ($name != "") {
return $row;
}
$return[$row["Name"]] = $row;
}
return $return;
}
function is_view($table_status) {
return $table_status["Engine"] == "VIEW";
}
function fk_support($table_status) {
return true;
}
function fields($table) {
$comments = get_key_vals("SELECT objname, cast(value as varchar(max)) FROM fn_listextendedproperty('MS_DESCRIPTION', 'schema', " . q(get_schema()) . ", 'table', " . q($table) . ", 'column', NULL)");
$return = array();
foreach (get_rows("SELECT c.max_length, c.precision, c.scale, c.name, c.is_nullable, c.is_identity, c.collation_name, t.name type, CAST(d.definition as text) [default]
FROM sys.all_columns c
JOIN sys.all_objects o ON c.object_id = o.object_id
JOIN sys.types t ON c.user_type_id = t.user_type_id
LEFT JOIN sys.default_constraints d ON c.default_object_id = d.parent_column_id
WHERE o.schema_id = SCHEMA_ID(" . q(get_schema()) . ") AND o.type IN ('S', 'U', 'V') AND o.name = " . q($table)
) as $row) {
$type = $row["type"];
$length = (preg_match("~char|binary~", $type) ? $row["max_length"] : ($type == "decimal" ? "$row[precision],$row[scale]" : ""));
$return[$row["name"]] = array(
"field" => $row["name"],
"full_type" => $type . ($length ? "($length)" : ""),
"type" => $type,
"length" => $length,
"default" => $row["default"],
"null" => $row["is_nullable"],
"auto_increment" => $row["is_identity"],
"collation" => $row["collation_name"],
"privileges" => array("insert" => 1, "select" => 1, "update" => 1),
"primary" => $row["is_identity"], //! or indexes.is_primary_key
"comment" => $comments[$row["name"]],
);
}
return $return;
}
function indexes($table, $connection2 = null) {
$return = array();
// sp_statistics doesn't return information about primary key
foreach (get_rows("SELECT i.name, key_ordinal, is_unique, is_primary_key, c.name AS column_name, is_descending_key
FROM sys.indexes i
INNER JOIN sys.index_columns ic ON i.object_id = ic.object_id AND i.index_id = ic.index_id
INNER JOIN sys.columns c ON ic.object_id = c.object_id AND ic.column_id = c.column_id
WHERE OBJECT_NAME(i.object_id) = " . q($table)
, $connection2) as $row) {
$name = $row["name"];
$return[$name]["type"] = ($row["is_primary_key"] ? "PRIMARY" : ($row["is_unique"] ? "UNIQUE" : "INDEX"));
$return[$name]["lengths"] = array();
$return[$name]["columns"][$row["key_ordinal"]] = $row["column_name"];
$return[$name]["descs"][$row["key_ordinal"]] = ($row["is_descending_key"] ? '1' : null);
}
return $return;
}
function view($name) {
global $connection;
return array("select" => preg_replace('~^(?:[^[]|\[[^]]*])*\s+AS\s+~isU', '', $connection->result("SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA = SCHEMA_NAME() AND TABLE_NAME = " . q($name))));
}
function collations() {
$return = array();
foreach (get_vals("SELECT name FROM fn_helpcollations()") as $collation) {
$return[preg_replace('~_.*~', '', $collation)][] = $collation;
}
return $return;
}
function information_schema($db) {
return false;
}
function error() {
global $connection;
return nl_br(h(preg_replace('~^(\[[^]]*])+~m', '', $connection->error)));
}
function create_database($db, $collation) {
return queries("CREATE DATABASE " . idf_escape($db) . (preg_match('~^[a-z0-9_]+$~i', $collation) ? " COLLATE $collation" : ""));
}
function drop_databases($databases) {
return queries("DROP DATABASE " . implode(", ", array_map('idf_escape', $databases)));
}
function rename_database($name, $collation) {
if (preg_match('~^[a-z0-9_]+$~i', $collation)) {
queries("ALTER DATABASE " . idf_escape(DB) . " COLLATE $collation");
}
queries("ALTER DATABASE " . idf_escape(DB) . " MODIFY NAME = " . idf_escape($name));
return true; //! false negative "The database name 'test2' has been set."
}
function auto_increment() {
return " IDENTITY" . ($_POST["Auto_increment"] != "" ? "(" . number($_POST["Auto_increment"]) . ",1)" : "") . " PRIMARY KEY";
}
function alter_table($table, $name, $fields, $foreign, $comment, $engine, $collation, $auto_increment, $partitioning) {
$alter = array();
$comments = array();
foreach ($fields as $field) {
$column = idf_escape($field[0]);
$val = $field[1];
if (!$val) {
$alter["DROP"][] = " COLUMN $column";
} else {
$val[1] = preg_replace("~( COLLATE )'(\\w+)'~", '\1\2', $val[1]);
$comments[$field[0]] = $val[5];
unset($val[5]);
if ($field[0] == "") {
$alter["ADD"][] = "\n " . implode("", $val) . ($table == "" ? substr($foreign[$val[0]], 16 + strlen($val[0])) : ""); // 16 - strlen(" FOREIGN KEY ()")
} else {
unset($val[6]); //! identity can't be removed
if ($column != $val[0]) {
queries("EXEC sp_rename " . q(table($table) . ".$column") . ", " . q(idf_unescape($val[0])) . ", 'COLUMN'");
}
$alter["ALTER COLUMN " . implode("", $val)][] = "";
}
}
}
if ($table == "") {
return queries("CREATE TABLE " . table($name) . " (" . implode(",", (array) $alter["ADD"]) . "\n)");
}
if ($table != $name) {
queries("EXEC sp_rename " . q(table($table)) . ", " . q($name));
}
if ($foreign) {
$alter[""] = $foreign;
}
foreach ($alter as $key => $val) {
if (!queries("ALTER TABLE " . idf_escape($name) . " $key" . implode(",", $val))) {
return false;
}
}
foreach ($comments as $key => $val) {
$comment = substr($val, 9); // 9 - strlen(" COMMENT ")
queries("EXEC sp_dropextendedproperty @name = N'MS_Description', @level0type = N'Schema', @level0name = " . q(get_schema()) . ", @level1type = N'Table', @level1name = " . q($name) . ", @level2type = N'Column', @level2name = " . q($key));
queries("EXEC sp_addextendedproperty @name = N'MS_Description', @value = " . $comment . ", @level0type = N'Schema', @level0name = " . q(get_schema()) . ", @level1type = N'Table', @level1name = " . q($name) . ", @level2type = N'Column', @level2name = " . q($key));
}
return true;
}
function alter_indexes($table, $alter) {
$index = array();
$drop = array();
foreach ($alter as $val) {
if ($val[2] == "DROP") {
if ($val[0] == "PRIMARY") { //! sometimes used also for UNIQUE
$drop[] = idf_escape($val[1]);
} else {
$index[] = idf_escape($val[1]) . " ON " . table($table);
}
} elseif (!queries(($val[0] != "PRIMARY"
? "CREATE $val[0] " . ($val[0] != "INDEX" ? "INDEX " : "") . idf_escape($val[1] != "" ? $val[1] : uniqid($table . "_")) . " ON " . table($table)
: "ALTER TABLE " . table($table) . " ADD PRIMARY KEY"
) . " (" . implode(", ", $val[2]) . ")")) {
return false;
}
}
return (!$index || queries("DROP INDEX " . implode(", ", $index)))
&& (!$drop || queries("ALTER TABLE " . table($table) . " DROP " . implode(", ", $drop)))
;
}
function last_id() {
global $connection;
return $connection->result("SELECT SCOPE_IDENTITY()"); // @@IDENTITY can return trigger INSERT
}
function explain($connection, $query) {
$connection->query("SET SHOWPLAN_ALL ON");
$return = $connection->query($query);
$connection->query("SET SHOWPLAN_ALL OFF"); // connection is used also for indexes
return $return;
}
function found_rows($table_status, $where) {
}
function foreign_keys($table) {
$return = array();
foreach (get_rows("EXEC sp_fkeys @fktable_name = " . q($table)) as $row) {
$foreign_key = &$return[$row["FK_NAME"]];
$foreign_key["db"] = $row["PKTABLE_QUALIFIER"];
$foreign_key["table"] = $row["PKTABLE_NAME"];
$foreign_key["source"][] = $row["FKCOLUMN_NAME"];
$foreign_key["target"][] = $row["PKCOLUMN_NAME"];
}
return $return;
}
function truncate_tables($tables) {
return apply_queries("TRUNCATE TABLE", $tables);
}
function drop_views($views) {
return queries("DROP VIEW " . implode(", ", array_map('table', $views)));
}
function drop_tables($tables) {
return queries("DROP TABLE " . implode(", ", array_map('table', $tables)));
}
function move_tables($tables, $views, $target) {
return apply_queries("ALTER SCHEMA " . idf_escape($target) . " TRANSFER", array_merge($tables, $views));
}
function trigger($name) {
if ($name == "") {
return array();
}
$rows = get_rows("SELECT s.name [Trigger],
CASE WHEN OBJECTPROPERTY(s.id, 'ExecIsInsertTrigger') = 1 THEN 'INSERT' WHEN OBJECTPROPERTY(s.id, 'ExecIsUpdateTrigger') = 1 THEN 'UPDATE' WHEN OBJECTPROPERTY(s.id, 'ExecIsDeleteTrigger') = 1 THEN 'DELETE' END [Event],
CASE WHEN OBJECTPROPERTY(s.id, 'ExecIsInsteadOfTrigger') = 1 THEN 'INSTEAD OF' ELSE 'AFTER' END [Timing],
c.text
FROM sysobjects s
JOIN syscomments c ON s.id = c.id
WHERE s.xtype = 'TR' AND s.name = " . q($name)
); // triggers are not schema-scoped
$return = reset($rows);
if ($return) {
$return["Statement"] = preg_replace('~^.+\s+AS\s+~isU', '', $return["text"]); //! identifiers, comments
}
return $return;
}
function triggers($table) {
$return = array();
foreach (get_rows("SELECT sys1.name,
CASE WHEN OBJECTPROPERTY(sys1.id, 'ExecIsInsertTrigger') = 1 THEN 'INSERT' WHEN OBJECTPROPERTY(sys1.id, 'ExecIsUpdateTrigger') = 1 THEN 'UPDATE' WHEN OBJECTPROPERTY(sys1.id, 'ExecIsDeleteTrigger') = 1 THEN 'DELETE' END [Event],
CASE WHEN OBJECTPROPERTY(sys1.id, 'ExecIsInsteadOfTrigger') = 1 THEN 'INSTEAD OF' ELSE 'AFTER' END [Timing]
FROM sysobjects sys1
JOIN sysobjects sys2 ON sys1.parent_obj = sys2.id
WHERE sys1.xtype = 'TR' AND sys2.name = " . q($table)
) as $row) { // triggers are not schema-scoped
$return[$row["name"]] = array($row["Timing"], $row["Event"]);
}
return $return;
}
function trigger_options() {
return array(
"Timing" => array("AFTER", "INSTEAD OF"),
"Event" => array("INSERT", "UPDATE", "DELETE"),
"Type" => array("AS"),
);
}
function schemas() {
return get_vals("SELECT name FROM sys.schemas");
}
function get_schema() {
global $connection;
if ($_GET["ns"] != "") {
return $_GET["ns"];
}
return $connection->result("SELECT SCHEMA_NAME()");
}
function set_schema($schema) {
return true; // ALTER USER is permanent
}
function use_sql($database) {
return "USE " . idf_escape($database);
}
function show_variables() {
return array();
}
function show_status() {
return array();
}
function convert_field($field) {
}
function unconvert_field($field, $return) {
return $return;
}
function support($feature) {
return preg_match('~^(comment|columns|database|drop_col|indexes|descidx|scheme|sql|table|trigger|view|view_trigger)$~', $feature); //! routine|
}
function driver_config() {
$types = array();
$structured_types = array();
foreach (array( //! use sys.types
lang('Numbers') => array("tinyint" => 3, "smallint" => 5, "int" => 10, "bigint" => 20, "bit" => 1, "decimal" => 0, "real" => 12, "float" => 53, "smallmoney" => 10, "money" => 20),
lang('Date and time') => array("date" => 10, "smalldatetime" => 19, "datetime" => 19, "datetime2" => 19, "time" => 8, "datetimeoffset" => 10),
lang('Strings') => array("char" => 8000, "varchar" => 8000, "text" => 2147483647, "nchar" => 4000, "nvarchar" => 4000, "ntext" => 1073741823),
lang('Binary') => array("binary" => 8000, "varbinary" => 8000, "image" => 2147483647),
) as $key => $val) {
$types += $val;
$structured_types[$key] = array_keys($val);
}
return array(
'possible_drivers' => array("SQLSRV", "MSSQL", "PDO_DBLIB"),
'jush' => "mssql",
'types' => $types,
'structured_types' => $structured_types,
'unsigned' => array(),
'operators' => array("=", "<", ">", "<=", ">=", "!=", "LIKE", "LIKE %%", "IN", "IS NULL", "NOT LIKE", "NOT IN", "IS NOT NULL"),
'functions' => array("distinct", "len", "lower", "round", "upper"),
'grouping' => array("avg", "count", "count distinct", "max", "min", "sum"),
'edit_functions' => array(
array(
"date|time" => "getdate",
), array(
"int|decimal|real|float|money|datetime" => "+/-",
"char|text" => "+",
)
),
);
}
}

File diff suppressed because it is too large Load diff

View file

@ -1,540 +0,0 @@
<?php
$drivers["oracle"] = "Oracle (beta)";
if (isset($_GET["oracle"])) {
define("DRIVER", "oracle");
if (extension_loaded("oci8")) {
class Min_DB {
var $extension = "oci8", $_link, $_result, $server_info, $affected_rows, $errno, $error;
var $_current_db;
function _error($errno, $error) {
if (ini_bool("html_errors")) {
$error = html_entity_decode(strip_tags($error));
}
$error = preg_replace('~^[^:]*: ~', '', $error);
$this->error = $error;
}
function connect($server, $username, $password) {
$this->_link = @oci_new_connect($username, $password, $server, "AL32UTF8");
if ($this->_link) {
$this->server_info = oci_server_version($this->_link);
return true;
}
$error = oci_error();
$this->error = $error["message"];
return false;
}
function quote($string) {
return "'" . str_replace("'", "''", $string) . "'";
}
function select_db($database) {
$this->_current_db = $database;
return true;
}
function query($query, $unbuffered = false) {
$result = oci_parse($this->_link, $query);
$this->error = "";
if (!$result) {
$error = oci_error($this->_link);
$this->errno = $error["code"];
$this->error = $error["message"];
return false;
}
set_error_handler(array($this, '_error'));
$return = @oci_execute($result);
restore_error_handler();
if ($return) {
if (oci_num_fields($result)) {
return new Min_Result($result);
}
$this->affected_rows = oci_num_rows($result);
oci_free_statement($result);
}
return $return;
}
function multi_query($query) {
return $this->_result = $this->query($query);
}
function store_result() {
return $this->_result;
}
function next_result() {
return false;
}
function result($query, $field = 1) {
$result = $this->query($query);
if (!is_object($result) || !oci_fetch($result->_result)) {
return false;
}
return oci_result($result->_result, $field);
}
}
class Min_Result {
var $_result, $_offset = 1, $num_rows;
function __construct($result) {
$this->_result = $result;
}
function _convert($row) {
foreach ((array) $row as $key => $val) {
if (is_a($val, 'OCI-Lob')) {
$row[$key] = $val->load();
}
}
return $row;
}
function fetch_assoc() {
return $this->_convert(oci_fetch_assoc($this->_result));
}
function fetch_row() {
return $this->_convert(oci_fetch_row($this->_result));
}
function fetch_field() {
$column = $this->_offset++;
$return = new stdClass;
$return->name = oci_field_name($this->_result, $column);
$return->orgname = $return->name;
$return->type = oci_field_type($this->_result, $column);
$return->charsetnr = (preg_match("~raw|blob|bfile~", $return->type) ? 63 : 0); // 63 - binary
return $return;
}
function __destruct() {
oci_free_statement($this->_result);
}
}
} elseif (extension_loaded("pdo_oci")) {
class Min_DB extends Min_PDO {
var $extension = "PDO_OCI";
var $_current_db;
function connect($server, $username, $password) {
$this->dsn("oci:dbname=//$server;charset=AL32UTF8", $username, $password);
return true;
}
function select_db($database) {
$this->_current_db = $database;
return true;
}
}
}
class Min_Driver extends Min_SQL {
//! support empty $set in insert()
function begin() {
return true; // automatic start
}
function insertUpdate($table, $rows, $primary) {
global $connection;
foreach ($rows as $set) {
$update = array();
$where = array();
foreach ($set as $key => $val) {
$update[] = "$key = $val";
if (isset($primary[idf_unescape($key)])) {
$where[] = "$key = $val";
}
}
if (!(($where && queries("UPDATE " . table($table) . " SET " . implode(", ", $update) . " WHERE " . implode(" AND ", $where)) && $connection->affected_rows)
|| queries("INSERT INTO " . table($table) . " (" . implode(", ", array_keys($set)) . ") VALUES (" . implode(", ", $set) . ")")
)) {
return false;
}
}
return true;
}
}
function idf_escape($idf) {
return '"' . str_replace('"', '""', $idf) . '"';
}
function table($idf) {
return idf_escape($idf);
}
function connect() {
global $adminer;
$connection = new Min_DB;
$credentials = $adminer->credentials();
if ($connection->connect($credentials[0], $credentials[1], $credentials[2])) {
return $connection;
}
return $connection->error;
}
function get_databases() {
return get_vals("SELECT tablespace_name FROM user_tablespaces ORDER BY 1");
}
function limit($query, $where, $limit, $offset = 0, $separator = " ") {
return ($offset ? " * FROM (SELECT t.*, rownum AS rnum FROM (SELECT $query$where) t WHERE rownum <= " . ($limit + $offset) . ") WHERE rnum > $offset"
: ($limit !== null ? " * FROM (SELECT $query$where) WHERE rownum <= " . ($limit + $offset)
: " $query$where"
));
}
function limit1($table, $query, $where, $separator = "\n") {
return " $query$where"; //! limit
}
function db_collation($db, $collations) {
global $connection;
return $connection->result("SELECT value FROM nls_database_parameters WHERE parameter = 'NLS_CHARACTERSET'"); //! respect $db
}
function engines() {
return array();
}
function logged_user() {
global $connection;
return $connection->result("SELECT USER FROM DUAL");
}
function get_current_db() {
global $connection;
$db = $connection->_current_db ? $connection->_current_db : DB;
unset($connection->_current_db);
return $db;
}
function where_owner($prefix, $owner = "owner") {
if (!$_GET["ns"]) {
return '';
}
return "$prefix$owner = sys_context('USERENV', 'CURRENT_SCHEMA')";
}
function views_table($columns) {
$owner = where_owner('');
return "(SELECT $columns FROM all_views WHERE " . ($owner ? $owner : "rownum < 0") . ")";
}
function tables_list() {
$view = views_table("view_name");
$owner = where_owner(" AND ");
return get_key_vals("SELECT table_name, 'table' FROM all_tables WHERE tablespace_name = " . q(DB) . "$owner
UNION SELECT view_name, 'view' FROM $view
ORDER BY 1"
); //! views don't have schema
}
function count_tables($databases) {
global $connection;
$return = array();
foreach ($databases as $db) {
$return[$db] = $connection->result("SELECT COUNT(*) FROM all_tables WHERE tablespace_name = " . q($db));
}
return $return;
}
function table_status($name = "") {
$return = array();
$search = q($name);
$db = get_current_db();
$view = views_table("view_name");
$owner = where_owner(" AND ");
foreach (get_rows('SELECT table_name "Name", \'table\' "Engine", avg_row_len * num_rows "Data_length", num_rows "Rows" FROM all_tables WHERE tablespace_name = ' . q($db) . $owner . ($name != "" ? " AND table_name = $search" : "") . "
UNION SELECT view_name, 'view', 0, 0 FROM $view" . ($name != "" ? " WHERE view_name = $search" : "") . "
ORDER BY 1"
) as $row) {
if ($name != "") {
return $row;
}
$return[$row["Name"]] = $row;
}
return $return;
}
function is_view($table_status) {
return $table_status["Engine"] == "view";
}
function fk_support($table_status) {
return true;
}
function fields($table) {
$return = array();
$owner = where_owner(" AND ");
foreach (get_rows("SELECT * FROM all_tab_columns WHERE table_name = " . q($table) . "$owner ORDER BY column_id") as $row) {
$type = $row["DATA_TYPE"];
$length = "$row[DATA_PRECISION],$row[DATA_SCALE]";
if ($length == ",") {
$length = $row["CHAR_COL_DECL_LENGTH"];
} //! int
$return[$row["COLUMN_NAME"]] = array(
"field" => $row["COLUMN_NAME"],
"full_type" => $type . ($length ? "($length)" : ""),
"type" => strtolower($type),
"length" => $length,
"default" => $row["DATA_DEFAULT"],
"null" => ($row["NULLABLE"] == "Y"),
//! "auto_increment" => false,
//! "collation" => $row["CHARACTER_SET_NAME"],
"privileges" => array("insert" => 1, "select" => 1, "update" => 1),
//! "comment" => $row["Comment"],
//! "primary" => ($row["Key"] == "PRI"),
);
}
return $return;
}
function indexes($table, $connection2 = null) {
$return = array();
$owner = where_owner(" AND ", "aic.table_owner");
foreach (get_rows("SELECT aic.*, ac.constraint_type, atc.data_default
FROM all_ind_columns aic
LEFT JOIN all_constraints ac ON aic.index_name = ac.constraint_name AND aic.table_name = ac.table_name AND aic.index_owner = ac.owner
LEFT JOIN all_tab_cols atc ON aic.column_name = atc.column_name AND aic.table_name = atc.table_name AND aic.index_owner = atc.owner
WHERE aic.table_name = " . q($table) . "$owner
ORDER BY ac.constraint_type, aic.column_position", $connection2) as $row) {
$index_name = $row["INDEX_NAME"];
$column_name = $row["DATA_DEFAULT"];
$column_name = ($column_name ? trim($column_name, '"') : $row["COLUMN_NAME"]); // trim - possibly wrapped in quotes but never contains quotes inside
$return[$index_name]["type"] = ($row["CONSTRAINT_TYPE"] == "P" ? "PRIMARY" : ($row["CONSTRAINT_TYPE"] == "U" ? "UNIQUE" : "INDEX"));
$return[$index_name]["columns"][] = $column_name;
$return[$index_name]["lengths"][] = ($row["CHAR_LENGTH"] && $row["CHAR_LENGTH"] != $row["COLUMN_LENGTH"] ? $row["CHAR_LENGTH"] : null);
$return[$index_name]["descs"][] = ($row["DESCEND"] && $row["DESCEND"] == "DESC" ? '1' : null);
}
return $return;
}
function view($name) {
$view = views_table("view_name, text");
$rows = get_rows('SELECT text "select" FROM ' . $view . ' WHERE view_name = ' . q($name));
return reset($rows);
}
function collations() {
return array(); //!
}
function information_schema($db) {
return false;
}
function error() {
global $connection;
return h($connection->error); //! highlight sqltext from offset
}
function explain($connection, $query) {
$connection->query("EXPLAIN PLAN FOR $query");
return $connection->query("SELECT * FROM plan_table");
}
function found_rows($table_status, $where) {
}
function auto_increment() {
return "";
}
function alter_table($table, $name, $fields, $foreign, $comment, $engine, $collation, $auto_increment, $partitioning) {
$alter = $drop = array();
$orig_fields = ($table ? fields($table) : array());
foreach ($fields as $field) {
$val = $field[1];
if ($val && $field[0] != "" && idf_escape($field[0]) != $val[0]) {
queries("ALTER TABLE " . table($table) . " RENAME COLUMN " . idf_escape($field[0]) . " TO $val[0]");
}
$orig_field = $orig_fields[$field[0]];
if ($val && $orig_field) {
$old = process_field($orig_field, $orig_field);
if ($val[2] == $old[2]) {
$val[2] = "";
}
}
if ($val) {
$alter[] = ($table != "" ? ($field[0] != "" ? "MODIFY (" : "ADD (") : " ") . implode($val) . ($table != "" ? ")" : ""); //! error with name change only
} else {
$drop[] = idf_escape($field[0]);
}
}
if ($table == "") {
return queries("CREATE TABLE " . table($name) . " (\n" . implode(",\n", $alter) . "\n)");
}
return (!$alter || queries("ALTER TABLE " . table($table) . "\n" . implode("\n", $alter)))
&& (!$drop || queries("ALTER TABLE " . table($table) . " DROP (" . implode(", ", $drop) . ")"))
&& ($table == $name || queries("ALTER TABLE " . table($table) . " RENAME TO " . table($name)))
;
}
function alter_indexes($table, $alter) {
$drop = array();
$queries = array();
foreach ($alter as $val) {
if ($val[0] != "INDEX") {
//! descending UNIQUE indexes results in syntax error
$val[2] = preg_replace('~ DESC$~', '', $val[2]);
$create = ($val[2] == "DROP"
? "\nDROP CONSTRAINT " . idf_escape($val[1])
: "\nADD" . ($val[1] != "" ? " CONSTRAINT " . idf_escape($val[1]) : "") . " $val[0] " . ($val[0] == "PRIMARY" ? "KEY " : "") . "(" . implode(", ", $val[2]) . ")"
);
array_unshift($queries, "ALTER TABLE " . table($table) . $create);
} elseif ($val[2] == "DROP") {
$drop[] = idf_escape($val[1]);
} else {
$queries[] = "CREATE INDEX " . idf_escape($val[1] != "" ? $val[1] : uniqid($table . "_")) . " ON " . table($table) . " (" . implode(", ", $val[2]) . ")";
}
}
if ($drop) {
array_unshift($queries, "DROP INDEX " . implode(", ", $drop));
}
foreach ($queries as $query) {
if (!queries($query)) {
return false;
}
}
return true;
}
function foreign_keys($table) {
$return = array();
$query = "SELECT c_list.CONSTRAINT_NAME as NAME,
c_src.COLUMN_NAME as SRC_COLUMN,
c_dest.OWNER as DEST_DB,
c_dest.TABLE_NAME as DEST_TABLE,
c_dest.COLUMN_NAME as DEST_COLUMN,
c_list.DELETE_RULE as ON_DELETE
FROM ALL_CONSTRAINTS c_list, ALL_CONS_COLUMNS c_src, ALL_CONS_COLUMNS c_dest
WHERE c_list.CONSTRAINT_NAME = c_src.CONSTRAINT_NAME
AND c_list.R_CONSTRAINT_NAME = c_dest.CONSTRAINT_NAME
AND c_list.CONSTRAINT_TYPE = 'R'
AND c_src.TABLE_NAME = " . q($table);
foreach (get_rows($query) as $row) {
$return[$row['NAME']] = array(
"db" => $row['DEST_DB'],
"table" => $row['DEST_TABLE'],
"source" => array($row['SRC_COLUMN']),
"target" => array($row['DEST_COLUMN']),
"on_delete" => $row['ON_DELETE'],
"on_update" => null,
);
}
return $return;
}
function truncate_tables($tables) {
return apply_queries("TRUNCATE TABLE", $tables);
}
function drop_views($views) {
return apply_queries("DROP VIEW", $views);
}
function drop_tables($tables) {
return apply_queries("DROP TABLE", $tables);
}
function last_id() {
return 0; //!
}
function schemas() {
$return = get_vals("SELECT DISTINCT owner FROM dba_segments WHERE owner IN (SELECT username FROM dba_users WHERE default_tablespace NOT IN ('SYSTEM','SYSAUX')) ORDER BY 1");
return ($return ? $return : get_vals("SELECT DISTINCT owner FROM all_tables WHERE tablespace_name = " . q(DB) . " ORDER BY 1"));
}
function get_schema() {
global $connection;
return $connection->result("SELECT sys_context('USERENV', 'SESSION_USER') FROM dual");
}
function set_schema($scheme, $connection2 = null) {
global $connection;
if (!$connection2) {
$connection2 = $connection;
}
return $connection2->query("ALTER SESSION SET CURRENT_SCHEMA = " . idf_escape($scheme));
}
function show_variables() {
return get_key_vals('SELECT name, display_value FROM v$parameter');
}
function process_list() {
return get_rows('SELECT sess.process AS "process", sess.username AS "user", sess.schemaname AS "schema", sess.status AS "status", sess.wait_class AS "wait_class", sess.seconds_in_wait AS "seconds_in_wait", sql.sql_text AS "sql_text", sess.machine AS "machine", sess.port AS "port"
FROM v$session sess LEFT OUTER JOIN v$sql sql
ON sql.sql_id = sess.sql_id
WHERE sess.type = \'USER\'
ORDER BY PROCESS
');
}
function show_status() {
$rows = get_rows('SELECT * FROM v$instance');
return reset($rows);
}
function convert_field($field) {
}
function unconvert_field($field, $return) {
return $return;
}
function support($feature) {
return preg_match('~^(columns|database|drop_col|indexes|descidx|processlist|scheme|sql|status|table|variables|view)$~', $feature); //!
}
function driver_config() {
$types = array();
$structured_types = array();
foreach (array(
lang('Numbers') => array("number" => 38, "binary_float" => 12, "binary_double" => 21),
lang('Date and time') => array("date" => 10, "timestamp" => 29, "interval year" => 12, "interval day" => 28), //! year(), day() to second()
lang('Strings') => array("char" => 2000, "varchar2" => 4000, "nchar" => 2000, "nvarchar2" => 4000, "clob" => 4294967295, "nclob" => 4294967295),
lang('Binary') => array("raw" => 2000, "long raw" => 2147483648, "blob" => 4294967295, "bfile" => 4294967296),
) as $key => $val) {
$types += $val;
$structured_types[$key] = array_keys($val);
}
return array(
'possible_drivers' => array("OCI8", "PDO_OCI"),
'jush' => "oracle",
'types' => $types,
'structured_types' => $structured_types,
'unsigned' => array(),
'operators' => array("=", "<", ">", "<=", ">=", "!=", "LIKE", "LIKE %%", "IN", "IS NULL", "NOT LIKE", "NOT REGEXP", "NOT IN", "IS NOT NULL", "SQL"),
'functions' => array("distinct", "length", "lower", "round", "upper"),
'grouping' => array("avg", "count", "count distinct", "max", "min", "sum"),
'edit_functions' => array(
array( //! no parentheses
"date" => "current_date",
"timestamp" => "current_timestamp",
), array(
"number|float|double" => "+/-",
"date|timestamp" => "+ interval/- interval",
"char|clob" => "||",
)
),
);
}
}

View file

@ -1,928 +0,0 @@
<?php
$drivers["pgsql"] = "PostgreSQL";
if (isset($_GET["pgsql"])) {
define("DRIVER", "pgsql");
if (extension_loaded("pgsql")) {
class Min_DB {
var $extension = "PgSQL", $_link, $_result, $_string, $_database = true, $server_info, $affected_rows, $error, $timeout;
function _error($errno, $error) {
if (ini_bool("html_errors")) {
$error = html_entity_decode(strip_tags($error));
}
$error = preg_replace('~^[^:]*: ~', '', $error);
$this->error = $error;
}
function connect($server, $username, $password) {
global $adminer;
$db = $adminer->database();
set_error_handler(array($this, '_error'));
$this->_string = "host='" . str_replace(":", "' port='", addcslashes($server, "'\\")) . "' user='" . addcslashes($username, "'\\") . "' password='" . addcslashes($password, "'\\") . "'";
$this->_link = @pg_connect("$this->_string dbname='" . ($db != "" ? addcslashes($db, "'\\") : "postgres") . "'", PGSQL_CONNECT_FORCE_NEW);
if (!$this->_link && $db != "") {
// try to connect directly with database for performance
$this->_database = false;
$this->_link = @pg_connect("$this->_string dbname='postgres'", PGSQL_CONNECT_FORCE_NEW);
}
restore_error_handler();
if ($this->_link) {
$version = pg_version($this->_link);
$this->server_info = $version["server"];
pg_set_client_encoding($this->_link, "UTF8");
}
return (bool) $this->_link;
}
function quote($string) {
return "'" . pg_escape_string($this->_link, $string) . "'";
}
function value($val, $field) {
return ($field["type"] == "bytea" && $val !== null ? pg_unescape_bytea($val) : $val);
}
function quoteBinary($string) {
return "'" . pg_escape_bytea($this->_link, $string) . "'";
}
function select_db($database) {
global $adminer;
if ($database == $adminer->database()) {
return $this->_database;
}
$return = @pg_connect("$this->_string dbname='" . addcslashes($database, "'\\") . "'", PGSQL_CONNECT_FORCE_NEW);
if ($return) {
$this->_link = $return;
}
return $return;
}
function close() {
$this->_link = @pg_connect("$this->_string dbname='postgres'");
}
function query($query, $unbuffered = false) {
$result = @pg_query($this->_link, $query);
$this->error = "";
if (!$result) {
$this->error = pg_last_error($this->_link);
$return = false;
} elseif (!pg_num_fields($result)) {
$this->affected_rows = pg_affected_rows($result);
$return = true;
} else {
$return = new Min_Result($result);
}
if ($this->timeout) {
$this->timeout = 0;
$this->query("RESET statement_timeout");
}
return $return;
}
function multi_query($query) {
return $this->_result = $this->query($query);
}
function store_result() {
return $this->_result;
}
function next_result() {
// PgSQL extension doesn't support multiple results
return false;
}
function result($query, $field = 0) {
$result = $this->query($query);
if (!$result || !$result->num_rows) {
return false;
}
return pg_fetch_result($result->_result, 0, $field);
}
function warnings() {
return h(pg_last_notice($this->_link)); // second parameter is available since PHP 7.1.0
}
}
class Min_Result {
var $_result, $_offset = 0, $num_rows;
function __construct($result) {
$this->_result = $result;
$this->num_rows = pg_num_rows($result);
}
function fetch_assoc() {
return pg_fetch_assoc($this->_result);
}
function fetch_row() {
return pg_fetch_row($this->_result);
}
function fetch_field() {
$column = $this->_offset++;
$return = new stdClass;
if (function_exists('pg_field_table')) {
$return->orgtable = pg_field_table($this->_result, $column);
}
$return->name = pg_field_name($this->_result, $column);
$return->orgname = $return->name;
$return->type = pg_field_type($this->_result, $column);
$return->charsetnr = ($return->type == "bytea" ? 63 : 0); // 63 - binary
return $return;
}
function __destruct() {
pg_free_result($this->_result);
}
}
} elseif (extension_loaded("pdo_pgsql")) {
class Min_DB extends Min_PDO {
var $extension = "PDO_PgSQL", $timeout;
function connect($server, $username, $password) {
global $adminer;
$db = $adminer->database();
$this->dsn("pgsql:host='" . str_replace(":", "' port='", addcslashes($server, "'\\")) . "' client_encoding=utf8 dbname='" . ($db != "" ? addcslashes($db, "'\\") : "postgres") . "'", $username, $password); //! client_encoding is supported since 9.1 but we can't yet use min_version here
//! connect without DB in case of an error
return true;
}
function select_db($database) {
global $adminer;
return ($adminer->database() == $database);
}
function quoteBinary($s) {
return q($s);
}
function query($query, $unbuffered = false) {
$return = parent::query($query, $unbuffered);
if ($this->timeout) {
$this->timeout = 0;
parent::query("RESET statement_timeout");
}
return $return;
}
function warnings() {
return ''; // not implemented in PDO_PgSQL as of PHP 7.2.1
}
function close() {
}
}
}
class Min_Driver extends Min_SQL {
function insertUpdate($table, $rows, $primary) {
global $connection;
foreach ($rows as $set) {
$update = array();
$where = array();
foreach ($set as $key => $val) {
$update[] = "$key = $val";
if (isset($primary[idf_unescape($key)])) {
$where[] = "$key = $val";
}
}
if (!(($where && queries("UPDATE " . table($table) . " SET " . implode(", ", $update) . " WHERE " . implode(" AND ", $where)) && $connection->affected_rows)
|| queries("INSERT INTO " . table($table) . " (" . implode(", ", array_keys($set)) . ") VALUES (" . implode(", ", $set) . ")")
)) {
return false;
}
}
return true;
}
function slowQuery($query, $timeout) {
$this->_conn->query("SET statement_timeout = " . (1000 * $timeout));
$this->_conn->timeout = 1000 * $timeout;
return $query;
}
function convertSearch($idf, $val, $field) {
return (preg_match('~char|text'
. (!preg_match('~LIKE~', $val["op"]) ? '|date|time(stamp)?|boolean|uuid|' . number_type() : '')
. '~', $field["type"])
? $idf
: "CAST($idf AS text)"
);
}
function quoteBinary($s) {
return $this->_conn->quoteBinary($s);
}
function warnings() {
return $this->_conn->warnings();
}
function tableHelp($name) {
$links = array(
"information_schema" => "infoschema",
"pg_catalog" => "catalog",
);
$link = $links[$_GET["ns"]];
if ($link) {
return "$link-" . str_replace("_", "-", $name) . ".html";
}
}
}
function idf_escape($idf) {
return '"' . str_replace('"', '""', $idf) . '"';
}
function table($idf) {
return idf_escape($idf);
}
function connect() {
global $adminer, $types, $structured_types;
$connection = new Min_DB;
$credentials = $adminer->credentials();
if ($connection->connect($credentials[0], $credentials[1], $credentials[2])) {
if (min_version(9, 0, $connection)) {
$connection->query("SET application_name = 'Adminer'");
if (min_version(9.2, 0, $connection)) {
$structured_types[lang('Strings')][] = "json";
$types["json"] = 4294967295;
if (min_version(9.4, 0, $connection)) {
$structured_types[lang('Strings')][] = "jsonb";
$types["jsonb"] = 4294967295;
}
}
}
return $connection;
}
return $connection->error;
}
function get_databases() {
return get_vals("SELECT datname FROM pg_database WHERE has_database_privilege(datname, 'CONNECT') ORDER BY datname");
}
function limit($query, $where, $limit, $offset = 0, $separator = " ") {
return " $query$where" . ($limit !== null ? $separator . "LIMIT $limit" . ($offset ? " OFFSET $offset" : "") : "");
}
function limit1($table, $query, $where, $separator = "\n") {
return (preg_match('~^INTO~', $query)
? limit($query, $where, 1, 0, $separator)
: " $query" . (is_view(table_status1($table)) ? $where : $separator . "WHERE ctid = (SELECT ctid FROM " . table($table) . $where . $separator . "LIMIT 1)")
);
}
function db_collation($db, $collations) {
global $connection;
return $connection->result("SELECT datcollate FROM pg_database WHERE datname = " . q($db));
}
function engines() {
return array();
}
function logged_user() {
global $connection;
return $connection->result("SELECT user");
}
function tables_list() {
$query = "SELECT table_name, table_type FROM information_schema.tables WHERE table_schema = current_schema()";
if (support('materializedview')) { // ' - support("materializedview") could be removed by compile.php
$query .= "
UNION ALL
SELECT matviewname, 'MATERIALIZED VIEW'
FROM pg_matviews
WHERE schemaname = current_schema()";
}
$query .= "
ORDER BY 1";
return get_key_vals($query);
}
function count_tables($databases) {
return array(); // would require reconnect
}
function table_status($name = "") {
$return = array();
foreach (get_rows("SELECT c.relname AS \"Name\", CASE c.relkind WHEN 'r' THEN 'table' WHEN 'm' THEN 'materialized view' ELSE 'view' END AS \"Engine\", pg_relation_size(c.oid) AS \"Data_length\", pg_total_relation_size(c.oid) - pg_relation_size(c.oid) AS \"Index_length\", obj_description(c.oid, 'pg_class') AS \"Comment\", " . (min_version(12) ? "''" : "CASE WHEN c.relhasoids THEN 'oid' ELSE '' END") . " AS \"Oid\", c.reltuples as \"Rows\", n.nspname
FROM pg_class c
JOIN pg_namespace n ON(n.nspname = current_schema() AND n.oid = c.relnamespace)
WHERE relkind IN ('r', 'm', 'v', 'f', 'p')
" . ($name != "" ? "AND relname = " . q($name) : "ORDER BY relname")
) as $row) { //! Index_length, Auto_increment
$return[$row["Name"]] = $row;
}
return ($name != "" ? $return[$name] : $return);
}
function is_view($table_status) {
return in_array($table_status["Engine"], array("view", "materialized view"));
}
function fk_support($table_status) {
return true;
}
function fields($table) {
$return = array();
$aliases = array(
'timestamp without time zone' => 'timestamp',
'timestamp with time zone' => 'timestamptz',
);
foreach (get_rows("SELECT a.attname AS field, format_type(a.atttypid, a.atttypmod) AS full_type, pg_get_expr(d.adbin, d.adrelid) AS default, a.attnotnull::int, col_description(c.oid, a.attnum) AS comment" . (min_version(10) ? ", a.attidentity" : "") . "
FROM pg_class c
JOIN pg_namespace n ON c.relnamespace = n.oid
JOIN pg_attribute a ON c.oid = a.attrelid
LEFT JOIN pg_attrdef d ON c.oid = d.adrelid AND a.attnum = d.adnum
WHERE c.relname = " . q($table) . "
AND n.nspname = current_schema()
AND NOT a.attisdropped
AND a.attnum > 0
ORDER BY a.attnum"
) as $row) {
//! collation, primary
preg_match('~([^([]+)(\((.*)\))?([a-z ]+)?((\[[0-9]*])*)$~', $row["full_type"], $match);
list(, $type, $length, $row["length"], $addon, $array) = $match;
$row["length"] .= $array;
$check_type = $type . $addon;
if (isset($aliases[$check_type])) {
$row["type"] = $aliases[$check_type];
$row["full_type"] = $row["type"] . $length . $array;
} else {
$row["type"] = $type;
$row["full_type"] = $row["type"] . $length . $addon . $array;
}
if (in_array($row['attidentity'], array('a', 'd'))) {
$row['default'] = 'GENERATED ' . ($row['attidentity'] == 'd' ? 'BY DEFAULT' : 'ALWAYS') . ' AS IDENTITY';
}
$row["null"] = !$row["attnotnull"];
$row["auto_increment"] = $row['attidentity'] || preg_match('~^nextval\(~i', $row["default"]);
$row["privileges"] = array("insert" => 1, "select" => 1, "update" => 1);
if (preg_match('~(.+)::[^,)]+(.*)~', $row["default"], $match)) {
$row["default"] = ($match[1] == "NULL" ? null : idf_unescape($match[1]) . $match[2]);
}
$return[$row["field"]] = $row;
}
return $return;
}
function indexes($table, $connection2 = null) {
global $connection;
if (!is_object($connection2)) {
$connection2 = $connection;
}
$return = array();
$table_oid = $connection2->result("SELECT oid FROM pg_class WHERE relnamespace = (SELECT oid FROM pg_namespace WHERE nspname = current_schema()) AND relname = " . q($table));
$columns = get_key_vals("SELECT attnum, attname FROM pg_attribute WHERE attrelid = $table_oid AND attnum > 0", $connection2);
foreach (get_rows("SELECT relname, indisunique::int, indisprimary::int, indkey, indoption, (indpred IS NOT NULL)::int as indispartial FROM pg_index i, pg_class ci WHERE i.indrelid = $table_oid AND ci.oid = i.indexrelid", $connection2) as $row) {
$relname = $row["relname"];
$return[$relname]["type"] = ($row["indispartial"] ? "INDEX" : ($row["indisprimary"] ? "PRIMARY" : ($row["indisunique"] ? "UNIQUE" : "INDEX")));
$return[$relname]["columns"] = array();
foreach (explode(" ", $row["indkey"]) as $indkey) {
$return[$relname]["columns"][] = $columns[$indkey];
}
$return[$relname]["descs"] = array();
foreach (explode(" ", $row["indoption"]) as $indoption) {
$return[$relname]["descs"][] = ($indoption & 1 ? '1' : null); // 1 - INDOPTION_DESC
}
$return[$relname]["lengths"] = array();
}
return $return;
}
function foreign_keys($table) {
global $on_actions;
$return = array();
foreach (get_rows("SELECT conname, condeferrable::int AS deferrable, pg_get_constraintdef(oid) AS definition
FROM pg_constraint
WHERE conrelid = (SELECT pc.oid FROM pg_class AS pc INNER JOIN pg_namespace AS pn ON (pn.oid = pc.relnamespace) WHERE pc.relname = " . q($table) . " AND pn.nspname = current_schema())
AND contype = 'f'::char
ORDER BY conkey, conname") as $row) {
if (preg_match('~FOREIGN KEY\s*\((.+)\)\s*REFERENCES (.+)\((.+)\)(.*)$~iA', $row['definition'], $match)) {
$row['source'] = array_map('idf_unescape', array_map('trim', explode(',', $match[1])));
if (preg_match('~^(("([^"]|"")+"|[^"]+)\.)?"?("([^"]|"")+"|[^"]+)$~', $match[2], $match2)) {
$row['ns'] = idf_unescape($match2[2]);
$row['table'] = idf_unescape($match2[4]);
}
$row['target'] = array_map('idf_unescape', array_map('trim', explode(',', $match[3])));
$row['on_delete'] = (preg_match("~ON DELETE ($on_actions)~", $match[4], $match2) ? $match2[1] : 'NO ACTION');
$row['on_update'] = (preg_match("~ON UPDATE ($on_actions)~", $match[4], $match2) ? $match2[1] : 'NO ACTION');
$return[$row['conname']] = $row;
}
}
return $return;
}
function constraints($table) {
global $on_actions;
$return = array();
foreach (get_rows("SELECT conname, consrc
FROM pg_catalog.pg_constraint
INNER JOIN pg_catalog.pg_namespace ON pg_constraint.connamespace = pg_namespace.oid
INNER JOIN pg_catalog.pg_class ON pg_constraint.conrelid = pg_class.oid AND pg_constraint.connamespace = pg_class.relnamespace
WHERE pg_constraint.contype = 'c'
AND conrelid != 0 -- handle only CONSTRAINTs here, not TYPES
AND nspname = current_schema()
AND relname = " . q($table) . "
ORDER BY connamespace, conname") as $row) {
$return[$row['conname']] = $row['consrc'];
}
return $return;
}
function view($name) {
global $connection;
return array("select" => trim($connection->result("SELECT pg_get_viewdef(" . $connection->result("SELECT oid FROM pg_class WHERE relnamespace = (SELECT oid FROM pg_namespace WHERE nspname = current_schema()) AND relname = " . q($name)) . ")")));
}
function collations() {
//! supported in CREATE DATABASE
return array();
}
function information_schema($db) {
return ($db == "information_schema");
}
function error() {
global $connection;
$return = h($connection->error);
if (preg_match('~^(.*\n)?([^\n]*)\n( *)\^(\n.*)?$~s', $return, $match)) {
$return = $match[1] . preg_replace('~((?:[^&]|&[^;]*;){' . strlen($match[3]) . '})(.*)~', '\1<b>\2</b>', $match[2]) . $match[4];
}
return nl_br($return);
}
function create_database($db, $collation) {
return queries("CREATE DATABASE " . idf_escape($db) . ($collation ? " ENCODING " . idf_escape($collation) : ""));
}
function drop_databases($databases) {
global $connection;
$connection->close();
return apply_queries("DROP DATABASE", $databases, 'idf_escape');
}
function rename_database($name, $collation) {
//! current database cannot be renamed
return queries("ALTER DATABASE " . idf_escape(DB) . " RENAME TO " . idf_escape($name));
}
function auto_increment() {
return "";
}
function alter_table($table, $name, $fields, $foreign, $comment, $engine, $collation, $auto_increment, $partitioning) {
$alter = array();
$queries = array();
if ($table != "" && $table != $name) {
$queries[] = "ALTER TABLE " . table($table) . " RENAME TO " . table($name);
}
foreach ($fields as $field) {
$column = idf_escape($field[0]);
$val = $field[1];
if (!$val) {
$alter[] = "DROP $column";
} else {
$val5 = $val[5];
unset($val[5]);
if ($field[0] == "") {
if (isset($val[6])) { // auto_increment
$val[1] = ($val[1] == " bigint" ? " big" : ($val[1] == " smallint" ? " small" : " ")) . "serial";
}
$alter[] = ($table != "" ? "ADD " : " ") . implode($val);
if (isset($val[6])) {
$alter[] = ($table != "" ? "ADD" : " ") . " PRIMARY KEY ($val[0])";
}
} else {
if ($column != $val[0]) {
$queries[] = "ALTER TABLE " . table($name) . " RENAME $column TO $val[0]";
}
$alter[] = "ALTER $column TYPE$val[1]";
if (!$val[6]) {
$alter[] = "ALTER $column " . ($val[3] ? "SET$val[3]" : "DROP DEFAULT");
$alter[] = "ALTER $column " . ($val[2] == " NULL" ? "DROP NOT" : "SET") . $val[2];
}
}
if ($field[0] != "" || $val5 != "") {
$queries[] = "COMMENT ON COLUMN " . table($name) . ".$val[0] IS " . ($val5 != "" ? substr($val5, 9) : "''");
}
}
}
$alter = array_merge($alter, $foreign);
if ($table == "") {
array_unshift($queries, "CREATE TABLE " . table($name) . " (\n" . implode(",\n", $alter) . "\n)");
} elseif ($alter) {
array_unshift($queries, "ALTER TABLE " . table($table) . "\n" . implode(",\n", $alter));
}
if ($comment !== null) {
$queries[] = "COMMENT ON TABLE " . table($name) . " IS " . q($comment);
}
if ($auto_increment != "") {
//! $queries[] = "SELECT setval(pg_get_serial_sequence(" . q($name) . ", ), $auto_increment)";
}
foreach ($queries as $query) {
if (!queries($query)) {
return false;
}
}
return true;
}
function alter_indexes($table, $alter) {
$create = array();
$drop = array();
$queries = array();
foreach ($alter as $val) {
if ($val[0] != "INDEX") {
//! descending UNIQUE indexes results in syntax error
$create[] = ($val[2] == "DROP"
? "\nDROP CONSTRAINT " . idf_escape($val[1])
: "\nADD" . ($val[1] != "" ? " CONSTRAINT " . idf_escape($val[1]) : "") . " $val[0] " . ($val[0] == "PRIMARY" ? "KEY " : "") . "(" . implode(", ", $val[2]) . ")"
);
} elseif ($val[2] == "DROP") {
$drop[] = idf_escape($val[1]);
} else {
$queries[] = "CREATE INDEX " . idf_escape($val[1] != "" ? $val[1] : uniqid($table . "_")) . " ON " . table($table) . " (" . implode(", ", $val[2]) . ")";
}
}
if ($create) {
array_unshift($queries, "ALTER TABLE " . table($table) . implode(",", $create));
}
if ($drop) {
array_unshift($queries, "DROP INDEX " . implode(", ", $drop));
}
foreach ($queries as $query) {
if (!queries($query)) {
return false;
}
}
return true;
}
function truncate_tables($tables) {
return queries("TRUNCATE " . implode(", ", array_map('table', $tables)));
return true;
}
function drop_views($views) {
return drop_tables($views);
}
function drop_tables($tables) {
foreach ($tables as $table) {
$status = table_status($table);
if (!queries("DROP " . strtoupper($status["Engine"]) . " " . table($table))) {
return false;
}
}
return true;
}
function move_tables($tables, $views, $target) {
foreach (array_merge($tables, $views) as $table) {
$status = table_status($table);
if (!queries("ALTER " . strtoupper($status["Engine"]) . " " . table($table) . " SET SCHEMA " . idf_escape($target))) {
return false;
}
}
return true;
}
function trigger($name, $table) {
if ($name == "") {
return array("Statement" => "EXECUTE PROCEDURE ()");
}
$columns = array();
$where = "WHERE trigger_schema = current_schema() AND event_object_table = " . q($table) . " AND trigger_name = " . q($name);
foreach (get_rows("SELECT * FROM information_schema.triggered_update_columns $where") as $row) {
$columns[] = $row["event_object_column"];
}
$return = array();
foreach (get_rows('SELECT trigger_name AS "Trigger", action_timing AS "Timing", event_manipulation AS "Event", \'FOR EACH \' || action_orientation AS "Type", action_statement AS "Statement" FROM information_schema.triggers ' . "$where ORDER BY event_manipulation DESC") as $row) {
if ($columns && $row["Event"] == "UPDATE") {
$row["Event"] .= " OF";
}
$row["Of"] = implode(", ", $columns);
if ($return) {
$row["Event"] .= " OR $return[Event]";
}
$return = $row;
}
return $return;
}
function triggers($table) {
$return = array();
foreach (get_rows("SELECT * FROM information_schema.triggers WHERE trigger_schema = current_schema() AND event_object_table = " . q($table)) as $row) {
$trigger = trigger($row["trigger_name"], $table);
$return[$trigger["Trigger"]] = array($trigger["Timing"], $trigger["Event"]);
}
return $return;
}
function trigger_options() {
return array(
"Timing" => array("BEFORE", "AFTER"),
"Event" => array("INSERT", "UPDATE", "UPDATE OF", "DELETE", "INSERT OR UPDATE", "INSERT OR UPDATE OF", "DELETE OR INSERT", "DELETE OR UPDATE", "DELETE OR UPDATE OF", "DELETE OR INSERT OR UPDATE", "DELETE OR INSERT OR UPDATE OF"),
"Type" => array("FOR EACH ROW", "FOR EACH STATEMENT"),
);
}
function routine($name, $type) {
$rows = get_rows('SELECT routine_definition AS definition, LOWER(external_language) AS language, *
FROM information_schema.routines
WHERE routine_schema = current_schema() AND specific_name = ' . q($name));
$return = $rows[0];
$return["returns"] = array("type" => $return["type_udt_name"]);
$return["fields"] = get_rows('SELECT parameter_name AS field, data_type AS type, character_maximum_length AS length, parameter_mode AS inout
FROM information_schema.parameters
WHERE specific_schema = current_schema() AND specific_name = ' . q($name) . '
ORDER BY ordinal_position');
return $return;
}
function routines() {
return get_rows('SELECT specific_name AS "SPECIFIC_NAME", routine_type AS "ROUTINE_TYPE", routine_name AS "ROUTINE_NAME", type_udt_name AS "DTD_IDENTIFIER"
FROM information_schema.routines
WHERE routine_schema = current_schema()
ORDER BY SPECIFIC_NAME');
}
function routine_languages() {
return get_vals("SELECT LOWER(lanname) FROM pg_catalog.pg_language");
}
function routine_id($name, $row) {
$return = array();
foreach ($row["fields"] as $field) {
$return[] = $field["type"];
}
return idf_escape($name) . "(" . implode(", ", $return) . ")";
}
function last_id() {
return 0; // there can be several sequences
}
function explain($connection, $query) {
return $connection->query("EXPLAIN $query");
}
function found_rows($table_status, $where) {
global $connection;
if (preg_match(
"~ rows=([0-9]+)~",
$connection->result("EXPLAIN SELECT * FROM " . idf_escape($table_status["Name"]) . ($where ? " WHERE " . implode(" AND ", $where) : "")),
$regs
)) {
return $regs[1];
}
return false;
}
function types() {
return get_vals("SELECT typname
FROM pg_type
WHERE typnamespace = (SELECT oid FROM pg_namespace WHERE nspname = current_schema())
AND typtype IN ('b','d','e')
AND typelem = 0"
);
}
function schemas() {
return get_vals("SELECT nspname FROM pg_namespace ORDER BY nspname");
}
function get_schema() {
global $connection;
return $connection->result("SELECT current_schema()");
}
function set_schema($schema, $connection2 = null) {
global $connection, $types, $structured_types;
if (!$connection2) {
$connection2 = $connection;
}
$return = $connection2->query("SET search_path TO " . idf_escape($schema));
foreach (types() as $type) { //! get types from current_schemas('t')
if (!isset($types[$type])) {
$types[$type] = 0;
$structured_types[lang('User types')][] = $type;
}
}
return $return;
}
// create_sql() produces CREATE TABLE without FK CONSTRAINTs
// foreign_keys_sql() produces all FK CONSTRAINTs as ALTER TABLE ... ADD CONSTRAINT
// so that all FKs can be added after all tables have been created, avoiding any need to reorder CREATE TABLE statements in order of their FK dependencies
function foreign_keys_sql($table) {
$return = "";
$status = table_status($table);
$fkeys = foreign_keys($table);
ksort($fkeys);
foreach ($fkeys as $fkey_name => $fkey) {
$return .= "ALTER TABLE ONLY " . idf_escape($status['nspname']) . "." . idf_escape($status['Name']) . " ADD CONSTRAINT " . idf_escape($fkey_name) . " $fkey[definition] " . ($fkey['deferrable'] ? 'DEFERRABLE' : 'NOT DEFERRABLE') . ";\n";
}
return ($return ? "$return\n" : $return);
}
function create_sql($table, $auto_increment, $style) {
global $connection;
$return = '';
$return_parts = array();
$sequences = array();
$status = table_status($table);
if (is_view($status)) {
$view = view($table);
return rtrim("CREATE VIEW " . idf_escape($table) . " AS $view[select]", ";");
}
$fields = fields($table);
$indexes = indexes($table);
ksort($indexes);
$constraints = constraints($table);
if (!$status || empty($fields)) {
return false;
}
$return = "CREATE TABLE " . idf_escape($status['nspname']) . "." . idf_escape($status['Name']) . " (\n ";
// fields' definitions
foreach ($fields as $field_name => $field) {
$part = idf_escape($field['field']) . ' ' . $field['full_type']
. default_value($field)
. ($field['attnotnull'] ? " NOT NULL" : "");
$return_parts[] = $part;
// sequences for fields
if (preg_match('~nextval\(\'([^\']+)\'\)~', $field['default'], $matches)) {
$sequence_name = $matches[1];
$sq = reset(get_rows(min_version(10)
? "SELECT *, cache_size AS cache_value FROM pg_sequences WHERE schemaname = current_schema() AND sequencename = " . q($sequence_name)
: "SELECT * FROM $sequence_name"
));
$sequences[] = ($style == "DROP+CREATE" ? "DROP SEQUENCE IF EXISTS $sequence_name;\n" : "")
. "CREATE SEQUENCE $sequence_name INCREMENT $sq[increment_by] MINVALUE $sq[min_value] MAXVALUE $sq[max_value]" . ($auto_increment && $sq['last_value'] ? " START $sq[last_value]" : "") . " CACHE $sq[cache_value];";
}
}
// adding sequences before table definition
if (!empty($sequences)) {
$return = implode("\n\n", $sequences) . "\n\n$return";
}
// primary + unique keys
foreach ($indexes as $index_name => $index) {
switch($index['type']) {
case 'UNIQUE': $return_parts[] = "CONSTRAINT " . idf_escape($index_name) . " UNIQUE (" . implode(', ', array_map('idf_escape', $index['columns'])) . ")"; break;
case 'PRIMARY': $return_parts[] = "CONSTRAINT " . idf_escape($index_name) . " PRIMARY KEY (" . implode(', ', array_map('idf_escape', $index['columns'])) . ")"; break;
}
}
foreach ($constraints as $conname => $consrc) {
$return_parts[] = "CONSTRAINT " . idf_escape($conname) . " CHECK $consrc";
}
$return .= implode(",\n ", $return_parts) . "\n) WITH (oids = " . ($status['Oid'] ? 'true' : 'false') . ");";
// "basic" indexes after table definition
foreach ($indexes as $index_name => $index) {
if ($index['type'] == 'INDEX') {
$columns = array();
foreach ($index['columns'] as $key => $val) {
$columns[] = idf_escape($val) . ($index['descs'][$key] ? " DESC" : "");
}
$return .= "\n\nCREATE INDEX " . idf_escape($index_name) . " ON " . idf_escape($status['nspname']) . "." . idf_escape($status['Name']) . " USING btree (" . implode(', ', $columns) . ");";
}
}
// coments for table & fields
if ($status['Comment']) {
$return .= "\n\nCOMMENT ON TABLE " . idf_escape($status['nspname']) . "." . idf_escape($status['Name']) . " IS " . q($status['Comment']) . ";";
}
foreach ($fields as $field_name => $field) {
if ($field['comment']) {
$return .= "\n\nCOMMENT ON COLUMN " . idf_escape($status['nspname']) . "." . idf_escape($status['Name']) . "." . idf_escape($field_name) . " IS " . q($field['comment']) . ";";
}
}
return rtrim($return, ';');
}
function truncate_sql($table) {
return "TRUNCATE " . table($table);
}
function trigger_sql($table) {
$status = table_status($table);
$return = "";
foreach (triggers($table) as $trg_id => $trg) {
$trigger = trigger($trg_id, $status['Name']);
$return .= "\nCREATE TRIGGER " . idf_escape($trigger['Trigger']) . " $trigger[Timing] $trigger[Event] ON " . idf_escape($status["nspname"]) . "." . idf_escape($status['Name']) . " $trigger[Type] $trigger[Statement];;\n";
}
return $return;
}
function use_sql($database) {
return "\connect " . idf_escape($database);
}
function show_variables() {
return get_key_vals("SHOW ALL");
}
function process_list() {
return get_rows("SELECT * FROM pg_stat_activity ORDER BY " . (min_version(9.2) ? "pid" : "procpid"));
}
function show_status() {
}
function convert_field($field) {
}
function unconvert_field($field, $return) {
return $return;
}
function support($feature) {
return preg_match('~^(database|table|columns|sql|indexes|descidx|comment|view|' . (min_version(9.3) ? 'materializedview|' : '') . 'scheme|routine|processlist|sequence|trigger|type|variables|drop_col|kill|dump)$~', $feature);
}
function kill_process($val) {
return queries("SELECT pg_terminate_backend(" . number($val) . ")");
}
function connection_id(){
return "SELECT pg_backend_pid()";
}
function max_connections() {
global $connection;
return $connection->result("SHOW max_connections");
}
function driver_config() {
$types = array();
$structured_types = array();
foreach (array( //! arrays
lang('Numbers') => array("smallint" => 5, "integer" => 10, "bigint" => 19, "boolean" => 1, "numeric" => 0, "real" => 7, "double precision" => 16, "money" => 20),
lang('Date and time') => array("date" => 13, "time" => 17, "timestamp" => 20, "timestamptz" => 21, "interval" => 0),
lang('Strings') => array("character" => 0, "character varying" => 0, "text" => 0, "tsquery" => 0, "tsvector" => 0, "uuid" => 0, "xml" => 0),
lang('Binary') => array("bit" => 0, "bit varying" => 0, "bytea" => 0),
lang('Network') => array("cidr" => 43, "inet" => 43, "macaddr" => 17, "txid_snapshot" => 0),
lang('Geometry') => array("box" => 0, "circle" => 0, "line" => 0, "lseg" => 0, "path" => 0, "point" => 0, "polygon" => 0),
) as $key => $val) { //! can be retrieved from pg_type
$types += $val;
$structured_types[$key] = array_keys($val);
}
return array(
'possible_drivers' => array("PgSQL", "PDO_PgSQL"),
'jush' => "pgsql",
'types' => $types,
'structured_types' => $structured_types,
'unsigned' => array(),
'operators' => array("=", "<", ">", "<=", ">=", "!=", "~", "~*", "!~", "!~*", "LIKE", "LIKE %%", "ILIKE", "ILIKE %%", "IN", "IS NULL", "NOT LIKE", "NOT IN", "IS NOT NULL"), // no "SQL" to avoid CSRF
'operator_regexp' => '~*',
'functions' => array("char_length", "distinct", "lower", "round", "to_hex", "to_timestamp", "upper"),
'grouping' => array("avg", "count", "count distinct", "max", "min", "sum"),
'edit_functions' => array(
array(
"char" => "md5",
"date|time" => "now",
), array(
number_type() => "+/-",
"date|time" => "+ interval/- interval", //! escape
"char|text" => "||",
)
),
);
}
}

View file

@ -1,809 +0,0 @@
<?php
$drivers["sqlite"] = "SQLite 3";
$drivers["sqlite2"] = "SQLite 2";
if (isset($_GET["sqlite"]) || isset($_GET["sqlite2"])) {
define("DRIVER", (isset($_GET["sqlite"]) ? "sqlite" : "sqlite2"));
if (class_exists(isset($_GET["sqlite"]) ? "SQLite3" : "SQLiteDatabase")) {
if (isset($_GET["sqlite"])) {
class Min_SQLite {
var $extension = "SQLite3", $server_info, $affected_rows, $errno, $error, $_link;
function __construct($filename) {
$this->_link = new SQLite3($filename);
$version = $this->_link->version();
$this->server_info = $version["versionString"];
}
function query($query) {
$result = @$this->_link->query($query);
$this->error = "";
if (!$result) {
$this->errno = $this->_link->lastErrorCode();
$this->error = $this->_link->lastErrorMsg();
return false;
} elseif ($result->numColumns()) {
return new Min_Result($result);
}
$this->affected_rows = $this->_link->changes();
return true;
}
function quote($string) {
return (is_utf8($string)
? "'" . $this->_link->escapeString($string) . "'"
: "x'" . reset(unpack('H*', $string)) . "'"
);
}
function store_result() {
return $this->_result;
}
function result($query, $field = 0) {
$result = $this->query($query);
if (!is_object($result)) {
return false;
}
$row = $result->_result->fetchArray();
return $row[$field];
}
}
class Min_Result {
var $_result, $_offset = 0, $num_rows;
function __construct($result) {
$this->_result = $result;
}
function fetch_assoc() {
return $this->_result->fetchArray(SQLITE3_ASSOC);
}
function fetch_row() {
return $this->_result->fetchArray(SQLITE3_NUM);
}
function fetch_field() {
$column = $this->_offset++;
$type = $this->_result->columnType($column);
return (object) array(
"name" => $this->_result->columnName($column),
"type" => $type,
"charsetnr" => ($type == SQLITE3_BLOB ? 63 : 0), // 63 - binary
);
}
function __desctruct() {
return $this->_result->finalize();
}
}
} else {
class Min_SQLite {
var $extension = "SQLite", $server_info, $affected_rows, $error, $_link;
function __construct($filename) {
$this->server_info = sqlite_libversion();
$this->_link = new SQLiteDatabase($filename);
}
function query($query, $unbuffered = false) {
$method = ($unbuffered ? "unbufferedQuery" : "query");
$result = @$this->_link->$method($query, SQLITE_BOTH, $error);
$this->error = "";
if (!$result) {
$this->error = $error;
return false;
} elseif ($result === true) {
$this->affected_rows = $this->changes();
return true;
}
return new Min_Result($result);
}
function quote($string) {
return "'" . sqlite_escape_string($string) . "'";
}
function store_result() {
return $this->_result;
}
function result($query, $field = 0) {
$result = $this->query($query);
if (!is_object($result)) {
return false;
}
$row = $result->_result->fetch();
return $row[$field];
}
}
class Min_Result {
var $_result, $_offset = 0, $num_rows;
function __construct($result) {
$this->_result = $result;
if (method_exists($result, 'numRows')) { // not available in unbuffered query
$this->num_rows = $result->numRows();
}
}
function fetch_assoc() {
$row = $this->_result->fetch(SQLITE_ASSOC);
if (!$row) {
return false;
}
$return = array();
foreach ($row as $key => $val) {
$return[idf_unescape($key)] = $val;
}
return $return;
}
function fetch_row() {
return $this->_result->fetch(SQLITE_NUM);
}
function fetch_field() {
$name = $this->_result->fieldName($this->_offset++);
$pattern = '(\[.*]|"(?:[^"]|"")*"|(.+))';
if (preg_match("~^($pattern\\.)?$pattern\$~", $name, $match)) {
$table = ($match[3] != "" ? $match[3] : idf_unescape($match[2]));
$name = ($match[5] != "" ? $match[5] : idf_unescape($match[4]));
}
return (object) array(
"name" => $name,
"orgname" => $name,
"orgtable" => $table,
);
}
}
}
} elseif (extension_loaded("pdo_sqlite")) {
class Min_SQLite extends Min_PDO {
var $extension = "PDO_SQLite";
function __construct($filename) {
$this->dsn(DRIVER . ":$filename", "", "");
}
}
}
if (class_exists("Min_SQLite")) {
class Min_DB extends Min_SQLite {
function __construct() {
parent::__construct(":memory:");
$this->query("PRAGMA foreign_keys = 1");
}
function select_db($filename) {
if (is_readable($filename) && $this->query("ATTACH " . $this->quote(preg_match("~(^[/\\\\]|:)~", $filename) ? $filename : dirname($_SERVER["SCRIPT_FILENAME"]) . "/$filename") . " AS a")) { // is_readable - SQLite 3
parent::__construct($filename);
$this->query("PRAGMA foreign_keys = 1");
$this->query("PRAGMA busy_timeout = 500");
return true;
}
return false;
}
function multi_query($query) {
return $this->_result = $this->query($query);
}
function next_result() {
return false;
}
}
}
class Min_Driver extends Min_SQL {
function insertUpdate($table, $rows, $primary) {
$values = array();
foreach ($rows as $set) {
$values[] = "(" . implode(", ", $set) . ")";
}
return queries("REPLACE INTO " . table($table) . " (" . implode(", ", array_keys(reset($rows))) . ") VALUES\n" . implode(",\n", $values));
}
function tableHelp($name) {
if ($name == "sqlite_sequence") {
return "fileformat2.html#seqtab";
}
if ($name == "sqlite_master") {
return "fileformat2.html#$name";
}
}
}
function idf_escape($idf) {
return '"' . str_replace('"', '""', $idf) . '"';
}
function table($idf) {
return idf_escape($idf);
}
function connect() {
global $adminer;
list(, , $password) = $adminer->credentials();
if ($password != "") {
return lang('Database does not support password.');
}
return new Min_DB;
}
function get_databases() {
return array();
}
function limit($query, $where, $limit, $offset = 0, $separator = " ") {
return " $query$where" . ($limit !== null ? $separator . "LIMIT $limit" . ($offset ? " OFFSET $offset" : "") : "");
}
function limit1($table, $query, $where, $separator = "\n") {
global $connection;
return (preg_match('~^INTO~', $query) || $connection->result("SELECT sqlite_compileoption_used('ENABLE_UPDATE_DELETE_LIMIT')")
? limit($query, $where, 1, 0, $separator)
: " $query WHERE rowid = (SELECT rowid FROM " . table($table) . $where . $separator . "LIMIT 1)" //! use primary key in tables with WITHOUT rowid
);
}
function db_collation($db, $collations) {
global $connection;
return $connection->result("PRAGMA encoding"); // there is no database list so $db == DB
}
function engines() {
return array();
}
function logged_user() {
return get_current_user(); // should return effective user
}
function tables_list() {
return get_key_vals("SELECT name, type FROM sqlite_master WHERE type IN ('table', 'view') ORDER BY (name = 'sqlite_sequence'), name");
}
function count_tables($databases) {
return array();
}
function table_status($name = "") {
global $connection;
$return = array();
foreach (get_rows("SELECT name AS Name, type AS Engine, 'rowid' AS Oid, '' AS Auto_increment FROM sqlite_master WHERE type IN ('table', 'view') " . ($name != "" ? "AND name = " . q($name) : "ORDER BY name")) as $row) {
$row["Rows"] = $connection->result("SELECT COUNT(*) FROM " . idf_escape($row["Name"]));
$return[$row["Name"]] = $row;
}
foreach (get_rows("SELECT * FROM sqlite_sequence", null, "") as $row) {
$return[$row["name"]]["Auto_increment"] = $row["seq"];
}
return ($name != "" ? $return[$name] : $return);
}
function is_view($table_status) {
return $table_status["Engine"] == "view";
}
function fk_support($table_status) {
global $connection;
return !$connection->result("SELECT sqlite_compileoption_used('OMIT_FOREIGN_KEY')");
}
function fields($table) {
global $connection;
$return = array();
$primary = "";
foreach (get_rows("PRAGMA table_info(" . table($table) . ")") as $row) {
$name = $row["name"];
$type = strtolower($row["type"]);
$default = $row["dflt_value"];
$return[$name] = array(
"field" => $name,
"type" => (preg_match('~int~i', $type) ? "integer" : (preg_match('~char|clob|text~i', $type) ? "text" : (preg_match('~blob~i', $type) ? "blob" : (preg_match('~real|floa|doub~i', $type) ? "real" : "numeric")))),
"full_type" => $type,
"default" => (preg_match("~'(.*)'~", $default, $match) ? str_replace("''", "'", $match[1]) : ($default == "NULL" ? null : $default)),
"null" => !$row["notnull"],
"privileges" => array("select" => 1, "insert" => 1, "update" => 1),
"primary" => $row["pk"],
);
if ($row["pk"]) {
if ($primary != "") {
$return[$primary]["auto_increment"] = false;
} elseif (preg_match('~^integer$~i', $type)) {
$return[$name]["auto_increment"] = true;
}
$primary = $name;
}
}
$sql = $connection->result("SELECT sql FROM sqlite_master WHERE type = 'table' AND name = " . q($table));
preg_match_all('~(("[^"]*+")+|[a-z0-9_]+)\s+text\s+COLLATE\s+(\'[^\']+\'|\S+)~i', $sql, $matches, PREG_SET_ORDER);
foreach ($matches as $match) {
$name = str_replace('""', '"', preg_replace('~^"|"$~', '', $match[1]));
if ($return[$name]) {
$return[$name]["collation"] = trim($match[3], "'");
}
}
return $return;
}
function indexes($table, $connection2 = null) {
global $connection;
if (!is_object($connection2)) {
$connection2 = $connection;
}
$return = array();
$sql = $connection2->result("SELECT sql FROM sqlite_master WHERE type = 'table' AND name = " . q($table));
if (preg_match('~\bPRIMARY\s+KEY\s*\((([^)"]+|"[^"]*"|`[^`]*`)++)~i', $sql, $match)) {
$return[""] = array("type" => "PRIMARY", "columns" => array(), "lengths" => array(), "descs" => array());
preg_match_all('~((("[^"]*+")+|(?:`[^`]*+`)+)|(\S+))(\s+(ASC|DESC))?(,\s*|$)~i', $match[1], $matches, PREG_SET_ORDER);
foreach ($matches as $match) {
$return[""]["columns"][] = idf_unescape($match[2]) . $match[4];
$return[""]["descs"][] = (preg_match('~DESC~i', $match[5]) ? '1' : null);
}
}
if (!$return) {
foreach (fields($table) as $name => $field) {
if ($field["primary"]) {
$return[""] = array("type" => "PRIMARY", "columns" => array($name), "lengths" => array(), "descs" => array(null));
}
}
}
$sqls = get_key_vals("SELECT name, sql FROM sqlite_master WHERE type = 'index' AND tbl_name = " . q($table), $connection2);
foreach (get_rows("PRAGMA index_list(" . table($table) . ")", $connection2) as $row) {
$name = $row["name"];
$index = array("type" => ($row["unique"] ? "UNIQUE" : "INDEX"));
$index["lengths"] = array();
$index["descs"] = array();
foreach (get_rows("PRAGMA index_info(" . idf_escape($name) . ")", $connection2) as $row1) {
$index["columns"][] = $row1["name"];
$index["descs"][] = null;
}
if (preg_match('~^CREATE( UNIQUE)? INDEX ' . preg_quote(idf_escape($name) . ' ON ' . idf_escape($table), '~') . ' \((.*)\)$~i', $sqls[$name], $regs)) {
preg_match_all('/("[^"]*+")+( DESC)?/', $regs[2], $matches);
foreach ($matches[2] as $key => $val) {
if ($val) {
$index["descs"][$key] = '1';
}
}
}
if (!$return[""] || $index["type"] != "UNIQUE" || $index["columns"] != $return[""]["columns"] || $index["descs"] != $return[""]["descs"] || !preg_match("~^sqlite_~", $name)) {
$return[$name] = $index;
}
}
return $return;
}
function foreign_keys($table) {
$return = array();
foreach (get_rows("PRAGMA foreign_key_list(" . table($table) . ")") as $row) {
$foreign_key = &$return[$row["id"]];
//! idf_unescape in SQLite2
if (!$foreign_key) {
$foreign_key = $row;
}
$foreign_key["source"][] = $row["from"];
$foreign_key["target"][] = $row["to"];
}
return $return;
}
function view($name) {
global $connection;
return array("select" => preg_replace('~^(?:[^`"[]+|`[^`]*`|"[^"]*")* AS\s+~iU', '', $connection->result("SELECT sql FROM sqlite_master WHERE name = " . q($name)))); //! identifiers may be inside []
}
function collations() {
return (isset($_GET["create"]) ? get_vals("PRAGMA collation_list", 1) : array());
}
function information_schema($db) {
return false;
}
function error() {
global $connection;
return h($connection->error);
}
function check_sqlite_name($name) {
// avoid creating PHP files on unsecured servers
global $connection;
$extensions = "db|sdb|sqlite";
if (!preg_match("~^[^\\0]*\\.($extensions)\$~", $name)) {
$connection->error = lang('Please use one of the extensions %s.', str_replace("|", ", ", $extensions));
return false;
}
return true;
}
function create_database($db, $collation) {
global $connection;
if (file_exists($db)) {
$connection->error = lang('File exists.');
return false;
}
if (!check_sqlite_name($db)) {
return false;
}
try {
$link = new Min_SQLite($db);
} catch (Exception $ex) {
$connection->error = $ex->getMessage();
return false;
}
$link->query('PRAGMA encoding = "UTF-8"');
$link->query('CREATE TABLE adminer (i)'); // otherwise creates empty file
$link->query('DROP TABLE adminer');
return true;
}
function drop_databases($databases) {
global $connection;
$connection->__construct(":memory:"); // to unlock file, doesn't work in PDO on Windows
foreach ($databases as $db) {
if (!@unlink($db)) {
$connection->error = lang('File exists.');
return false;
}
}
return true;
}
function rename_database($name, $collation) {
global $connection;
if (!check_sqlite_name($name)) {
return false;
}
$connection->__construct(":memory:");
$connection->error = lang('File exists.');
return @rename(DB, $name);
}
function auto_increment() {
return " PRIMARY KEY" . (DRIVER == "sqlite" ? " AUTOINCREMENT" : "");
}
function alter_table($table, $name, $fields, $foreign, $comment, $engine, $collation, $auto_increment, $partitioning) {
global $connection;
$use_all_fields = ($table == "" || $foreign);
foreach ($fields as $field) {
if ($field[0] != "" || !$field[1] || $field[2]) {
$use_all_fields = true;
break;
}
}
$alter = array();
$originals = array();
foreach ($fields as $field) {
if ($field[1]) {
$alter[] = ($use_all_fields ? $field[1] : "ADD " . implode($field[1]));
if ($field[0] != "") {
$originals[$field[0]] = $field[1][0];
}
}
}
if (!$use_all_fields) {
foreach ($alter as $val) {
if (!queries("ALTER TABLE " . table($table) . " $val")) {
return false;
}
}
if ($table != $name && !queries("ALTER TABLE " . table($table) . " RENAME TO " . table($name))) {
return false;
}
} elseif (!recreate_table($table, $name, $alter, $originals, $foreign, $auto_increment)) {
return false;
}
if ($auto_increment) {
queries("BEGIN");
queries("UPDATE sqlite_sequence SET seq = $auto_increment WHERE name = " . q($name)); // ignores error
if (!$connection->affected_rows) {
queries("INSERT INTO sqlite_sequence (name, seq) VALUES (" . q($name) . ", $auto_increment)");
}
queries("COMMIT");
}
return true;
}
function recreate_table($table, $name, $fields, $originals, $foreign, $auto_increment, $indexes = array()) {
global $connection;
if ($table != "") {
if (!$fields) {
foreach (fields($table) as $key => $field) {
if ($indexes) {
$field["auto_increment"] = 0;
}
$fields[] = process_field($field, $field);
$originals[$key] = idf_escape($key);
}
}
$primary_key = false;
foreach ($fields as $field) {
if ($field[6]) {
$primary_key = true;
}
}
$drop_indexes = array();
foreach ($indexes as $key => $val) {
if ($val[2] == "DROP") {
$drop_indexes[$val[1]] = true;
unset($indexes[$key]);
}
}
foreach (indexes($table) as $key_name => $index) {
$columns = array();
foreach ($index["columns"] as $key => $column) {
if (!$originals[$column]) {
continue 2;
}
$columns[] = $originals[$column] . ($index["descs"][$key] ? " DESC" : "");
}
if (!$drop_indexes[$key_name]) {
if ($index["type"] != "PRIMARY" || !$primary_key) {
$indexes[] = array($index["type"], $key_name, $columns);
}
}
}
foreach ($indexes as $key => $val) {
if ($val[0] == "PRIMARY") {
unset($indexes[$key]);
$foreign[] = " PRIMARY KEY (" . implode(", ", $val[2]) . ")";
}
}
foreach (foreign_keys($table) as $key_name => $foreign_key) {
foreach ($foreign_key["source"] as $key => $column) {
if (!$originals[$column]) {
continue 2;
}
$foreign_key["source"][$key] = idf_unescape($originals[$column]);
}
if (!isset($foreign[" $key_name"])) {
$foreign[] = " " . format_foreign_key($foreign_key);
}
}
queries("BEGIN");
}
foreach ($fields as $key => $field) {
$fields[$key] = " " . implode($field);
}
$fields = array_merge($fields, array_filter($foreign));
$temp_name = ($table == $name ? "adminer_$name" : $name);
if (!queries("CREATE TABLE " . table($temp_name) . " (\n" . implode(",\n", $fields) . "\n)")) {
// implicit ROLLBACK to not overwrite $connection->error
return false;
}
if ($table != "") {
if ($originals && !queries("INSERT INTO " . table($temp_name) . " (" . implode(", ", $originals) . ") SELECT " . implode(", ", array_map('idf_escape', array_keys($originals))) . " FROM " . table($table))) {
return false;
}
$triggers = array();
foreach (triggers($table) as $trigger_name => $timing_event) {
$trigger = trigger($trigger_name);
$triggers[] = "CREATE TRIGGER " . idf_escape($trigger_name) . " " . implode(" ", $timing_event) . " ON " . table($name) . "\n$trigger[Statement]";
}
$auto_increment = $auto_increment ? 0 : $connection->result("SELECT seq FROM sqlite_sequence WHERE name = " . q($table)); // if $auto_increment is set then it will be updated later
if (!queries("DROP TABLE " . table($table)) // drop before creating indexes and triggers to allow using old names
|| ($table == $name && !queries("ALTER TABLE " . table($temp_name) . " RENAME TO " . table($name)))
|| !alter_indexes($name, $indexes)
) {
return false;
}
if ($auto_increment) {
queries("UPDATE sqlite_sequence SET seq = $auto_increment WHERE name = " . q($name)); // ignores error
}
foreach ($triggers as $trigger) {
if (!queries($trigger)) {
return false;
}
}
queries("COMMIT");
}
return true;
}
function index_sql($table, $type, $name, $columns) {
return "CREATE $type " . ($type != "INDEX" ? "INDEX " : "")
. idf_escape($name != "" ? $name : uniqid($table . "_"))
. " ON " . table($table)
. " $columns"
;
}
function alter_indexes($table, $alter) {
foreach ($alter as $primary) {
if ($primary[0] == "PRIMARY") {
return recreate_table($table, $table, array(), array(), array(), 0, $alter);
}
}
foreach (array_reverse($alter) as $val) {
if (!queries($val[2] == "DROP"
? "DROP INDEX " . idf_escape($val[1])
: index_sql($table, $val[0], $val[1], "(" . implode(", ", $val[2]) . ")")
)) {
return false;
}
}
return true;
}
function truncate_tables($tables) {
return apply_queries("DELETE FROM", $tables);
}
function drop_views($views) {
return apply_queries("DROP VIEW", $views);
}
function drop_tables($tables) {
return apply_queries("DROP TABLE", $tables);
}
function move_tables($tables, $views, $target) {
return false;
}
function trigger($name) {
global $connection;
if ($name == "") {
return array("Statement" => "BEGIN\n\t;\nEND");
}
$idf = '(?:[^`"\s]+|`[^`]*`|"[^"]*")+';
$trigger_options = trigger_options();
preg_match(
"~^CREATE\\s+TRIGGER\\s*$idf\\s*(" . implode("|", $trigger_options["Timing"]) . ")\\s+([a-z]+)(?:\\s+OF\\s+($idf))?\\s+ON\\s*$idf\\s*(?:FOR\\s+EACH\\s+ROW\\s)?(.*)~is",
$connection->result("SELECT sql FROM sqlite_master WHERE type = 'trigger' AND name = " . q($name)),
$match
);
$of = $match[3];
return array(
"Timing" => strtoupper($match[1]),
"Event" => strtoupper($match[2]) . ($of ? " OF" : ""),
"Of" => idf_unescape($of),
"Trigger" => $name,
"Statement" => $match[4],
);
}
function triggers($table) {
$return = array();
$trigger_options = trigger_options();
foreach (get_rows("SELECT * FROM sqlite_master WHERE type = 'trigger' AND tbl_name = " . q($table)) as $row) {
preg_match('~^CREATE\s+TRIGGER\s*(?:[^`"\s]+|`[^`]*`|"[^"]*")+\s*(' . implode("|", $trigger_options["Timing"]) . ')\s*(.*?)\s+ON\b~i', $row["sql"], $match);
$return[$row["name"]] = array($match[1], $match[2]);
}
return $return;
}
function trigger_options() {
return array(
"Timing" => array("BEFORE", "AFTER", "INSTEAD OF"),
"Event" => array("INSERT", "UPDATE", "UPDATE OF", "DELETE"),
"Type" => array("FOR EACH ROW"),
);
}
function begin() {
return queries("BEGIN");
}
function last_id() {
global $connection;
return $connection->result("SELECT LAST_INSERT_ROWID()");
}
function explain($connection, $query) {
return $connection->query("EXPLAIN QUERY PLAN $query");
}
function found_rows($table_status, $where) {
}
function types() {
return array();
}
function schemas() {
return array();
}
function get_schema() {
return "";
}
function set_schema($scheme) {
return true;
}
function create_sql($table, $auto_increment, $style) {
global $connection;
$return = $connection->result("SELECT sql FROM sqlite_master WHERE type IN ('table', 'view') AND name = " . q($table));
foreach (indexes($table) as $name => $index) {
if ($name == '') {
continue;
}
$return .= ";\n\n" . index_sql($table, $index['type'], $name, "(" . implode(", ", array_map('idf_escape', $index['columns'])) . ")");
}
return $return;
}
function truncate_sql($table) {
return "DELETE FROM " . table($table);
}
function use_sql($database) {
}
function trigger_sql($table) {
return implode(get_vals("SELECT sql || ';;\n' FROM sqlite_master WHERE type = 'trigger' AND tbl_name = " . q($table)));
}
function show_variables() {
global $connection;
$return = array();
foreach (array("auto_vacuum", "cache_size", "count_changes", "default_cache_size", "empty_result_callbacks", "encoding", "foreign_keys", "full_column_names", "fullfsync", "journal_mode", "journal_size_limit", "legacy_file_format", "locking_mode", "page_size", "max_page_count", "read_uncommitted", "recursive_triggers", "reverse_unordered_selects", "secure_delete", "short_column_names", "synchronous", "temp_store", "temp_store_directory", "schema_version", "integrity_check", "quick_check") as $key) {
$return[$key] = $connection->result("PRAGMA $key");
}
return $return;
}
function show_status() {
$return = array();
foreach (get_vals("PRAGMA compile_options") as $option) {
list($key, $val) = explode("=", $option, 2);
$return[$key] = $val;
}
return $return;
}
function convert_field($field) {
}
function unconvert_field($field, $return) {
return $return;
}
function support($feature) {
return preg_match('~^(columns|database|drop_col|dump|indexes|descidx|move_col|sql|status|table|trigger|variables|view|view_trigger)$~', $feature);
}
function driver_config() {
$types = array("integer" => 0, "real" => 0, "numeric" => 0, "text" => 0, "blob" => 0);
return array(
'possible_drivers' => array((isset($_GET["sqlite"]) ? "SQLite3" : "SQLite"), "PDO_SQLite"),
'jush' => "sqlite",
'types' => $types,
'structured_types' => array_keys($types),
'unsigned' => array(),
'operators' => array("=", "<", ">", "<=", ">=", "!=", "LIKE", "LIKE %%", "IN", "IS NULL", "NOT LIKE", "NOT IN", "IS NOT NULL", "SQL"), // REGEXP can be user defined function
'functions' => array("distinct", "hex", "length", "lower", "round", "unixepoch", "upper"),
'grouping' => array("avg", "count", "count distinct", "group_concat", "max", "min", "sum"),
'edit_functions' => array(
array(
// "text" => "date('now')/time('now')/datetime('now')",
), array(
"integer|real|numeric" => "+/-",
// "text" => "date/time/datetime",
"text" => "||",
)
),
);
}
}

View file

@ -1,235 +0,0 @@
<?php
$TABLE = $_GET["dump"];
if ($_POST && !$error) {
$cookie = "";
foreach (array("output", "format", "db_style", "routines", "events", "table_style", "auto_increment", "triggers", "data_style") as $key) {
$cookie .= "&$key=" . urlencode($_POST[$key]);
}
cookie("adminer_export", substr($cookie, 1));
$tables = array_flip((array) $_POST["tables"]) + array_flip((array) $_POST["data"]);
$ext = dump_headers(
(count($tables) == 1 ? key($tables) : DB),
(DB == "" || count($tables) > 1));
$is_sql = preg_match('~sql~', $_POST["format"]);
if ($is_sql) {
echo "-- Adminer $VERSION " . $drivers[DRIVER] . " " . str_replace("\n", " ", $connection->server_info) . " dump\n\n";
if ($jush == "sql") {
echo "SET NAMES utf8;
SET time_zone = '+00:00';
SET foreign_key_checks = 0;
" . ($_POST["data_style"] ? "SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO';
" : "") . "
";
$connection->query("SET time_zone = '+00:00'");
$connection->query("SET sql_mode = ''");
}
}
$style = $_POST["db_style"];
$databases = array(DB);
if (DB == "") {
$databases = $_POST["databases"];
if (is_string($databases)) {
$databases = explode("\n", rtrim(str_replace("\r", "", $databases), "\n"));
}
}
foreach ((array) $databases as $db) {
$adminer->dumpDatabase($db);
if ($connection->select_db($db)) {
if ($is_sql && preg_match('~CREATE~', $style) && ($create = $connection->result("SHOW CREATE DATABASE " . idf_escape($db), 1))) {
set_utf8mb4($create);
if ($style == "DROP+CREATE") {
echo "DROP DATABASE IF EXISTS " . idf_escape($db) . ";\n";
}
echo "$create;\n";
}
if ($is_sql) {
if ($style) {
echo use_sql($db) . ";\n\n";
}
$out = "";
if ($_POST["routines"]) {
foreach (array("FUNCTION", "PROCEDURE") as $routine) {
foreach (get_rows("SHOW $routine STATUS WHERE Db = " . q($db), null, "-- ") as $row) {
$create = remove_definer($connection->result("SHOW CREATE $routine " . idf_escape($row["Name"]), 2));
set_utf8mb4($create);
$out .= ($style != 'DROP+CREATE' ? "DROP $routine IF EXISTS " . idf_escape($row["Name"]) . ";;\n" : "") . "$create;;\n\n";
}
}
}
if ($_POST["events"]) {
foreach (get_rows("SHOW EVENTS", null, "-- ") as $row) {
$create = remove_definer($connection->result("SHOW CREATE EVENT " . idf_escape($row["Name"]), 3));
set_utf8mb4($create);
$out .= ($style != 'DROP+CREATE' ? "DROP EVENT IF EXISTS " . idf_escape($row["Name"]) . ";;\n" : "") . "$create;;\n\n";
}
}
if ($out) {
echo "DELIMITER ;;\n\n$out" . "DELIMITER ;\n\n";
}
}
if ($_POST["table_style"] || $_POST["data_style"]) {
$views = array();
foreach (table_status('', true) as $name => $table_status) {
$table = (DB == "" || in_array($name, (array) $_POST["tables"]));
$data = (DB == "" || in_array($name, (array) $_POST["data"]));
if ($table || $data) {
if ($ext == "tar") {
$tmp_file = new TmpFile;
ob_start(array($tmp_file, 'write'), 1e5);
}
$adminer->dumpTable($name, ($table ? $_POST["table_style"] : ""), (is_view($table_status) ? 2 : 0));
if (is_view($table_status)) {
$views[] = $name;
} elseif ($data) {
$fields = fields($name);
$adminer->dumpData($name, $_POST["data_style"], "SELECT *" . convert_fields($fields, $fields) . " FROM " . table($name));
}
if ($is_sql && $_POST["triggers"] && $table && ($triggers = trigger_sql($name))) {
echo "\nDELIMITER ;;\n$triggers\nDELIMITER ;\n";
}
if ($ext == "tar") {
ob_end_flush();
tar_file((DB != "" ? "" : "$db/") . "$name.csv", $tmp_file);
} elseif ($is_sql) {
echo "\n";
}
}
}
// add FKs after creating tables (except in MySQL which uses SET FOREIGN_KEY_CHECKS=0)
if (function_exists('foreign_keys_sql')) {
foreach (table_status('', true) as $name => $table_status) {
$table = (DB == "" || in_array($name, (array) $_POST["tables"]));
if ($table && !is_view($table_status)) {
echo foreign_keys_sql($name);
}
}
}
foreach ($views as $view) {
$adminer->dumpTable($view, $_POST["table_style"], 1);
}
if ($ext == "tar") {
echo pack("x512");
}
}
}
}
if ($is_sql) {
echo "-- " . $connection->result("SELECT NOW()") . "\n";
}
exit;
}
page_header(lang('Export'), $error, ($_GET["export"] != "" ? array("table" => $_GET["export"]) : array()), h(DB));
?>
<form action="" method="post">
<table cellspacing="0" class="layout">
<?php
$db_style = array('', 'USE', 'DROP+CREATE', 'CREATE');
$table_style = array('', 'DROP+CREATE', 'CREATE');
$data_style = array('', 'TRUNCATE+INSERT', 'INSERT');
if ($jush == "sql") { //! use insertUpdate() in all drivers
$data_style[] = 'INSERT+UPDATE';
}
parse_str($_COOKIE["adminer_export"], $row);
if (!$row) {
$row = array("output" => "text", "format" => "sql", "db_style" => (DB != "" ? "" : "CREATE"), "table_style" => "DROP+CREATE", "data_style" => "INSERT");
}
if (!isset($row["events"])) { // backwards compatibility
$row["routines"] = $row["events"] = ($_GET["dump"] == "");
$row["triggers"] = $row["table_style"];
}
echo "<tr><th>" . lang('Output') . "<td>" . html_select("output", $adminer->dumpOutput(), $row["output"], 0) . "\n"; // 0 - radio
echo "<tr><th>" . lang('Format') . "<td>" . html_select("format", $adminer->dumpFormat(), $row["format"], 0) . "\n"; // 0 - radio
echo ($jush == "sqlite" ? "" : "<tr><th>" . lang('Database') . "<td>" . html_select('db_style', $db_style, $row["db_style"])
. (support("routine") ? checkbox("routines", 1, $row["routines"], lang('Routines')) : "")
. (support("event") ? checkbox("events", 1, $row["events"], lang('Events')) : "")
);
echo "<tr><th>" . lang('Tables') . "<td>" . html_select('table_style', $table_style, $row["table_style"])
. checkbox("auto_increment", 1, $row["auto_increment"], lang('Auto Increment'))
. (support("trigger") ? checkbox("triggers", 1, $row["triggers"], lang('Triggers')) : "")
;
echo "<tr><th>" . lang('Data') . "<td>" . html_select('data_style', $data_style, $row["data_style"]);
?>
</table>
<p><input type="submit" value="<?php echo lang('Export'); ?>">
<input type="hidden" name="token" value="<?php echo $token; ?>">
<table cellspacing="0">
<?php
echo script("qsl('table').onclick = dumpClick;");
$prefixes = array();
if (DB != "") {
$checked = ($TABLE != "" ? "" : " checked");
echo "<thead><tr>";
echo "<th style='text-align: left;'><label class='block'><input type='checkbox' id='check-tables'$checked>" . lang('Tables') . "</label>" . script("qs('#check-tables').onclick = partial(formCheck, /^tables\\[/);", "");
echo "<th style='text-align: right;'><label class='block'>" . lang('Data') . "<input type='checkbox' id='check-data'$checked></label>" . script("qs('#check-data').onclick = partial(formCheck, /^data\\[/);", "");
echo "</thead>\n";
$views = "";
$tables_list = tables_list();
foreach ($tables_list as $name => $type) {
$prefix = preg_replace('~_.*~', '', $name);
$checked = ($TABLE == "" || $TABLE == (substr($TABLE, -1) == "%" ? "$prefix%" : $name)); //! % may be part of table name
$print = "<tr><td>" . checkbox("tables[]", $name, $checked, $name, "", "block");
if ($type !== null && !preg_match('~table~i', $type)) {
$views .= "$print\n";
} else {
echo "$print<td align='right'><label class='block'><span id='Rows-" . h($name) . "'></span>" . checkbox("data[]", $name, $checked) . "</label>\n";
}
$prefixes[$prefix]++;
}
echo $views;
if ($tables_list) {
echo script("ajaxSetHtml('" . js_escape(ME) . "script=db');");
}
} else {
echo "<thead><tr><th style='text-align: left;'>";
echo "<label class='block'><input type='checkbox' id='check-databases'" . ($TABLE == "" ? " checked" : "") . ">" . lang('Database') . "</label>";
echo script("qs('#check-databases').onclick = partial(formCheck, /^databases\\[/);", "");
echo "</thead>\n";
$databases = $adminer->databases();
if ($databases) {
foreach ($databases as $db) {
if (!information_schema($db)) {
$prefix = preg_replace('~_.*~', '', $db);
echo "<tr><td>" . checkbox("databases[]", $db, $TABLE == "" || $TABLE == "$prefix%", $db, "", "block") . "\n";
$prefixes[$prefix]++;
}
}
} else {
echo "<tr><td><textarea name='databases' rows='10' cols='20'></textarea>";
}
}
?>
</table>
</form>
<?php
$first = true;
foreach ($prefixes as $key => $val) {
if ($key != "" && $val > 1) {
echo ($first ? "<p>" : " ") . "<a href='" . h(ME) . "dump=" . urlencode("$key%") . "'>" . h($key) . "</a>";
$first = false;
}
}

View file

@ -1,117 +0,0 @@
<?php
$TABLE = $_GET["edit"];
$fields = fields($TABLE);
$where = (isset($_GET["select"]) ? ($_POST["check"] && count($_POST["check"]) == 1 ? where_check($_POST["check"][0], $fields) : "") : where($_GET, $fields));
$update = (isset($_GET["select"]) ? $_POST["edit"] : $where);
foreach ($fields as $name => $field) {
if (!isset($field["privileges"][$update ? "update" : "insert"]) || $adminer->fieldName($field) == "" || $field["generated"]) {
unset($fields[$name]);
}
}
if ($_POST && !$error && !isset($_GET["select"])) {
$location = $_POST["referer"];
if ($_POST["insert"]) { // continue edit or insert
$location = ($update ? null : $_SERVER["REQUEST_URI"]);
} elseif (!preg_match('~^.+&select=.+$~', $location)) {
$location = ME . "select=" . urlencode($TABLE);
}
$indexes = indexes($TABLE);
$unique_array = unique_array($_GET["where"], $indexes);
$query_where = "\nWHERE $where";
if (isset($_POST["delete"])) {
queries_redirect(
$location,
lang('Item has been deleted.'),
$driver->delete($TABLE, $query_where, !$unique_array)
);
} else {
$set = array();
foreach ($fields as $name => $field) {
$val = process_input($field);
if ($val !== false && $val !== null) {
$set[idf_escape($name)] = $val;
}
}
if ($update) {
if (!$set) {
redirect($location);
}
queries_redirect(
$location,
lang('Item has been updated.'),
$driver->update($TABLE, $set, $query_where, !$unique_array)
);
if (is_ajax()) {
page_headers();
page_messages($error);
exit;
}
} else {
$result = $driver->insert($TABLE, $set);
$last_id = ($result ? last_id() : 0);
queries_redirect($location, lang('Item%s has been inserted.', ($last_id ? " $last_id" : "")), $result); //! link
}
}
}
$row = null;
if ($_POST["save"]) {
$row = (array) $_POST["fields"];
} elseif ($where) {
$select = array();
foreach ($fields as $name => $field) {
if (isset($field["privileges"]["select"])) {
$as = convert_field($field);
if ($_POST["clone"] && $field["auto_increment"]) {
$as = "''";
}
if ($jush == "sql" && preg_match("~enum|set~", $field["type"])) {
$as = "1*" . idf_escape($name);
}
$select[] = ($as ? "$as AS " : "") . idf_escape($name);
}
}
$row = array();
if (!support("table")) {
$select = array("*");
}
if ($select) {
$result = $driver->select($TABLE, $select, array($where), $select, array(), (isset($_GET["select"]) ? 2 : 1));
if (!$result) {
$error = error();
} else {
$row = $result->fetch_assoc();
if (!$row) { // MySQLi returns null
$row = false;
}
}
if (isset($_GET["select"]) && (!$row || $result->fetch_assoc())) { // $result->num_rows != 1 isn't available in all drivers
$row = null;
}
}
}
if (!support("table") && !$fields) {
if (!$where) { // insert
$result = $driver->select($TABLE, array("*"), $where, array("*"));
$row = ($result ? $result->fetch_assoc() : false);
if (!$row) {
$row = array($driver->primary => "");
}
}
if ($row) {
foreach ($row as $key => $val) {
if (!$where) {
$row[$key] = null;
}
$fields[$key] = array("field" => $key, "null" => ($key != $driver->primary), "auto_increment" => ($key == $driver->primary));
}
}
}
edit_form($TABLE, $fields, $row, $update);

View file

@ -1,52 +0,0 @@
<?php
$EVENT = $_GET["event"];
$intervals = array("YEAR", "QUARTER", "MONTH", "DAY", "HOUR", "MINUTE", "WEEK", "SECOND", "YEAR_MONTH", "DAY_HOUR", "DAY_MINUTE", "DAY_SECOND", "HOUR_MINUTE", "HOUR_SECOND", "MINUTE_SECOND");
$statuses = array("ENABLED" => "ENABLE", "DISABLED" => "DISABLE", "SLAVESIDE_DISABLED" => "DISABLE ON SLAVE");
$row = $_POST;
if ($_POST && !$error) {
if ($_POST["drop"]) {
query_redirect("DROP EVENT " . idf_escape($EVENT), substr(ME, 0, -1), lang('Event has been dropped.'));
} elseif (in_array($row["INTERVAL_FIELD"], $intervals) && isset($statuses[$row["STATUS"]])) {
$schedule = "\nON SCHEDULE " . ($row["INTERVAL_VALUE"]
? "EVERY " . q($row["INTERVAL_VALUE"]) . " $row[INTERVAL_FIELD]"
. ($row["STARTS"] ? " STARTS " . q($row["STARTS"]) : "")
. ($row["ENDS"] ? " ENDS " . q($row["ENDS"]) : "") //! ALTER EVENT doesn't drop ENDS - MySQL bug #39173
: "AT " . q($row["STARTS"])
) . " ON COMPLETION" . ($row["ON_COMPLETION"] ? "" : " NOT") . " PRESERVE"
;
queries_redirect(substr(ME, 0, -1), ($EVENT != "" ? lang('Event has been altered.') : lang('Event has been created.')), queries(($EVENT != ""
? "ALTER EVENT " . idf_escape($EVENT) . $schedule
. ($EVENT != $row["EVENT_NAME"] ? "\nRENAME TO " . idf_escape($row["EVENT_NAME"]) : "")
: "CREATE EVENT " . idf_escape($row["EVENT_NAME"]) . $schedule
) . "\n" . $statuses[$row["STATUS"]] . " COMMENT " . q($row["EVENT_COMMENT"])
. rtrim(" DO\n$row[EVENT_DEFINITION]", ";") . ";"
));
}
}
page_header(($EVENT != "" ? lang('Alter event') . ": " . h($EVENT) : lang('Create event')), $error);
if (!$row && $EVENT != "") {
$rows = get_rows("SELECT * FROM information_schema.EVENTS WHERE EVENT_SCHEMA = " . q(DB) . " AND EVENT_NAME = " . q($EVENT));
$row = reset($rows);
}
?>
<form action="" method="post">
<table cellspacing="0" class="layout">
<tr><th><?php echo lang('Name'); ?><td><input name="EVENT_NAME" value="<?php echo h($row["EVENT_NAME"]); ?>" data-maxlength="64" autocapitalize="off">
<tr><th title="datetime"><?php echo lang('Start'); ?><td><input name="STARTS" value="<?php echo h("$row[EXECUTE_AT]$row[STARTS]"); ?>">
<tr><th title="datetime"><?php echo lang('End'); ?><td><input name="ENDS" value="<?php echo h($row["ENDS"]); ?>">
<tr><th><?php echo lang('Every'); ?><td><input type="number" name="INTERVAL_VALUE" value="<?php echo h($row["INTERVAL_VALUE"]); ?>" class="size"> <?php echo html_select("INTERVAL_FIELD", $intervals, $row["INTERVAL_FIELD"]); ?>
<tr><th><?php echo lang('Status'); ?><td><?php echo html_select("STATUS", $statuses, $row["STATUS"]); ?>
<tr><th><?php echo lang('Comment'); ?><td><input name="EVENT_COMMENT" value="<?php echo h($row["EVENT_COMMENT"]); ?>" data-maxlength="64">
<tr><th><td><?php echo checkbox("ON_COMPLETION", "PRESERVE", $row["ON_COMPLETION"] == "PRESERVE", lang('On completion preserve')); ?>
</table>
<p><?php textarea("EVENT_DEFINITION", $row["EVENT_DEFINITION"]); ?>
<p>
<input type="submit" value="<?php echo lang('Save'); ?>">
<?php if ($EVENT != "") { ?><input type="submit" name="drop" value="<?php echo lang('Drop'); ?>"><?php echo confirm(lang('Drop %s?', $EVENT)); ?><?php } ?>
<input type="hidden" name="token" value="<?php echo $token; ?>">
</form>

View file

@ -1,26 +0,0 @@
<?php
// caching headers added in compile.php
if ($_GET["file"] == "favicon.ico") {
header("Content-Type: image/x-icon");
echo lzw_decompress(compile_file('../adminer/static/favicon.ico', 'lzw_compress'));
} elseif ($_GET["file"] == "default.css") {
header("Content-Type: text/css; charset=utf-8");
echo lzw_decompress(compile_file('../adminer/static/default.css;../externals/jush/jush.css', 'minify_css'));
} elseif ($_GET["file"] == "functions.js") {
header("Content-Type: text/javascript; charset=utf-8");
echo lzw_decompress(compile_file('../adminer/static/functions.js;static/editing.js', 'minify_js'));
} elseif ($_GET["file"] == "jush.js") {
header("Content-Type: text/javascript; charset=utf-8");
echo lzw_decompress(compile_file('../externals/jush/modules/jush.js;../externals/jush/modules/jush-textarea.js;../externals/jush/modules/jush-txt.js;../externals/jush/modules/jush-js.js;../externals/jush/modules/jush-sql.js;../externals/jush/modules/jush-pgsql.js;../externals/jush/modules/jush-sqlite.js;../externals/jush/modules/jush-mssql.js;../externals/jush/modules/jush-oracle.js;../externals/jush/modules/jush-simpledb.js', 'minify_js'));
} else {
header("Content-Type: image/gif");
switch ($_GET["file"]) {
case "plus.gif": echo compile_file('../adminer/static/plus.gif'); break;
case "cross.gif": echo compile_file('../adminer/static/cross.gif'); break;
case "up.gif": echo compile_file('../adminer/static/up.gif'); break;
case "down.gif": echo compile_file('../adminer/static/down.gif'); break;
case "arrow.gif": echo compile_file('../adminer/static/arrow.gif'); break;
}
}
exit;

View file

@ -1,107 +0,0 @@
<?php
$TABLE = $_GET["foreign"];
$name = $_GET["name"];
$row = $_POST;
if ($_POST && !$error && !$_POST["add"] && !$_POST["change"] && !$_POST["change-js"]) {
$message = ($_POST["drop"] ? lang('Foreign key has been dropped.') : ($name != "" ? lang('Foreign key has been altered.') : lang('Foreign key has been created.')));
$location = ME . "table=" . urlencode($TABLE);
if (!$_POST["drop"]) {
$row["source"] = array_filter($row["source"], 'strlen');
ksort($row["source"]); // enforce input order
$target = array();
foreach ($row["source"] as $key => $val) {
$target[$key] = $row["target"][$key];
}
$row["target"] = $target;
}
if ($jush == "sqlite") {
queries_redirect($location, $message, recreate_table($TABLE, $TABLE, array(), array(), array(" $name" => ($_POST["drop"] ? "" : " " . format_foreign_key($row)))));
} else {
$alter = "ALTER TABLE " . table($TABLE);
$drop = "\nDROP " . ($jush == "sql" ? "FOREIGN KEY " : "CONSTRAINT ") . idf_escape($name);
if ($_POST["drop"]) {
query_redirect($alter . $drop, $location, $message);
} else {
query_redirect($alter . ($name != "" ? "$drop," : "") . "\nADD" . format_foreign_key($row), $location, $message);
$error = lang('Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.') . "<br>$error"; //! no partitioning
}
}
}
page_header(lang('Foreign key'), $error, array("table" => $TABLE), h($TABLE));
if ($_POST) {
ksort($row["source"]);
if ($_POST["add"]) {
$row["source"][] = "";
} elseif ($_POST["change"] || $_POST["change-js"]) {
$row["target"] = array();
}
} elseif ($name != "") {
$foreign_keys = foreign_keys($TABLE);
$row = $foreign_keys[$name];
$row["source"][] = "";
} else {
$row["table"] = $TABLE;
$row["source"] = array("");
}
?>
<form action="" method="post">
<?php
$source = array_keys(fields($TABLE)); //! no text and blob
if ($row["db"] != "") {
$connection->select_db($row["db"]);
}
if ($row["ns"] != "") {
set_schema($row["ns"]);
}
$referencable = array_keys(array_filter(table_status('', true), 'fk_support'));
$target = array_keys(fields(in_array($row["table"], $referencable) ? $row["table"] : reset($referencable)));
$onchange = "this.form['change-js'].value = '1'; this.form.submit();";
echo "<p>" . lang('Target table') . ": " . html_select("table", $referencable, $row["table"], $onchange) . "\n";
if ($jush == "pgsql") {
echo lang('Schema') . ": " . html_select("ns", $adminer->schemas(), $row["ns"] != "" ? $row["ns"] : $_GET["ns"], $onchange);
} elseif ($jush != "sqlite") {
$dbs = array();
foreach ($adminer->databases() as $db) {
if (!information_schema($db)) {
$dbs[] = $db;
}
}
echo lang('DB') . ": " . html_select("db", $dbs, $row["db"] != "" ? $row["db"] : $_GET["db"], $onchange);
}
?>
<input type="hidden" name="change-js" value="">
<noscript><p><input type="submit" name="change" value="<?php echo lang('Change'); ?>"></noscript>
<table cellspacing="0">
<thead><tr><th id="label-source"><?php echo lang('Source'); ?><th id="label-target"><?php echo lang('Target'); ?></thead>
<?php
$j = 0;
foreach ($row["source"] as $key => $val) {
echo "<tr>";
echo "<td>" . html_select("source[" . (+$key) . "]", array(-1 => "") + $source, $val, ($j == count($row["source"]) - 1 ? "foreignAddRow.call(this);" : 1), "label-source");
echo "<td>" . html_select("target[" . (+$key) . "]", $target, isset($row["target"][$key]) ? $row["target"][$key] : null, 1, "label-target");
$j++;
}
?>
</table>
<p>
<?php echo lang('ON DELETE'); ?>: <?php echo html_select("on_delete", array(-1 => "") + explode("|", $on_actions), $row["on_delete"]); ?>
<?php echo lang('ON UPDATE'); ?>: <?php echo html_select("on_update", array(-1 => "") + explode("|", $on_actions), $row["on_update"]); ?>
<?php echo doc_link(array(
'sql' => "innodb-foreign-key-constraints.html",
'mariadb' => "foreign-keys/",
'pgsql' => "sql-createtable.html#SQL-CREATETABLE-REFERENCES",
'mssql' => "ms174979.aspx",
'oracle' => "https://docs.oracle.com/cd/B19306_01/server.102/b14200/clauses002.htm#sthref2903",
)); ?>
<p>
<input type="submit" value="<?php echo lang('Save'); ?>">
<noscript><p><input type="submit" name="add" value="<?php echo lang('Add column'); ?>"></noscript>
<?php if ($name != "") { ?><input type="submit" name="drop" value="<?php echo lang('Drop'); ?>"><?php echo confirm(lang('Drop %s?', $name)); ?><?php } ?>
<input type="hidden" name="token" value="<?php echo $token; ?>">
</form>

File diff suppressed because it is too large Load diff

View file

@ -1,262 +0,0 @@
<?php
$connection = '';
$has_token = $_SESSION["token"];
if (!$has_token) {
$_SESSION["token"] = rand(1, 1e6); // defense against cross-site request forgery
}
$token = get_token(); ///< @var string CSRF protection
$permanent = array();
if ($_COOKIE["adminer_permanent"]) {
foreach (explode(" ", $_COOKIE["adminer_permanent"]) as $val) {
list($key) = explode(":", $val);
$permanent[$key] = $val;
}
}
function validate_server_input() {
if (SERVER == "") {
return;
}
$parts = parse_url(SERVER);
if (!$parts) {
auth_error(lang('Invalid server or credentials.'));
}
// Check proper URL parts.
if (isset($parts['user']) || isset($parts['pass']) || isset($parts['query']) || isset($parts['fragment'])) {
auth_error(lang('Invalid server or credentials.'));
}
// Allow only HTTP/S scheme.
if (isset($parts['scheme']) && !preg_match('~^(https?)$~i', $parts['scheme'])) {
auth_error(lang('Invalid server or credentials.'));
}
// Allow only host without a path. Note that "localhost" is parsed as path.
$host = (isset($parts['host']) ? $parts['host'] : '') . (isset($parts['path']) ? $parts['path'] : '');
if (strpos(rtrim($host, '/'), '/') !== false) {
auth_error(lang('Invalid server or credentials.'));
}
// Check privileged ports.
if (isset($parts['port']) && ($parts['port'] < 1024 || $parts['port'] > 65535)) {
auth_error(lang('Connecting to privileged ports is not allowed.'));
}
}
/**
* @param string $server
* @param string $username
* @param string $password
* @param string $defaultServer
* @param int|null $defaultPort
* @return string
*/
function build_http_url($server, $username, $password, $defaultServer, $defaultPort = null) {
if (!preg_match('~^(https?://)?([^:]*)(:\d+)?$~', rtrim($server, '/'), $matches)) {
$this->error = lang('Invalid server or credentials.');
return false;
}
return ($matches[1] ?: "http://") .
($username !== "" || $password !== "" ? "$username:$password@" : "") .
($matches[2] !== "" ? $matches[2] : $defaultServer) .
(isset($matches[3]) ? $matches[3] : ($defaultPort ? ":$defaultPort" : ""));
}
function add_invalid_login() {
global $adminer;
$fp = file_open_lock(get_temp_dir() . "/adminer.invalid");
if (!$fp) {
return;
}
$invalids = unserialize(stream_get_contents($fp));
$time = time();
if ($invalids) {
foreach ($invalids as $ip => $val) {
if ($val[0] < $time) {
unset($invalids[$ip]);
}
}
}
$invalid = &$invalids[$adminer->bruteForceKey()];
if (!$invalid) {
$invalid = array($time + 30*60, 0); // active for 30 minutes
}
$invalid[1]++;
file_write_unlock($fp, serialize($invalids));
}
function check_invalid_login() {
global $adminer;
$invalids = unserialize(@file_get_contents(get_temp_dir() . "/adminer.invalid")); // @ - may not exist
$invalid = ($invalids ? $invalids[$adminer->bruteForceKey()] : array());
if ($invalid === null) {
return;
}
$next_attempt = ($invalid[1] > 29 ? $invalid[0] - time() : 0); // allow 30 invalid attempts
if ($next_attempt > 0) { //! do the same with permanent login
auth_error(lang('Too many unsuccessful logins, try again in %d minute(s).', ceil($next_attempt / 60)));
}
}
$auth = $_POST["auth"];
if ($auth) {
session_regenerate_id(); // defense against session fixation
$vendor = $auth["driver"];
$server = trim($auth["server"]);
$username = $auth["username"];
$password = (string) $auth["password"];
$db = $auth["db"];
set_password($vendor, $server, $username, $password);
$_SESSION["db"][$vendor][$server][$username][$db] = true;
if ($auth["permanent"]) {
$key = base64_encode($vendor) . "-" . base64_encode($server) . "-" . base64_encode($username) . "-" . base64_encode($db);
$private = $adminer->permanentLogin(true);
$permanent[$key] = "$key:" . base64_encode($private ? encrypt_string($password, $private) : "");
cookie("adminer_permanent", implode(" ", $permanent));
}
if (count($_POST) == 1 // 1 - auth
|| DRIVER != $vendor
|| SERVER != $server
|| $_GET["username"] !== $username // "0" == "00"
|| DB != $db
) {
redirect(auth_url($vendor, $server, $username, $db));
}
} elseif ($_POST["logout"] && (!$has_token || verify_token())) {
foreach (array("pwds", "db", "dbs", "queries") as $key) {
set_session($key, null);
}
unset_permanent();
redirect(substr(preg_replace('~\b(username|db|ns)=[^&]*&~', '', ME), 0, -1), lang('Logout successful.'));
} elseif ($permanent && !$_SESSION["pwds"]) {
session_regenerate_id();
$private = $adminer->permanentLogin();
foreach ($permanent as $key => $val) {
list(, $cipher) = explode(":", $val);
list($vendor, $server, $username, $db) = array_map('base64_decode', explode("-", $key));
set_password($vendor, $server, $username, decrypt_string(base64_decode($cipher), $private));
$_SESSION["db"][$vendor][$server][$username][$db] = true;
}
}
function unset_permanent() {
global $permanent;
foreach ($permanent as $key => $val) {
list($vendor, $server, $username, $db) = array_map('base64_decode', explode("-", $key));
if ($vendor == DRIVER && $server == SERVER && $username == $_GET["username"] && $db == DB) {
unset($permanent[$key]);
}
}
cookie("adminer_permanent", implode(" ", $permanent));
}
/** Renders an error message and a login form
* @param string plain text
* @return null exits
*/
function auth_error($error) {
global $adminer, $has_token;
$session_name = session_name();
if (isset($_GET["username"])) {
header("HTTP/1.1 403 Forbidden"); // 401 requires sending WWW-Authenticate header
if (($_COOKIE[$session_name] || $_GET[$session_name]) && !$has_token) {
$error = lang('Session expired, please login again.');
} else {
restart_session();
add_invalid_login();
$password = get_password();
if ($password !== null) {
if ($password === false) {
$error .= ($error ? '<br>' : '') . lang('Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.', target_blank(), '<code>permanentLogin()</code>');
}
set_password(DRIVER, SERVER, $_GET["username"], null);
}
unset_permanent();
}
}
if (!$_COOKIE[$session_name] && $_GET[$session_name] && ini_bool("session.use_only_cookies")) {
$error = lang('Session support must be enabled.');
}
$params = session_get_cookie_params();
cookie("adminer_key", ($_COOKIE["adminer_key"] ? $_COOKIE["adminer_key"] : rand_string()), $params["lifetime"]);
page_header(lang('Login'), $error, null);
echo "<form action='' method='post'>\n";
echo "<div>";
if (hidden_fields($_POST, array("auth"))) { // expired session
echo "<p class='message'>" . lang('The action will be performed after successful login with the same credentials.') . "\n";
}
echo "</div>\n";
$adminer->loginForm();
echo "</form>\n";
page_footer("auth");
exit;
}
if (isset($_GET["username"]) && !class_exists("Min_DB")) {
unset($_SESSION["pwds"][DRIVER]);
unset_permanent();
page_header(lang('No extension'), lang('None of the supported PHP extensions (%s) are available.', implode(", ", $possible_drivers)), false);
page_footer("auth");
exit;
}
stop_session(true);
if (isset($_GET["username"]) && is_string(get_password())) {
validate_server_input();
check_invalid_login();
$connection = connect();
$driver = new Min_Driver($connection);
}
$login = null;
if (!is_object($connection) || ($login = $adminer->login($_GET["username"], get_password())) !== true) {
$error = (is_string($connection) ? h($connection) : (is_string($login) ? $login : lang('Invalid server or credentials.')));
auth_error($error . (preg_match('~^ | $~', get_password()) ? '<br>' . lang('There is a space in the input password which might be the cause.') : ''));
}
if ($_POST["logout"] && $has_token && !verify_token()) {
page_header(lang('Logout'), lang('Invalid CSRF token. Send the form again.'));
page_footer("db");
exit;
}
if ($auth && $_POST["token"]) {
$_POST["token"] = $token; // reset token after explicit login
}
$error = ''; ///< @var string
if ($_POST) {
if (!verify_token()) {
$ini = "max_input_vars";
$max_vars = ini_get($ini);
if (extension_loaded("suhosin")) {
foreach (array("suhosin.request.max_vars", "suhosin.post.max_vars") as $key) {
$val = ini_get($key);
if ($val && (!$max_vars || $val < $max_vars)) {
$ini = $key;
$max_vars = $val;
}
}
}
$error = (!$_POST["token"] && $max_vars
? lang('Maximum number of allowed fields exceeded. Please increase %s.', "'$ini'")
: lang('Invalid CSRF token. Send the form again.') . ' ' . lang('If you did not send this request from Adminer then close this page.')
);
}
} elseif ($_SERVER["REQUEST_METHOD"] == "POST") {
// posted form with no data means that post_max_size exceeded because Adminer always sends token at least
$error = lang('Too big POST data. Reduce the data or increase the %s configuration directive.', "'post_max_size'");
if (isset($_GET["sql"])) {
$error .= ' ' . lang('You can upload a big SQL file via FTP and import it from server.');
}
}

View file

@ -1,121 +0,0 @@
<?php
function adminer_errors($errno, $errstr) {
return !!preg_match('~^(Trying to access array offset on( value of type)? null|Undefined array key)~', $errstr);
}
error_reporting(6135); // errors and warnings
set_error_handler('adminer_errors', E_WARNING);
include "../adminer/include/coverage.inc.php";
// disable filter.default
$filter = !preg_match('~^(unsafe_raw)?$~', ini_get("filter.default"));
if ($filter || ini_get("filter.default_flags")) {
foreach (array('_GET', '_POST', '_COOKIE', '_SERVER') as $val) {
$unsafe = filter_input_array(constant("INPUT$val"), FILTER_UNSAFE_RAW);
if ($unsafe) {
$$val = $unsafe;
}
}
}
if (function_exists("mb_internal_encoding")) {
mb_internal_encoding("8bit");
}
include "../adminer/include/functions.inc.php";
// used only in compiled file
if (isset($_GET["file"])) {
include "../adminer/file.inc.php";
}
if ($_GET["script"] == "version") {
$fp = file_open_lock(get_temp_dir() . "/adminer.version");
if ($fp) {
file_write_unlock($fp, serialize(array("version" => $_POST["version"])));
}
exit;
}
global $adminer, $connection, $driver, $drivers, $edit_functions, $enum_length, $error, $functions, $grouping, $HTTPS, $inout, $jush, $LANG, $langs, $on_actions, $permanent, $structured_types, $has_token, $token, $translations, $types, $unsigned, $VERSION; // allows including Adminer inside a function
if (!$_SERVER["REQUEST_URI"]) { // IIS 5 compatibility
$_SERVER["REQUEST_URI"] = $_SERVER["ORIG_PATH_INFO"];
}
if (!strpos($_SERVER["REQUEST_URI"], '?') && $_SERVER["QUERY_STRING"] != "") { // IIS 7 compatibility
$_SERVER["REQUEST_URI"] .= "?$_SERVER[QUERY_STRING]";
}
if ($_SERVER["HTTP_X_FORWARDED_PREFIX"]) {
$_SERVER["REQUEST_URI"] = $_SERVER["HTTP_X_FORWARDED_PREFIX"] . $_SERVER["REQUEST_URI"];
}
$HTTPS = ($_SERVER["HTTPS"] && strcasecmp($_SERVER["HTTPS"], "off")) || ini_bool("session.cookie_secure"); // session.cookie_secure could be set on HTTP if we are behind a reverse proxy
@ini_set("session.use_trans_sid", false); // protect links in export, @ - may be disabled
if (!defined("SID")) {
session_cache_limiter(""); // to allow restarting session
session_name("adminer_sid"); // use specific session name to get own namespace
$params = array(0, preg_replace('~\?.*~', '', $_SERVER["REQUEST_URI"]), "", $HTTPS);
if (version_compare(PHP_VERSION, '5.2.0') >= 0) {
$params[] = true; // HttpOnly
}
call_user_func_array('session_set_cookie_params', $params); // ini_set() may be disabled
session_start();
}
// disable magic quotes to be able to use database escaping function
remove_slashes(array(&$_GET, &$_POST, &$_COOKIE), $filter);
if (function_exists("get_magic_quotes_runtime") && get_magic_quotes_runtime()) {
set_magic_quotes_runtime(false);
}
@set_time_limit(0); // @ - can be disabled
@ini_set("zend.ze1_compatibility_mode", false); // @ - deprecated
@ini_set("precision", 15); // @ - can be disabled, 15 - internal PHP precision
include "../adminer/include/lang.inc.php";
include "../adminer/lang/$LANG.inc.php";
include "../adminer/include/pdo.inc.php";
include "../adminer/include/driver.inc.php";
include "../adminer/drivers/sqlite.inc.php";
include "../adminer/drivers/pgsql.inc.php";
include "../adminer/drivers/oracle.inc.php";
include "../adminer/drivers/mssql.inc.php";
include "../adminer/drivers/mongo.inc.php";
include "../adminer/drivers/elastic.inc.php";
include "./include/adminer.inc.php";
$adminer = (function_exists('adminer_object') ? adminer_object() : new Adminer);
include "../adminer/drivers/mysql.inc.php"; // must be included as last driver
$config = driver_config();
$possible_drivers = $config['possible_drivers'];
$jush = $config['jush'];
$types = $config['types'];
$structured_types = $config['structured_types'];
$unsigned = $config['unsigned'];
$operators = $config['operators'];
$operator_regexp = isset($config['operator_regexp']) && in_array($config['operator_regexp'], $operators) ? $config['operator_regexp'] : null;
$functions = $config['functions'];
$grouping = $config['grouping'];
$edit_functions = $config['edit_functions'];
if ($adminer->operators === null) {
$adminer->operators = $operators;
$adminer->operator_regexp = $operator_regexp;
}
define("SERVER", $_GET[DRIVER]); // read from pgsql=localhost
define("DB", $_GET["db"]); // for the sake of speed and size
define("ME", preg_replace('~\?.*~', '', relative_uri()) . '?'
. (sid() ? SID . '&' : '')
. (SERVER !== null ? DRIVER . "=" . urlencode(SERVER) . '&' : '')
. (isset($_GET["username"]) ? "username=" . urlencode($_GET["username"]) . '&' : '')
. (DB != "" ? 'db=' . urlencode(DB) . '&' . (isset($_GET["ns"]) ? "ns=" . urlencode($_GET["ns"]) . "&" : "") : '')
);
include "../adminer/include/version.inc.php";
include "../adminer/include/design.inc.php";
include "../adminer/include/xxtea.inc.php";
include "../adminer/include/auth.inc.php";
include "./include/editing.inc.php";
include "./include/connect.inc.php";
$on_actions = "RESTRICT|NO ACTION|CASCADE|SET NULL|SET DEFAULT"; ///< @var string used in foreign_keys()

View file

@ -1,106 +0,0 @@
<?php
function connect_error() {
global $adminer, $connection, $token, $error, $drivers;
if (DB != "") {
header("HTTP/1.1 404 Not Found");
page_header(lang('Database') . ": " . h(DB), lang('Invalid database.'), true);
} else {
if ($_POST["db"] && !$error) {
queries_redirect(substr(ME, 0, -1), lang('Databases have been dropped.'), drop_databases($_POST["db"]));
}
page_header(lang('Select database'), $error, false);
$actions = [
'database' => lang('Create database'),
'privileges' => lang('Privileges'),
'processlist' => lang('Process list'),
'variables' => lang('Variables'),
'status' => lang('Status'),
];
$links = [];
foreach ($actions as $key => $val) {
if (support($key)) {
$links[] = "<a href='" . h(ME) . "$key='>$val</a>";
}
}
echo generate_linksbar($links);
echo "<p>" . lang('%s version: %s through PHP extension %s', $drivers[DRIVER], "<b>" . h($connection->server_info) . "</b>", "<b>$connection->extension</b>") . "\n";
echo "<p>" . lang('Logged as: %s', "<b>" . h(logged_user()) . "</b>") . "\n";
$databases = $adminer->databases();
if ($databases) {
$scheme = support("scheme");
$collations = collations();
echo "<form action='' method='post'>\n";
echo "<table cellspacing='0' class='checkable'>\n";
echo script("mixin(qsl('table'), {onclick: tableClick, ondblclick: partialArg(tableClick, true)});");
echo "<thead><tr>"
. (support("database") ? "<td>" : "")
. "<th>" . lang('Database') . " - <a href='" . h(ME) . "refresh=1'>" . lang('Refresh') . "</a>"
. "<td>" . lang('Collation')
. "<td>" . lang('Tables')
. "<td>" . lang('Size') . " - <a href='" . h(ME) . "dbsize=1'>" . lang('Compute') . "</a>" . script("qsl('a').onclick = partial(ajaxSetHtml, '" . js_escape(ME) . "script=connect');", "")
. "</thead>\n"
;
$databases = ($_GET["dbsize"] ? count_tables($databases) : array_flip($databases));
foreach ($databases as $db => $tables) {
$root = h(ME) . "db=" . urlencode($db);
$id = h("Db-" . $db);
echo "<tr" . odd() . ">" . (support("database") ? "<td>" . checkbox("db[]", $db, in_array($db, (array) $_POST["db"]), "", "", "", $id) : "");
echo "<th><a href='$root' id='$id'>" . h($db) . "</a>";
$collation = h(db_collation($db, $collations));
echo "<td>" . (support("database") ? "<a href='$root" . ($scheme ? "&amp;ns=" : "") . "&amp;database=' title='" . lang('Alter database') . "'>$collation</a>" : $collation);
echo "<td align='right'><a href='$root&amp;schema=' id='tables-" . h($db) . "' title='" . lang('Database schema') . "'>" . ($_GET["dbsize"] ? $tables : "?") . "</a>";
echo "<td align='right' id='size-" . h($db) . "'>" . ($_GET["dbsize"] ? db_size($db) : "?");
echo "\n";
}
echo "</table>\n";
echo (support("database")
? "<div class='footer'><div>\n"
. "<fieldset><legend>" . lang('Selected') . " <span id='selected'></span></legend><div>\n"
. "<input type='hidden' name='all' value=''>" . script("qsl('input').onclick = function () { selectCount('selected', formChecked(this, /^db/)); };") // used by trCheck()
. "<input type='submit' name='drop' value='" . lang('Drop') . "'>" . confirm() . "\n"
. "</div></fieldset>\n"
. "</div></div>\n"
: ""
);
echo "<input type='hidden' name='token' value='$token'>\n";
echo "</form>\n";
echo script("tableCheck();");
}
}
page_footer("db");
}
if (isset($_GET["status"])) {
$_GET["variables"] = $_GET["status"];
}
if (isset($_GET["import"])) {
$_GET["sql"] = $_GET["import"];
}
if (!(DB != "" ? $connection->select_db(DB) : isset($_GET["sql"]) || isset($_GET["dump"]) || isset($_GET["database"]) || isset($_GET["processlist"]) || isset($_GET["privileges"]) || isset($_GET["user"]) || isset($_GET["variables"]) || $_GET["script"] == "connect" || $_GET["script"] == "kill")) {
if (DB != "" || $_GET["refresh"]) {
restart_session();
set_session("dbs", null);
}
connect_error(); // separate function to catch SQLite error
exit;
}
if (support("scheme")) {
if (DB != "" && $_GET["ns"] !== "") {
if (!isset($_GET["ns"])) {
redirect(preg_replace('~ns=[^&]*&~', '', ME) . "ns=" . get_schema());
}
if (!set_schema($_GET["ns"])) {
header("HTTP/1.1 404 Not Found");
page_header(lang('Schema') . ": " . h($_GET["ns"]), lang('Invalid schema.'), true);
page_footer("ns");
exit;
}
}
}

View file

@ -1,18 +0,0 @@
<?php
// coverage is used in tests and removed in compilation
if (extension_loaded("xdebug") && file_exists(sys_get_temp_dir() . "/adminer_coverage.ser")) {
function save_coverage() {
$coverage_filename = sys_get_temp_dir() . "/adminer_coverage.ser";
$coverage = unserialize(file_get_contents($coverage_filename));
foreach (xdebug_get_code_coverage() as $filename => $lines) {
foreach ($lines as $l => $val) {
if (!$coverage[$filename][$l] || $val > 0) {
$coverage[$filename][$l] = $val;
}
}
file_put_contents($coverage_filename, serialize($coverage));
}
}
xdebug_start_code_coverage(XDEBUG_CC_UNUSED | XDEBUG_CC_DEAD_CODE);
register_shutdown_function('save_coverage');
}

View file

@ -1,188 +0,0 @@
<?php
/** Print HTML header
* @param string used in title, breadcrumb and heading, should be HTML escaped
* @param string
* @param mixed array("key" => "link", "key2" => array("link", "desc")), null for nothing, false for driver only, true for driver and server
* @param string used after colon in title and heading, should be HTML escaped
* @return null
*/
function page_header($title, $error = "", $breadcrumb = array(), $title2 = "") {
global $LANG, $VERSION, $adminer, $drivers, $jush;
page_headers();
if (is_ajax() && $error) {
page_messages($error);
exit;
}
$title_all = $title . ($title2 != "" ? ": $title2" : "");
$title_page = strip_tags($title_all . (SERVER != "" && SERVER != "localhost" ? h(" - " . SERVER) : "") . " - " . $adminer->name());
?>
<!DOCTYPE html>
<html lang="<?php echo $LANG; ?>" dir="<?php echo lang('ltr'); ?>">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="robots" content="noindex">
<title><?php echo $title_page; ?></title>
<link rel="stylesheet" type="text/css" href="../adminer/static/default.css">
<?php echo script_src("../adminer/static/functions.js"); ?>
<?php echo script_src("static/editing.js"); ?>
<?php if ($adminer->head()) { ?>
<link rel="shortcut icon" type="image/x-icon" href="../adminer/static/favicon.ico">
<link rel="apple-touch-icon" href="../adminer/static/favicon.ico">
<?php foreach ($adminer->css() as $css) { ?>
<link rel="stylesheet" type="text/css" href="<?php echo h($css); ?>">
<?php } ?>
<?php } ?>
<body class="<?php echo lang('ltr'); ?> nojs <?php echo $GLOBALS['project']; ?>">
<?php
$filename = get_temp_dir() . "/adminer.version";
if (!$_COOKIE["adminer_version"] && file_exists($filename) && filemtime($filename) + 86400 > time()) { // 86400 - 1 day in seconds
$version = unserialize(file_get_contents($filename));
$_COOKIE["adminer_version"] = $version["version"]; // doesn't need to send to the browser
}
?>
<script<?php echo nonce(); ?>>
mixin(document.body, {onkeydown: bodyKeydown, onclick: bodyClick<?php
echo (isset($_COOKIE["adminer_version"]) ? "" : ", onload: partial(verifyVersion, '$VERSION', '" . js_escape(ME) . "', '" . get_token() . "')"); // $token may be empty in auth.inc.php
?>});
document.body.className = document.body.className.replace(/ nojs/, ' js');
var offlineMessage = '<?php echo js_escape(lang('You are offline.')); ?>';
var thousandsSeparator = '<?php echo js_escape(lang(',')); ?>';
</script>
<div id="help" class="jush-<?php echo $jush; ?> jsonly hidden"></div>
<?php echo script("mixin(qs('#help'), {onmouseover: function () { helpOpen = 1; }, onmouseout: helpMouseout});"); ?>
<div id="content">
<?php
if ($breadcrumb !== null) {
$link = substr(preg_replace('~\b(username|db|ns)=[^&]*&~', '', ME), 0, -1);
echo '<p id="breadcrumb"><a href="' . h($link ? $link : ".") . '">' . $drivers[DRIVER] . '</a> &raquo; ';
$link = substr(preg_replace('~\b(db|ns)=[^&]*&~', '', ME), 0, -1);
$server = $adminer->serverName(SERVER);
$server = ($server != "" ? $server : lang('Server'));
if ($breadcrumb === false) {
echo "$server\n";
} else {
echo "<a href='" . h($link) . "' accesskey='1' title='Alt+Shift+1'>$server</a> &raquo; ";
if ($_GET["ns"] != "" || (DB != "" && is_array($breadcrumb))) {
echo '<a href="' . h($link . "&db=" . urlencode(DB) . (support("scheme") ? "&ns=" : "")) . '">' . h(DB) . '</a> &raquo; ';
}
if (is_array($breadcrumb)) {
if ($_GET["ns"] != "") {
echo '<a href="' . h(substr(ME, 0, -1)) . '">' . h($_GET["ns"]) . '</a> &raquo; ';
}
foreach ($breadcrumb as $key => $val) {
$desc = (is_array($val) ? $val[1] : h($val));
if ($desc != "") {
echo "<a href='" . h(ME . "$key=") . urlencode(is_array($val) ? $val[0] : $val) . "'>$desc</a> &raquo; ";
}
}
}
echo "$title\n";
}
}
echo "<h2>$title_all</h2>\n";
echo "<div id='ajaxstatus' class='jsonly hidden'></div>\n";
restart_session();
page_messages($error);
$databases = &get_session("dbs");
if (DB != "" && $databases && !in_array(DB, $databases, true)) {
$databases = null;
}
stop_session();
define("PAGE_HEADER", 1);
}
/** Send HTTP headers
* @return null
*/
function page_headers() {
global $adminer;
header("Content-Type: text/html; charset=utf-8");
header("Cache-Control: no-cache");
header("X-Frame-Options: deny"); // ClickJacking protection in IE8, Safari 4, Chrome 2, Firefox 3.6.9
header("X-XSS-Protection: 0"); // prevents introducing XSS in IE8 by removing safe parts of the page
header("X-Content-Type-Options: nosniff");
header("Referrer-Policy: origin-when-cross-origin");
foreach ($adminer->csp() as $csp) {
$header = array();
foreach ($csp as $key => $val) {
$header[] = "$key $val";
}
header("Content-Security-Policy: " . implode("; ", $header));
}
$adminer->headers();
}
/** Get Content Security Policy headers
* @return array of arrays with directive name in key, allowed sources in value
*/
function csp() {
return array(
array(
"script-src" => "'self' 'unsafe-inline' 'nonce-" . get_nonce() . "' 'strict-dynamic'", // 'self' is a fallback for browsers not supporting 'strict-dynamic', 'unsafe-inline' is a fallback for browsers not supporting 'nonce-'
"connect-src" => "'self' https://api.github.com/repos/adminerevo/adminerevo/releases/latest",
"frame-src" => "'self'",
"object-src" => "'none'",
"base-uri" => "'none'",
"form-action" => "'self'",
),
);
}
/** Get a CSP nonce
* @return string Base64 value
*/
function get_nonce() {
static $nonce;
if (!$nonce) {
$nonce = base64_encode(rand_string());
}
return $nonce;
}
/** Print flash and error messages
* @param string
* @return null
*/
function page_messages($error) {
$uri = preg_replace('~^[^?]*~', '', $_SERVER["REQUEST_URI"]);
$messages = [];
if (isset($_SESSION["messages"][$uri])) {
$messages = $_SESSION["messages"][$uri];
}
if (count($messages) > 0) {
echo "<div class='message'>" . implode("</div>\n<div class='message'>", $messages) . "</div>" . script("messagesPrint();");
unset($_SESSION["messages"][$uri]);
}
if ($error) {
echo "<div class='error'>$error</div>\n";
}
}
/** Print HTML footer
* @param string "auth", "db", "ns"
* @return null
*/
function page_footer($missing = "") {
global $adminer, $token;
?>
</div>
<?php switch_lang(); ?>
<?php if ($missing != "auth") { ?>
<form action="" method="post">
<p class="logout">
<input type="submit" name="logout" value="<?php echo lang('Logout'); ?>" id="logout">
<input type="hidden" name="token" value="<?php echo $token; ?>">
</p>
</form>
<?php } ?>
<div id="menu">
<?php $adminer->navigation($missing); ?>
</div>
<?php
echo script("setupSubmitHighlight(document);");
echo script("setupCopyToClipboard(document);");
echo "</body>\n</html>";
}

View file

@ -1,188 +0,0 @@
<?php
$drivers = array();
/** Add a driver
* @param string
* @param string
* @return null
*/
function add_driver($id, $name) {
global $drivers;
$drivers[$id] = $name;
}
/** Get driver name
* @param string
* @return string
*/
function get_driver($id) {
global $drivers;
return $drivers[$id];
}
/*abstract*/ class Min_SQL {
var $_conn;
/** Create object for performing database operations
* @param Min_DB
*/
function __construct($connection) {
$this->_conn = $connection;
}
/** Select data from table
* @param string
* @param array result of $adminer->selectColumnsProcess()[0]
* @param array result of $adminer->selectSearchProcess()
* @param array result of $adminer->selectColumnsProcess()[1]
* @param array result of $adminer->selectOrderProcess()
* @param int result of $adminer->selectLimitProcess()
* @param int index of page starting at zero
* @param bool whether to print the query
* @return Min_Result
*/
function select($table, $select, $where, $group, $order = array(), $limit = 1, $page = 0, $print = false) {
global $adminer, $jush;
$is_group = (count($group) < count($select));
$query = $adminer->selectQueryBuild($select, $where, $group, $order, $limit, $page);
if (!$query) {
$query = "SELECT" . limit(
($_GET["page"] != "last" && $limit != "" && $group && $is_group && $jush == "sql" ? "SQL_CALC_FOUND_ROWS " : "") . implode(", ", $select) . "\nFROM " . table($table),
($where ? "\nWHERE " . implode(" AND ", $where) : "") . ($group && $is_group ? "\nGROUP BY " . implode(", ", $group) : "") . ($order ? "\nORDER BY " . implode(", ", $order) : ""),
($limit != "" ? +$limit : null),
($page ? $limit * $page : 0),
"\n"
);
}
$start = microtime(true);
$return = $this->_conn->query($query);
if ($print) {
echo $adminer->selectQuery($query, $start, !$return);
}
return $return;
}
/** Delete data from table
* @param string
* @param string " WHERE ..."
* @param int 0 or 1
* @return bool
*/
function delete($table, $queryWhere, $limit = 0) {
$query = "FROM " . table($table);
return queries("DELETE" . ($limit ? limit1($table, $query, $queryWhere) : " $query$queryWhere"));
}
/** Update data in table
* @param string
* @param array escaped columns in keys, quoted data in values
* @param string " WHERE ..."
* @param int 0 or 1
* @param string
* @return bool
*/
function update($table, $set, $queryWhere, $limit = 0, $separator = "\n") {
$values = array();
foreach ($set as $key => $val) {
$values[] = "$key = $val";
}
$query = table($table) . " SET$separator" . implode(",$separator", $values);
return queries("UPDATE" . ($limit ? limit1($table, $query, $queryWhere, $separator) : " $query$queryWhere"));
}
/** Insert data into table
* @param string
* @param array escaped columns in keys, quoted data in values
* @return bool
*/
function insert($table, $set) {
return queries("INSERT INTO " . table($table) . ($set
? " (" . implode(", ", array_keys($set)) . ")\nVALUES (" . implode(", ", $set) . ")"
: " DEFAULT VALUES"
));
}
/** Insert or update data in table
* @param string
* @param array
* @param array of arrays with escaped columns in keys and quoted data in values
* @return bool
*/
/*abstract*/ function insertUpdate($table, $rows, $primary) {
return false;
}
/** Begin transaction
* @return bool
*/
function begin() {
return queries("BEGIN");
}
/** Commit transaction
* @return bool
*/
function commit() {
return queries("COMMIT");
}
/** Rollback transaction
* @return bool
*/
function rollback() {
return queries("ROLLBACK");
}
/** Return query with a timeout
* @param string
* @param int seconds
* @return string or null if the driver doesn't support query timeouts
*/
function slowQuery($query, $timeout) {
}
/** Convert column to be searchable
* @param string escaped column name
* @param array array("op" => , "val" => )
* @param array
* @return string
*/
function convertSearch($idf, $val, $field) {
return $idf;
}
/** Convert value returned by database to actual value
* @param string
* @param array
* @return string
*/
function value($val, $field) {
return (method_exists($this->_conn, 'value')
? $this->_conn->value($val, $field)
: (is_resource($val) ? stream_get_contents($val) : $val)
);
}
/** Quote binary string
* @param string
* @return string
*/
function quoteBinary($s) {
return q($s);
}
/** Get warnings about the last command
* @return string HTML
*/
function warnings() {
return '';
}
/** Get help link for table
* @param string
* @return string relative URL or null
*/
function tableHelp($name) {
}
}

View file

@ -1,587 +0,0 @@
<?php
/** Print select result
* @param Min_Result
* @param Min_DB connection to examine indexes
* @param array
* @param int
* @return array $orgtables
*/
function select($result, $connection2 = null, $orgtables = array(), $limit = 0) {
global $jush;
$links = array(); // colno => orgtable - create links from these columns
$indexes = array(); // orgtable => array(column => colno) - primary keys
$columns = array(); // orgtable => array(column => ) - not selected columns in primary key
$blobs = array(); // colno => bool - display bytes for blobs
$types = array(); // colno => type - display char in <code>
$return = array(); // table => orgtable - mapping to use in EXPLAIN
odd(''); // reset odd for each result
for ($i=0; (!$limit || $i < $limit) && ($row = $result->fetch_row()); $i++) {
if (!$i) {
echo "<div class='scrollable'>\n";
echo "<table cellspacing='0' class='nowrap'>\n";
echo "<thead><tr>";
for ($j=0; $j < count($row); $j++) {
$field = $result->fetch_field();
$name = $field->name;
$orgtable = $field->orgtable;
$orgname = $field->orgname;
$return[$field->table] = $orgtable;
if ($orgtables && $jush == "sql") { // MySQL EXPLAIN
$links[$j] = ($name == "table" ? "table=" : ($name == "possible_keys" ? "indexes=" : null));
} elseif ($orgtable != "") {
if (!isset($indexes[$orgtable])) {
// find primary key in each table
$indexes[$orgtable] = array();
foreach (indexes($orgtable, $connection2) as $index) {
if ($index["type"] == "PRIMARY") {
$indexes[$orgtable] = array_flip($index["columns"]);
break;
}
}
$columns[$orgtable] = $indexes[$orgtable];
}
if (isset($columns[$orgtable][$orgname])) {
unset($columns[$orgtable][$orgname]);
$indexes[$orgtable][$orgname] = $j;
$links[$j] = $orgtable;
}
}
if ($field->charsetnr == 63) { // 63 - binary
$blobs[$j] = true;
}
$types[$j] = $field->type;
echo "<th" . ($orgtable != "" || $field->name != $orgname ? " title='" . h(($orgtable != "" ? "$orgtable." : "") . $orgname) . "'" : "") . ">" . h($name)
. ($orgtables ? doc_link(array(
'sql' => "explain-output.html#explain_" . strtolower($name),
'mariadb' => "explain/#the-columns-in-explain-select",
)) : "")
;
}
echo "</thead>\n";
}
echo "<tr" . odd() . ">";
foreach ($row as $key => $val) {
$link = "";
if (isset($links[$key]) && !$columns[$links[$key]]) {
if ($orgtables && $jush == "sql") { // MySQL EXPLAIN
$table = $row[array_search("table=", $links)];
$link = ME . $links[$key] . urlencode($orgtables[$table] != "" ? $orgtables[$table] : $table);
} else {
$link = ME . "edit=" . urlencode($links[$key]);
foreach ($indexes[$links[$key]] as $col => $j) {
$link .= "&where" . urlencode("[" . bracket_escape($col) . "]") . "=" . urlencode($row[$j]);
}
}
} elseif (is_url($val)) {
$link = $val;
}
if ($val === null) {
$val = "<i>NULL</i>";
} elseif ($blobs[$key] && !is_utf8($val)) {
$val = "<i>" . lang('%d byte(s)', strlen($val)) . "</i>"; //! link to download
} else {
$val = h($val);
if ($types[$key] == 254) { // 254 - char
$val = "<code>$val</code>";
}
}
if ($link) {
$val = "<a href='" . h($link) . "'" . (is_url($link) ? target_blank() : '') . ">$val</a>";
}
echo "<td>$val";
}
}
echo ($i ? "</table>\n</div>" : "<p class='message'>" . lang('No rows.')) . "\n";
return $return;
}
/** Get referencable tables with single column primary key except self
* @param string
* @return array ($table_name => $field)
*/
function referencable_primary($self) {
$return = array(); // table_name => field
foreach (table_status('', true) as $table_name => $table) {
if ($table_name != $self && fk_support($table)) {
foreach (fields($table_name) as $field) {
if ($field["primary"]) {
if ($return[$table_name]) { // multi column primary key
unset($return[$table_name]);
break;
}
$return[$table_name] = $field;
}
}
}
}
return $return;
}
/** Get settings stored in a cookie
* @return array
*/
function adminer_settings() {
parse_str($_COOKIE["adminer_settings"], $settings);
return $settings;
}
/** Get setting stored in a cookie
* @param string
* @return array
*/
function adminer_setting($key) {
$settings = adminer_settings();
return $settings[$key];
}
/** Store settings to a cookie
* @param array
* @return bool
*/
function set_adminer_settings($settings) {
return cookie("adminer_settings", http_build_query($settings + adminer_settings()));
}
/** Print SQL <textarea> tag
* @param string
* @param string or array in which case [0] of every element is used
* @param int
* @param int
* @return null
*/
function textarea($name, $value, $rows = 10, $cols = 80) {
global $jush;
echo "<textarea name='" . h($name) . "' rows='$rows' cols='$cols' class='sqlarea jush-$jush' spellcheck='false' wrap='off'>";
if (is_array($value)) {
foreach ($value as $val) { // not implode() to save memory
echo h($val[0]) . "\n\n\n"; // $val == array($query, $time, $elapsed)
}
} else {
echo h($value);
}
echo "</textarea>";
}
/** Print table columns for type edit
* @param string
* @param array
* @param array
* @param array returned by referencable_primary()
* @param array extra types to prepend
* @return null
*/
function edit_type($key, $field, $collations, $foreign_keys = array(), $extra_types = array()) {
global $structured_types, $types, $unsigned, $on_actions;
$type = $field["type"];
?>
<td><select name="<?php echo h($key); ?>[type]" class="type" aria-labelledby="label-type"><?php
if ($type && !isset($types[$type]) && !isset($foreign_keys[$type]) && !in_array($type, $extra_types)) {
$extra_types[] = $type;
}
if ($foreign_keys) {
$structured_types[lang('Foreign keys')] = $foreign_keys;
}
echo optionlist(array_merge($extra_types, $structured_types), $type);
?></select><td><input name="<?php echo h($key); ?>[length]" value="<?php echo h($field["length"]); ?>" size="3"<?php echo (!$field["length"] && preg_match('~var(char|binary)$~', $type) ? " class='required'" : ""); //! type="number" with enabled JavaScript ?> aria-labelledby="label-length"><td class="options"><?php
echo "<select name='" . h($key) . "[collation]'" . (preg_match('~(char|text|enum|set)$~', $type) ? "" : " class='hidden'") . '><option value="">(' . lang('collation') . ')' . optionlist($collations, $field["collation"]) . '</select>';
echo ($unsigned ? "<select name='" . h($key) . "[unsigned]'" . (!$type || preg_match(number_type(), $type) ? "" : " class='hidden'") . '><option>' . optionlist($unsigned, $field["unsigned"]) . '</select>' : '');
echo (isset($field['on_update']) ? "<select name='" . h($key) . "[on_update]'" . (preg_match('~timestamp|datetime~', $type) ? "" : " class='hidden'") . '>' . optionlist(array("" => "(" . lang('ON UPDATE') . ")", "CURRENT_TIMESTAMP"), (preg_match('~^CURRENT_TIMESTAMP~i', $field["on_update"]) ? "CURRENT_TIMESTAMP" : $field["on_update"])) . '</select>' : '');
echo ($foreign_keys ? "<select name='" . h($key) . "[on_delete]'" . (preg_match("~`~", $type) ? "" : " class='hidden'") . "><option value=''>(" . lang('ON DELETE') . ")" . optionlist(explode("|", $on_actions), $field["on_delete"]) . "</select> " : " "); // space for IE
}
/** Filter length value including enums
* @param string
* @return string
*/
function process_length($length) {
global $enum_length;
return (preg_match("~^\\s*\\(?\\s*$enum_length(?:\\s*,\\s*$enum_length)*+\\s*\\)?\\s*\$~", $length) && preg_match_all("~$enum_length~", $length, $matches)
? "(" . implode(",", $matches[0]) . ")"
: preg_replace('~^[0-9].*~', '(\0)', preg_replace('~[^-0-9,+()[\]]~', '', $length))
);
}
/** Create SQL string from field type
* @param array
* @param string
* @return string
*/
function process_type($field, $collate = "COLLATE") {
global $unsigned;
if (DRIVER === 'server' && ($field['unsigned'] === 'unsigned' || stripos( (string) $field['type'],'int') !== false) && min_version(8)) {
$field["length"] = '';
}
return " $field[type]"
. process_length($field["length"])
. (preg_match(number_type(), $field["type"]) && in_array($field["unsigned"], $unsigned) ? " $field[unsigned]" : "")
. (preg_match('~char|text|enum|set~', $field["type"]) && $field["collation"] ? " $collate " . q($field["collation"]) : "")
;
}
/** Create SQL string from field
* @param array basic field information
* @param array information about field type
* @return array array("field", "type", "NULL", "DEFAULT", "ON UPDATE", "COMMENT", "AUTO_INCREMENT")
*/
function process_field($field, $type_field) {
return array(
idf_escape(trim($field["field"])),
process_type($type_field),
($field["null"] ? " NULL" : " NOT NULL"), // NULL for timestamp
default_value($field),
(preg_match('~timestamp|datetime~', $field["type"]) && $field["on_update"] ? " ON UPDATE $field[on_update]" : ""),
(support("comment") && $field["comment"] != "" ? " COMMENT " . q($field["comment"]) : ""),
($field["auto_increment"] ? auto_increment() : null),
);
}
/** Get default value clause
* @param array
* @return string
*/
function default_value($field) {
$default = $field["default"];
return ($default === null ? "" : " DEFAULT " . (preg_match('~char|binary|text|enum|set~', $field["type"]) || preg_match('~^(?![a-z])~i', $default) ? q($default) : $default));
}
/** Get type class to use in CSS
* @param string
* @return string class=''
*/
function type_class($type) {
foreach (array(
'char' => 'text',
'date' => 'time|year',
'binary' => 'blob',
'enum' => 'set',
) as $key => $val) {
if (preg_match("~$key|$val~", $type)) {
return " class='$key'";
}
}
}
/** Print table interior for fields editing
* @param array
* @param array
* @param string TABLE or PROCEDURE
* @param array returned by referencable_primary()
* @return null
*/
function edit_fields($fields, $collations, $type = "TABLE", $foreign_keys = array()) {
global $inout;
$fields = array_values($fields);
$default_class = (($_POST ? $_POST["defaults"] : adminer_setting("defaults")) ? "" : " class='hidden'");
$comment_class = (($_POST ? $_POST["comments"] : adminer_setting("comments")) ? "" : " class='hidden'");
?>
<thead><tr>
<?php if ($type == "PROCEDURE") { ?><td><?php } ?>
<th id="label-name"><?php echo ($type == "TABLE" ? lang('Column name') : lang('Parameter name')); ?>
<td id="label-type"><?php echo lang('Type'); ?><textarea id="enum-edit" rows="4" cols="12" wrap="off" style="display: none;"></textarea><?php echo script("qs('#enum-edit').onblur = editingLengthBlur;"); ?>
<td id="label-length"><?php echo lang('Length'); ?>
<td><?php echo lang('Options'); /* no label required, options have their own label */ ?>
<?php if ($type == "TABLE") { ?>
<td id="label-null">NULL
<td><input type="radio" name="auto_increment_col" value=""><acronym id="label-ai" title="<?php echo lang('Auto Increment'); ?>">AI</acronym><?php echo doc_link(array(
'sql' => "example-auto-increment.html",
'mariadb' => "auto_increment/",
'sqlite' => "autoinc.html",
'pgsql' => "datatype.html#DATATYPE-SERIAL",
'mssql' => "ms186775.aspx",
)); ?>
<td id="label-default"<?php echo $default_class; ?>><?php echo lang('Default value'); ?>
<?php echo (support("comment") ? "<td id='label-comment'$comment_class>" . lang('Comment') : ""); ?>
<?php } ?>
<td><?php echo "<input type='image' class='icon' name='add[" . (support("move_col") ? 0 : count($fields)) . "]' src='../adminer/static/plus.gif' alt='+' title='" . lang('Add next') . "'>" . script("row_count = " . count($fields) . ";"); ?>
</thead>
<tbody>
<?php
echo script("mixin(qsl('tbody'), {onclick: editingClick, onkeydown: editingKeydown, oninput: editingInput});");
foreach ($fields as $i => $field) {
$i++;
$orig = $field[($_POST ? "orig" : "field")];
$display = (isset($_POST["add"][$i-1]) || (isset($field["field"]) && isset($_POST["drop_col"][$i]) === false)) && (support("drop_col") || $orig == "");
?>
<tr<?php echo ($display ? "" : " style='display: none;'"); ?>>
<?php echo ($type == "PROCEDURE" ? "<td>" . html_select("fields[$i][inout]", explode("|", $inout), $field["inout"]) : ""); ?>
<th><?php if ($display) { ?><input name="fields[<?php echo $i; ?>][field]" value="<?php echo h($field["field"]); ?>" data-maxlength="64" autocapitalize="off" aria-labelledby="label-name"><?php } ?>
<input type="hidden" name="fields[<?php echo $i; ?>][orig]" value="<?php echo h($orig); ?>"><?php edit_type("fields[$i]", $field, $collations, $foreign_keys); ?>
<?php if ($type == "TABLE") { ?>
<td><?php echo checkbox("fields[$i][null]", 1, $field["null"], "", "", "block", "label-null"); ?>
<td><label class="block"><input type="radio" name="auto_increment_col" value="<?php echo $i; ?>"<?php if ($field["auto_increment"]) { ?> checked<?php } ?> aria-labelledby="label-ai"></label><td<?php echo $default_class; ?>><?php
echo checkbox("fields[$i][has_default]", 1, $field["has_default"], "", "", "", "label-default"); ?><input name="fields[<?php echo $i; ?>][default]" value="<?php echo h($field["default"]); ?>" aria-labelledby="label-default"><?php
echo (support("comment") ? "<td$comment_class><input name='fields[$i][comment]' value='" . h($field["comment"]) . "' data-maxlength='" . (min_version(5.5) ? 1024 : 255) . "' aria-labelledby='label-comment'>" : "");
}
echo "<td>";
echo (support("move_col") ?
"<input type='image' class='icon' name='add[$i]' src='../adminer/static/plus.gif' alt='+' title='" . lang('Add next') . "'> "
. "<input type='image' class='icon' name='up[$i]' src='../adminer/static/up.gif' alt='↑' title='" . lang('Move up') . "'> "
. "<input type='image' class='icon' name='down[$i]' src='../adminer/static/down.gif' alt='↓' title='" . lang('Move down') . "'> "
: "");
echo ($orig == "" || support("drop_col") ? "<input type='image' class='icon' name='drop_col[$i]' src='../adminer/static/cross.gif' alt='x' title='" . lang('Remove') . "'>" : "");
}
}
/** Move fields up and down or add field
* @param array
* @return bool
*/
function process_fields(&$fields) {
$offset = 0;
if ($_POST["up"]) {
$last = 0;
foreach ($fields as $key => $field) {
if (key($_POST["up"]) == $key) {
unset($fields[$key]);
array_splice($fields, $last, 0, array($field));
break;
}
if (isset($field["field"])) {
$last = $offset;
}
$offset++;
}
} elseif ($_POST["down"]) {
$found = false;
foreach ($fields as $key => $field) {
if (isset($field["field"]) && $found) {
unset($fields[key($_POST["down"])]);
array_splice($fields, $offset, 0, array($found));
break;
}
if (key($_POST["down"]) == $key) {
$found = $field;
}
$offset++;
}
} elseif ($_POST["add"]) {
$fields = array_values($fields);
array_splice($fields, key($_POST["add"]), 0, array(array()));
} elseif (!$_POST["drop_col"]) {
return false;
}
return true;
}
/** Callback used in routine()
* @param array
* @return string
*/
function normalize_enum($match) {
return "'" . str_replace("'", "''", addcslashes(stripcslashes(str_replace($match[0][0] . $match[0][0], $match[0][0], substr($match[0], 1, -1))), '\\')) . "'";
}
/** Issue grant or revoke commands
* @param string GRANT or REVOKE
* @param array
* @param string
* @param string
* @return bool
*/
function grant($grant, $privileges, $columns, $on) {
if (!$privileges) {
return true;
}
if ($privileges == array("ALL PRIVILEGES", "GRANT OPTION")) {
// can't be granted or revoked together
return ($grant == "GRANT"
? queries("$grant ALL PRIVILEGES$on WITH GRANT OPTION")
: queries("$grant ALL PRIVILEGES$on") && queries("$grant GRANT OPTION$on")
);
}
return queries("$grant " . preg_replace('~(GRANT OPTION)\([^)]*\)~', '\1', implode("$columns, ", $privileges) . $columns) . $on);
}
/** Drop old object and create a new one
* @param string drop old object query
* @param string create new object query
* @param string drop new object query
* @param string create test object query
* @param string drop test object query
* @param string
* @param string
* @param string
* @param string
* @param string
* @param string
* @return null redirect in success
*/
function drop_create($drop, $create, $drop_created, $test, $drop_test, $location, $message_drop, $message_alter, $message_create, $old_name, $new_name) {
if ($_POST["drop"]) {
query_redirect($drop, $location, $message_drop);
} elseif ($old_name == "") {
query_redirect($create, $location, $message_create);
} elseif ($old_name != $new_name) {
$created = queries($create);
queries_redirect($location, $message_alter, $created && queries($drop));
if ($created) {
queries($drop_created);
}
} else {
queries_redirect(
$location,
$message_alter,
queries($test) && queries($drop_test) && queries($drop) && queries($create)
);
}
}
/** Generate SQL query for creating trigger
* @param string
* @param array result of trigger()
* @return string
*/
function create_trigger($on, $row) {
global $jush;
$timing_event = " $row[Timing] $row[Event]" . (preg_match('~ OF~', $row["Event"]) ? " $row[Of]" : ""); // SQL injection
return "CREATE TRIGGER "
. idf_escape($row["Trigger"])
. ($jush == "mssql" ? $on . $timing_event : $timing_event . $on)
. rtrim(" $row[Type]\n$row[Statement]", ";")
. ";"
;
}
/** Generate SQL query for creating routine
* @param string "PROCEDURE" or "FUNCTION"
* @param array result of routine()
* @return string
*/
function create_routine($routine, $row) {
global $inout, $jush;
$set = array();
$fields = (array) $row["fields"];
ksort($fields); // enforce fields order
foreach ($fields as $field) {
if ($field["field"] != "") {
$set[] = (preg_match("~^($inout)\$~", $field["inout"]) ? "$field[inout] " : "") . idf_escape($field["field"]) . process_type($field, "CHARACTER SET");
}
}
$definition = rtrim("\n$row[definition]", ";");
return "CREATE $routine "
. idf_escape(trim($row["name"]))
. " (" . implode(", ", $set) . ")"
. (isset($_GET["function"]) ? " RETURNS" . process_type($row["returns"], "CHARACTER SET") : "")
. ($row["language"] ? " LANGUAGE $row[language]" : "")
. ($jush == "pgsql" ? " AS " . q($definition) : "$definition;")
;
}
/** Remove current user definer from SQL command
* @param string
* @return string
*/
function remove_definer($query) {
return preg_replace('~^([A-Z =]+) DEFINER=`' . preg_replace('~@(.*)~', '`@`(%|\1)', logged_user()) . '`~', '\1', $query); //! proper escaping of user
}
/** Format foreign key to use in SQL query
* @param array ("db" => string, "ns" => string, "table" => string, "source" => array, "target" => array, "on_delete" => one of $on_actions, "on_update" => one of $on_actions)
* @return string
*/
function format_foreign_key($foreign_key) {
global $on_actions;
$db = $foreign_key["db"];
$ns = $foreign_key["ns"];
return " FOREIGN KEY (" . implode(", ", array_map('idf_escape', $foreign_key["source"])) . ") REFERENCES "
. ($db != "" && $db != $_GET["db"] ? idf_escape($db) . "." : "")
. ($ns != "" && $ns != $_GET["ns"] ? idf_escape($ns) . "." : "")
. table($foreign_key["table"])
. " (" . implode(", ", array_map('idf_escape', $foreign_key["target"])) . ")" //! reuse $name - check in older MySQL versions
. (preg_match("~^($on_actions)\$~", $foreign_key["on_delete"]) ? " ON DELETE $foreign_key[on_delete]" : "")
. (preg_match("~^($on_actions)\$~", $foreign_key["on_update"]) ? " ON UPDATE $foreign_key[on_update]" : "")
;
}
/** Add a file to TAR
* @param string
* @param TmpFile
* @return null prints the output
*/
function tar_file($filename, $tmp_file) {
$return = pack("a100a8a8a8a12a12", $filename, 644, 0, 0, decoct($tmp_file->size), decoct(time()));
$checksum = 8*32; // space for checksum itself
for ($i=0; $i < strlen($return); $i++) {
$checksum += ord($return[$i]);
}
$return .= sprintf("%06o", $checksum) . "\0 ";
echo $return;
echo str_repeat("\0", 512 - strlen($return));
$tmp_file->send();
echo str_repeat("\0", 511 - ($tmp_file->size + 511) % 512);
}
/** Get INI bytes value
* @param string
* @return int
*/
function ini_bytes($ini) {
$val = ini_get($ini);
switch (strtolower(substr($val, -1))) {
case 'g': $val *= 1024; // no break
case 'm': $val *= 1024; // no break
case 'k': $val *= 1024;
}
return $val;
}
/** Create link to database documentation
* @param array $jush => $path
* @param string HTML code
* @return string HTML code
*/
function doc_link($paths, $text = "<sup>?</sup>") {
global $jush, $connection;
$server_info = $connection->server_info;
$version = preg_replace('~^(\d\.?\d).*~s', '\1', $server_info); // two most significant digits
$urls = array(
'sql' => "https://dev.mysql.com/doc/refman/$version/en/",
'sqlite' => "https://www.sqlite.org/",
'pgsql' => "https://www.postgresql.org/docs/$version/",
'mssql' => "https://msdn.microsoft.com/library/",
'oracle' => "https://www.oracle.com/pls/topic/lookup?ctx=db" . preg_replace('~^.* (\d+)\.(\d+)\.\d+\.\d+\.\d+.*~s', '\1\2', $server_info) . "&id=",
);
if (preg_match('~MariaDB~', $server_info)) {
$urls['sql'] = "https://mariadb.com/kb/en/library/";
$paths['sql'] = (isset($paths['mariadb']) ? $paths['mariadb'] : str_replace(".html", "/", $paths['sql']));
}
return ($paths[$jush] ? "<a href='" . h($urls[$jush] . $paths[$jush]) . "'" . target_blank() . ">$text</a>" : "");
}
/** Wrap gzencode() for usage in ob_start()
* @param string
* @return string
*/
function ob_gzencode($string) {
// ob_start() callback recieves an optional parameter $phase but gzencode() accepts optional parameter $level
return gzencode($string);
}
/** Compute size of database
* @param string
* @return string formatted
*/
function db_size($db) {
global $connection;
if (!$connection->select_db($db)) {
return "?";
}
$return = 0;
foreach (table_status() as $table_status) {
$return += $table_status["Data_length"] + $table_status["Index_length"];
}
return format_number($return);
}
/** Print SET NAMES if utf8mb4 might be needed
* @param string
* @return null
*/
function set_utf8mb4($create) {
global $connection;
static $set = false;
if (!$set && preg_match('~\butf8mb4~i', $create)) { // possible false positive
$set = true;
echo "SET NAMES " . charset($connection) . ";\n\n";
}
}

File diff suppressed because it is too large Load diff

View file

@ -1,128 +0,0 @@
<?php
// not used in a single language version
$langs = array(
'en' => 'English', // Jakub Vrána - https://www.vrana.cz
'ar' => 'العربية', // Y.M Amine - Algeria - nbr7@live.fr
'bg' => 'Български', // Deyan Delchev
'bn' => 'বাংলা', // Dipak Kumar - dipak.ndc@gmail.com | Hossain Ahmed Saiman - hossain.ahmed@altscope.com
'bs' => 'Bosanski', // Emir Kurtovic
'ca' => 'Català', // Joan Llosas
'cs' => 'Čeština', // Jakub Vrána - https://www.vrana.cz
'da' => 'Dansk', // Jarne W. Beutnagel - jarne@beutnagel.dk
'de' => 'Deutsch', // Klemens Häckel - http://clickdimension.wordpress.com
'el' => 'Ελληνικά', // Dimitrios T. Tanis - jtanis@tanisfood.gr
'es' => 'Español', // Klemens Häckel - http://clickdimension.wordpress.com
'et' => 'Eesti', // Priit Kallas
'fa' => 'فارسی', // mojtaba barghbani - Iran - mbarghbani@gmail.com, Nima Amini - http://nimlog.com
'fi' => 'Suomi', // Finnish - Kari Eveli - http://www.lexitec.fi/
'fr' => 'Français', // Francis Gagné, Aurélien Royer
'gl' => 'Galego', // Eduardo Penabad Ramos
'he' => 'עברית', // Binyamin Yawitz - https://stuff-group.com/
'hu' => 'Magyar', // Borsos Szilárd (Borsosfi) - http://www.borsosfi.hu, info@borsosfi.hu
'id' => 'Bahasa Indonesia', // Ivan Lanin - http://ivan.lanin.org
'it' => 'Italiano', // Alessandro Fiorotto, Paolo Asperti
'ja' => '日本語', // Hitoshi Ozawa - http://sourceforge.jp/projects/oss-ja-jpn/releases/
'ka' => 'ქართული', // Saba Khmaladze skhmaladze@uglt.org
'ko' => '한국어', // dalli - skcha67@gmail.com
'lv' => 'Latviešu', // Kristaps Lediņš - https://krysits.com
'lt' => 'Lietuvių', // Paulius Leščinskas - http://www.lescinskas.lt
'ms' => 'Bahasa Melayu', // Pisyek
'nl' => 'Nederlands', // Maarten Balliauw - http://blog.maartenballiauw.be
'no' => 'Norsk', // Iver Odin Kvello, mupublishing.com
'pl' => 'Polski', // Radosław Kowalewski - http://srsbiz.pl/
'pt' => 'Português', // André Dias
'pt-br' => 'Português (Brazil)', // Gian Live - gian@live.com, Davi Alexandre davi@davialexandre.com.br, RobertoPC - http://www.robertopc.com.br
'ro' => 'Limba Română', // .nick .messing - dot.nick.dot.messing@gmail.com
'ru' => 'Русский', // Maksim Izmaylov; Andre Polykanine - https://github.com/Oire/
'sk' => 'Slovenčina', // Ivan Suchy - http://www.ivansuchy.com, Juraj Krivda - http://www.jstudio.cz
'sl' => 'Slovenski', // Matej Ferlan - www.itdinamik.com, matej.ferlan@itdinamik.com
'sr' => 'Српски', // Nikola Radovanović - cobisimo@gmail.com
'sv' => 'Svenska', // rasmusolle - https://github.com/rasmusolle
'ta' => 'த‌மிழ்', // G. Sampath Kumar, Chennai, India, sampathkumar11@gmail.com
'th' => 'ภาษาไทย', // Panya Saraphi, elect.tu@gmail.com - http://www.opencart2u.com/
'tr' => 'Türkçe', // Bilgehan Korkmaz - turktron.com
'uk' => 'Українська', // Valerii Kryzhov
'vi' => 'Tiếng Việt', // Giang Manh @ manhgd google mail
'zh' => '简体中文', // Mr. Lodar, vea - urn2.net - vea.urn2@gmail.com
'zh-tw' => '繁體中文', // http://tzangms.com
);
/** Get current language
* @return string
*/
function get_lang() {
global $LANG;
return $LANG;
}
/** Translate string
* @param string
* @param int
* @return string
*/
function lang($idf, $number = null) {
global $LANG, $translations;
$translation = ($translations[$idf] ? $translations[$idf] : $idf);
if (is_array($translation)) {
$pos = ($number == 1 ? 0
: ($LANG == 'cs' || $LANG == 'sk' ? ($number && $number < 5 ? 1 : 2) // different forms for 1, 2-4, other
: ($LANG == 'fr' ? (!$number ? 0 : 1) // different forms for 0-1, other
: ($LANG == 'pl' ? ($number % 10 > 1 && $number % 10 < 5 && $number / 10 % 10 != 1 ? 1 : 2) // different forms for 1, 2-4 except 12-14, other
: ($LANG == 'sl' ? ($number % 100 == 1 ? 0 : ($number % 100 == 2 ? 1 : ($number % 100 == 3 || $number % 100 == 4 ? 2 : 3))) // different forms for 1, 2, 3-4, other
: ($LANG == 'lt' ? ($number % 10 == 1 && $number % 100 != 11 ? 0 : ($number % 10 > 1 && $number / 10 % 10 != 1 ? 1 : 2)) // different forms for 1, 12-19, other
: ($LANG == 'bs' || $LANG == 'ru' || $LANG == 'sr' || $LANG == 'uk' ? ($number % 10 == 1 && $number % 100 != 11 ? 0 : ($number % 10 > 1 && $number % 10 < 5 && $number / 10 % 10 != 1 ? 1 : 2)) // different forms for 1 except 11, 2-4 except 12-14, other
: 1 // different forms for 1, other
))))))); // http://www.gnu.org/software/gettext/manual/html_node/Plural-forms.html
$translation = $translation[$pos];
}
$args = func_get_args();
array_shift($args);
$format = str_replace("%d", "%s", $translation);
if ($format != $translation) {
$args[0] = format_number($number);
}
return vsprintf($format, $args);
}
function switch_lang() {
global $LANG, $langs;
echo "<form action='' method='post'>\n<div id='lang'>";
echo lang('Language') . ": " . html_select("lang", $langs, $LANG, "this.form.submit();");
echo " <input type='submit' value='" . lang('Use') . "' class='hidden'>\n";
echo "<input type='hidden' name='token' value='" . get_token() . "'>\n"; // $token may be empty in auth.inc.php
echo "</div>\n</form>\n";
}
if (isset($_POST["lang"]) && verify_token()) { // $error not yet available
cookie("adminer_lang", $_POST["lang"]);
$_SESSION["lang"] = $_POST["lang"]; // cookies may be disabled
$_SESSION["translations"] = array(); // used in compiled version
redirect(remove_from_uri());
}
$LANG = "en";
if (isset($langs[$_COOKIE["adminer_lang"]])) {
cookie("adminer_lang", $_COOKIE["adminer_lang"]);
$LANG = $_COOKIE["adminer_lang"];
} elseif (isset($langs[$_SESSION["lang"]])) {
$LANG = $_SESSION["lang"];
} else {
$accept_language = array();
preg_match_all('~([-a-z]+)(;q=([0-9.]+))?~', str_replace("_", "-", strtolower($_SERVER["HTTP_ACCEPT_LANGUAGE"])), $matches, PREG_SET_ORDER);
foreach ($matches as $match) {
$accept_language[$match[1]] = (isset($match[3]) ? $match[3] : 1);
}
arsort($accept_language);
foreach ($accept_language as $key => $q) {
if (isset($langs[$key])) {
$LANG = $key;
break;
}
$key = preg_replace('~-.*~', '', $key);
if (!isset($accept_language[$key]) && isset($langs[$key])) {
$LANG = $key;
break;
}
}
}

View file

@ -1,102 +0,0 @@
<?php
// PDO can be used in several database drivers
if (extension_loaded('pdo')) {
/*abstract*/ class Min_PDO {
var $_result, $server_info, $affected_rows, $errno, $error, $pdo;
function __construct() {
global $adminer;
$pos = array_search("SQL", $adminer->operators);
if ($pos !== false) {
unset($adminer->operators[$pos]);
}
}
function dsn($dsn, $username, $password, $options = array()) {
$options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_SILENT;
$options[PDO::ATTR_STATEMENT_CLASS] = array('Min_PDOStatement');
try {
$this->pdo = new PDO($dsn, $username, $password, $options);
} catch (Exception $ex) {
auth_error(h($ex->getMessage()));
}
$this->server_info = @$this->pdo->getAttribute(PDO::ATTR_SERVER_VERSION);
}
/*abstract function select_db($database);*/
function quote($string) {
return $this->pdo->quote($string);
}
function query($query, $unbuffered = false) {
$result = $this->pdo->query($query);
$this->error = "";
if (!$result) {
list(, $this->errno, $this->error) = $this->pdo->errorInfo();
if (!$this->error) {
$this->error = lang('Unknown error.');
}
return false;
}
$this->store_result($result);
return $result;
}
function multi_query($query) {
return $this->_result = $this->query($query);
}
function store_result($result = null) {
if (!$result) {
$result = $this->_result;
if (!$result) {
return false;
}
}
if ($result->columnCount()) {
$result->num_rows = $result->rowCount(); // is not guaranteed to work with all drivers
return $result;
}
$this->affected_rows = $result->rowCount();
return true;
}
function next_result() {
if (!$this->_result) {
return false;
}
$this->_result->_offset = 0;
return @$this->_result->nextRowset(); // @ - PDO_PgSQL doesn't support it
}
function result($query, $field = 0) {
$result = $this->query($query);
if (!$result) {
return false;
}
$row = $result->fetch();
return $row[$field];
}
}
class Min_PDOStatement extends PDOStatement {
var $_offset = 0, $num_rows;
function fetch_assoc() {
return $this->fetch(PDO::FETCH_ASSOC);
}
function fetch_row() {
return $this->fetch(PDO::FETCH_NUM);
}
function fetch_field() {
$row = (object) $this->getColumnMeta($this->_offset++);
$row->orgtable = $row->table;
$row->orgname = $row->name;
$row->charsetnr = (in_array("blob", (array) $row->flags) ? 63 : 0);
return $row;
}
}
}

View file

@ -1,22 +0,0 @@
<?php
class TmpFile {
var $handler;
var $size;
function __construct() {
$this->handler = tmpfile();
}
function write($contents) {
$this->size += strlen($contents);
fwrite($this->handler, $contents);
}
function send() {
fseek($this->handler, 0);
fpassthru($this->handler);
fclose($this->handler);
}
}

View file

@ -1,2 +0,0 @@
<?php
$VERSION = "4.8.4";

View file

@ -1,107 +0,0 @@
<?php
/** PHP implementation of XXTEA encryption algorithm
* @author Ma Bingyao <andot@ujn.edu.cn>
* @link http://www.coolcode.cn/?action=show&id=128
*/
function int32($n) {
while ($n >= 2147483648) {
$n -= 4294967296;
}
while ($n <= -2147483649) {
$n += 4294967296;
}
return (int) $n;
}
function long2str($v, $w) {
$s = '';
foreach ($v as $val) {
$s .= pack('V', $val);
}
if ($w) {
return substr($s, 0, end($v));
}
return $s;
}
function str2long($s, $w) {
$v = array_values(unpack('V*', str_pad($s, 4 * ceil(strlen($s) / 4), "\0")));
if ($w) {
$v[] = strlen($s);
}
return $v;
}
function xxtea_mx($z, $y, $sum, $k) {
return int32((($z >> 5 & 0x7FFFFFF) ^ $y << 2) + (($y >> 3 & 0x1FFFFFFF) ^ $z << 4)) ^ int32(($sum ^ $y) + ($k ^ $z));
}
/** Cipher
* @param string plain-text password
* @param string
* @return string binary cipher
*/
function encrypt_string($str, $key) {
if ($str == "") {
return "";
}
$key = array_values(unpack("V*", pack("H*", md5($key))));
$v = str2long($str, true);
$n = count($v) - 1;
$z = $v[$n];
$y = $v[0];
$q = floor(6 + 52 / ($n + 1));
$sum = 0;
while ($q-- > 0) {
$sum = int32($sum + 0x9E3779B9);
$e = $sum >> 2 & 3;
for ($p=0; $p < $n; $p++) {
$y = $v[$p + 1];
$mx = xxtea_mx($z, $y, $sum, $key[$p & 3 ^ $e]);
$z = int32($v[$p] + $mx);
$v[$p] = $z;
}
$y = $v[0];
$mx = xxtea_mx($z, $y, $sum, $key[$p & 3 ^ $e]);
$z = int32($v[$n] + $mx);
$v[$n] = $z;
}
return long2str($v, false);
}
/** Decipher
* @param string binary cipher
* @param string
* @return string plain-text password
*/
function decrypt_string($str, $key) {
if ($str == "") {
return "";
}
if (!$key) {
return false;
}
$key = array_values(unpack("V*", pack("H*", md5($key))));
$v = str2long($str, false);
$n = count($v) - 1;
$z = $v[$n];
$y = $v[0];
$q = floor(6 + 52 / ($n + 1));
$sum = int32($q * 0x9E3779B9);
while ($sum) {
$e = $sum >> 2 & 3;
for ($p=$n; $p > 0; $p--) {
$z = $v[$p - 1];
$mx = xxtea_mx($z, $y, $sum, $key[$p & 3 ^ $e]);
$y = int32($v[$p] - $mx);
$v[$p] = $y;
}
$z = $v[$n];
$mx = xxtea_mx($z, $y, $sum, $key[$p & 3 ^ $e]);
$y = int32($v[0] - $mx);
$v[0] = $y;
$sum = int32($sum - 0x9E3779B9);
}
return long2str($v, true);
}

View file

@ -1,80 +0,0 @@
<?php
/** Adminer - Compact database management
* @link https://www.adminer.org/
* @author Jakub Vrana, https://www.vrana.cz/
* @copyright 2007 Jakub Vrana
* @license https://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
* @license https://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
*/
$GLOBALS['project'] = basename(dirname(__FILE__));
include "./include/bootstrap.inc.php";
include "./include/tmpfile.inc.php";
$enum_length = "'(?:''|[^'\\\\]|\\\\.)*'";
$inout = "IN|OUT|INOUT";
if (isset($_GET["select"]) && ($_POST["edit"] || $_POST["clone"]) && !$_POST["save"]) {
$_GET["edit"] = $_GET["select"];
}
if (isset($_GET["callf"])) {
$_GET["call"] = $_GET["callf"];
}
if (isset($_GET["function"])) {
$_GET["procedure"] = $_GET["function"];
}
if (isset($_GET["download"])) {
include "./download.inc.php";
} elseif (isset($_GET["table"])) {
include "./table.inc.php";
} elseif (isset($_GET["schema"])) {
include "./schema.inc.php";
} elseif (isset($_GET["dump"])) {
include "./dump.inc.php";
} elseif (isset($_GET["privileges"])) {
include "./privileges.inc.php";
} elseif (isset($_GET["sql"])) {
include "./sql.inc.php";
} elseif (isset($_GET["edit"])) {
include "./edit.inc.php";
} elseif (isset($_GET["create"])) {
include "./create.inc.php";
} elseif (isset($_GET["indexes"])) {
include "./indexes.inc.php";
} elseif (isset($_GET["database"])) {
include "./database.inc.php";
} elseif (isset($_GET["scheme"])) {
include "./scheme.inc.php";
} elseif (isset($_GET["call"])) {
include "./call.inc.php";
} elseif (isset($_GET["foreign"])) {
include "./foreign.inc.php";
} elseif (isset($_GET["view"])) {
include "./view.inc.php";
} elseif (isset($_GET["event"])) {
include "./event.inc.php";
} elseif (isset($_GET["procedure"])) {
include "./procedure.inc.php";
} elseif (isset($_GET["sequence"])) {
include "./sequence.inc.php";
} elseif (isset($_GET["type"])) {
include "./type.inc.php";
} elseif (isset($_GET["trigger"])) {
include "./trigger.inc.php";
} elseif (isset($_GET["user"])) {
include "./user.inc.php";
} elseif (isset($_GET["processlist"])) {
include "./processlist.inc.php";
} elseif (isset($_GET["select"])) {
include "./select.inc.php";
} elseif (isset($_GET["variables"])) {
include "./variables.inc.php";
} elseif (isset($_GET["script"])) {
include "./script.inc.php";
} else {
include "./db.inc.php";
}
// each page calls its own page_header(), if the footer should not be called then the page exits
page_footer();

View file

@ -1,146 +0,0 @@
<?php
$TABLE = $_GET["indexes"];
$index_types = array("PRIMARY", "UNIQUE", "INDEX");
$table_status = table_status($TABLE, true);
if (preg_match('~MyISAM|M?aria' . (min_version(5.6, '10.0.5') ? '|InnoDB' : '') . '~i', $table_status["Engine"])) {
$index_types[] = "FULLTEXT";
}
if (preg_match('~MyISAM|M?aria' . (min_version(5.7, '10.2.2') ? '|InnoDB' : '') . '~i', $table_status["Engine"])) {
$index_types[] = "SPATIAL";
}
$indexes = indexes($TABLE);
$primary = array();
if ($jush == "mongo") { // doesn't support primary key
$primary = $indexes["_id_"];
unset($index_types[0]);
unset($indexes["_id_"]);
}
$row = $_POST;
if ($_POST && !$error && !$_POST["add"] && !$_POST["drop_col"]) {
$alter = array();
foreach ($row["indexes"] as $index) {
$name = $index["name"];
if (in_array($index["type"], $index_types)) {
$columns = array();
$lengths = array();
$descs = array();
$set = array();
ksort($index["columns"]);
foreach ($index["columns"] as $key => $column) {
if ($column != "") {
$length = $index["lengths"][$key];
$desc = $index["descs"][$key];
$set[] = idf_escape($column) . ($length ? "(" . (+$length) . ")" : "") . ($desc ? " DESC" : "");
$columns[] = $column;
$lengths[] = ($length ? $length : null);
$descs[] = $desc;
}
}
if ($columns) {
$existing = $indexes[$name];
if ($existing) {
ksort($existing["columns"]);
ksort($existing["lengths"]);
ksort($existing["descs"]);
if ($index["type"] == $existing["type"]
&& array_values($existing["columns"]) === $columns
&& (!$existing["lengths"] || array_values($existing["lengths"]) === $lengths)
&& array_values($existing["descs"]) === $descs
) {
// skip existing index
unset($indexes[$name]);
continue;
}
}
$alter[] = array($index["type"], $name, $set);
}
}
}
// drop removed indexes
foreach ($indexes as $name => $existing) {
$alter[] = array($existing["type"], $name, "DROP");
}
if (!$alter) {
redirect(ME . "table=" . urlencode($TABLE));
}
queries_redirect(ME . "table=" . urlencode($TABLE), lang('Indexes have been altered.'), alter_indexes($TABLE, $alter));
}
page_header(lang('Indexes'), $error, array("table" => $TABLE), h($TABLE));
$fields = array_keys(fields($TABLE));
if ($_POST["add"]) {
foreach ($row["indexes"] as $key => $index) {
if ($index["columns"][count($index["columns"])] != "") {
$row["indexes"][$key]["columns"][] = "";
}
}
$index = end($row["indexes"]);
if ($index["type"] || array_filter($index["columns"], 'strlen')) {
$row["indexes"][] = array("columns" => array(1 => ""));
}
}
if (!$row) {
foreach ($indexes as $key => $index) {
$indexes[$key]["name"] = $key;
$indexes[$key]["columns"][] = "";
}
$indexes[] = array("columns" => array(1 => ""));
$row["indexes"] = $indexes;
}
?>
<form action="" method="post">
<div class="scrollable">
<table cellspacing="0" class="nowrap">
<thead><tr>
<th id="label-type"><?php echo lang('Index Type'); ?>
<th><input type="submit" class="wayoff"><?php echo lang('Column (length)'); ?>
<th id="label-name"><?php echo lang('Name'); ?>
<th><noscript><?php echo "<input type='image' class='icon' name='add[0]' src='../adminer/static/plus.gif' alt='+' title='" . lang('Add next') . "'>"; ?></noscript>
</thead>
<?php
if ($primary) {
echo "<tr><td>PRIMARY<td>";
foreach ($primary["columns"] as $key => $column) {
echo select_input(" disabled", $fields, $column);
echo "<label><input disabled type='checkbox'>" . lang('descending') . "</label> ";
}
echo "<td><td>\n";
}
$j = 1;
foreach ($row["indexes"] as $index) {
if (!$_POST["drop_col"] || $j != key($_POST["drop_col"])) {
echo "<tr><td>" . html_select("indexes[$j][type]", array(-1 => "") + $index_types, $index["type"], ($j == count($row["indexes"]) ? "indexesAddRow.call(this);" : 1), "label-type");
echo "<td>";
ksort($index["columns"]);
$i = 1;
foreach ($index["columns"] as $key => $column) {
echo "<span>" . select_input(
" name='indexes[$j][columns][$i]' title='" . lang('Column') . "'",
($fields ? array_combine($fields, $fields) : $fields),
$column,
"partial(" . ($i == count($index["columns"]) ? "indexesAddColumn" : "indexesChangeColumn") . ", '" . js_escape($jush == "sql" ? "" : $_GET["indexes"] . "_") . "')"
);
echo ($jush == "sql" || $jush == "mssql" ? "<input type='number' name='indexes[$j][lengths][$i]' class='size' value='" . h($index["lengths"][$key]) . "' title='" . lang('Length') . "'>" : "");
echo (support("descidx") ? checkbox("indexes[$j][descs][$i]", 1, $index["descs"][$key], lang('descending')) : "");
echo " </span>";
$i++;
}
echo "<td><input name='indexes[$j][name]' value='" . h($index["name"]) . "' autocapitalize='off' aria-labelledby='label-name'>\n";
echo "<td><input type='image' class='icon' name='drop_col[$j]' src='../adminer/static/cross.gif' alt='x' title='" . lang('Remove') . "'>" . script("qsl('input').onclick = partial(editingRemoveRow, 'indexes\$1[type]');");
}
$j++;
}
?>
</table>
</div>
<p>
<input type="submit" value="<?php echo lang('Save'); ?>">
<input type="hidden" name="token" value="<?php echo $token; ?>">
</form>

View file

@ -1,310 +0,0 @@
<?php
$translations = array(
'Login' => 'تسجيل الدخول',
'Logout successful.' => 'تم تسجيل الخروج بنجاح.',
'Invalid server or credentials.' => null,
'Server' => 'الخادم',
'Username' => 'اسم المستخدم',
'Password' => 'كلمة المرور',
'Select database' => 'اختر قاعدة البيانات',
'Invalid database.' => 'قاعدة البيانات غير صالحة.',
'Table has been dropped.' => 'تم حذف الجدول.',
'Table has been altered.' => 'تم تعديل الجدول.',
'Table has been created.' => 'تم إنشاء الجدول.',
'Alter table' => 'تعديل الجدول',
'Create table' => 'إنشاء جدول',
'Table name' => 'اسم الجدول',
'engine' => 'المحرك',
'collation' => 'الترتيب',
'Column name' => 'اسم العمود',
'Type' => 'النوع',
'Length' => 'الطول',
'Auto Increment' => 'تزايد تلقائي',
'Options' => 'خيارات',
'Save' => 'حفظ',
'Drop' => 'حذف',
'Database has been created.' => 'تم إنشاء قاعدة البيانات.',
'Database has been renamed.' => 'تمت إعادة تسمية فاعدة البيانات.',
'Database has been altered.' => 'تم تعديل قاعدة البيانات.',
'Alter database' => 'تعديل قاعدة البيانات',
'Create database' => 'إنشاء قاعدة بيانات',
'SQL command' => 'استعلام SQL',
'Logout' => 'تسجيل الخروج',
'database' => 'قاعدة بيانات',
'Use' => 'استعمال',
'No tables.' => 'لا توجد جداول.',
'select' => 'تحديد',
'Item has been deleted.' => 'تم حذف العنصر.',
'Item has been updated.' => 'تم تعديل العنصر.',
'Edit' => 'تعديل',
'Insert' => 'إنشاء',
'Save and insert next' => 'جفظ و إنشاء التالي',
'Delete' => 'مسح',
'Database' => 'قاعدة بيانات',
'Routines' => 'الروتينات',
'Indexes have been altered.' => 'تم تعديل المؤشر.',
'Indexes' => 'المؤشرات',
'Alter indexes' => 'تعديل المؤشرات',
'Add next' => 'إضافة التالي',
'Language' => 'اللغة',
'Select' => 'اختيار',
'New item' => 'عنصر جديد',
'Search' => 'بحث',
'Sort' => 'ترتيب',
'descending' => 'تنازلي',
'Limit' => 'حد',
'No rows.' => 'لا توجد نتائج.',
'Action' => 'الإجراء',
'edit' => 'تعديل',
'Page' => 'صفحة',
'Query executed OK, %d row(s) affected.' => 'تم تنفسذ الاستعلام, %d عدد الأسطر المعدلة.',
'Error in query' => 'هناك خطأ في الاستعلام',
'Execute' => 'تنفيذ',
'Table' => 'جدول',
'Foreign keys' => 'مفاتيح أجنبية',
'Triggers' => 'الزنادات',
'View' => 'عرض',
'Unable to select the table' => 'يتعذر اختيار الجدول',
'Invalid CSRF token. Send the form again.' => 'رمز CSRF غير صالح. المرجو إرسال الاستمارة مرة أخرى.',
'Comment' => 'تعليق',
'Default values' => 'القيم الافتراضية',
'%d byte(s)' => '%d بايت',
'No commands to execute.' => 'لا توجد أوامر للتنفيذ.',
'Unable to upload a file.' => 'يتعذر رفع ملف ما.',
'File upload' => 'رفع ملف',
'File uploads are disabled.' => 'رفع الملفات غير مشغل.',
'Routine has been called, %d row(s) affected.' => 'تم استدعاء الروتين, عدد الأسطر المعدلة %d.',
'Call' => 'استدعاء',
'No extension' => 'امتداد غير موجود',
'None of the supported PHP extensions (%s) are available.' => 'إمتدادات php المدعومة غير موجودة.',
'Session support must be enabled.' => 'عليك تفعيل نظام الجلسات.',
'Session expired, please login again.' => 'إنتهت الجلسة، من فضلك أعد تسجيل الدخول.',
'Text length' => 'طول النص',
'Foreign key has been dropped.' => 'تم مسح المفتاح الأجنبي.',
'Foreign key has been altered.' => 'تم تعديل المفتاح الأجنبي.',
'Foreign key has been created.' => 'تم إنشاء المفتاح الأجنبي.',
'Foreign key' => 'مفتاح أجنبي',
'Target table' => 'الجدول المستهدف',
'Change' => 'تعديل',
'Source' => 'المصدر',
'Target' => 'الهدف',
'Add column' => 'إضافة عمودا',
'Alter' => 'تعديل',
'Add foreign key' => 'إضافة مفتاح أجنبي',
'ON DELETE' => 'ON DELETE',
'ON UPDATE' => 'ON UPDATE',
'Index Type' => 'نوع المؤشر',
'Column (length)' => 'العمود (الطول)',
'View has been dropped.' => 'تم مسح العرض.',
'View has been altered.' => 'تم تعديل العرض.',
'View has been created.' => 'تم إنشاء العرض.',
'Alter view' => 'تعديل عرض',
'Create view' => 'إنشاء عرض',
'Name' => 'الاسم',
'Process list' => 'قائمة الإجراءات',
'%d process(es) have been killed.' => 'عدد الإجراءات التي تم إيقافها %d.',
'Kill' => 'إيقاف',
'Parameter name' => 'اسم المتغير',
'Database schema' => 'مخطط فاعدة البيانات',
'Create procedure' => 'إنشاء إجراء',
'Create function' => 'إنشاء دالة',
'Routine has been dropped.' => 'تم حذف الروتين.',
'Routine has been altered.' => 'تم تعديل الروتين.',
'Routine has been created.' => 'تم إنشاء الروتين.',
'Alter function' => 'تعديل الدالة',
'Alter procedure' => 'تعديل الإجراء',
'Return type' => 'نوع العودة',
'Add trigger' => 'إضافة زناد',
'Trigger has been dropped.' => 'تم حذف الزناد.',
'Trigger has been altered.' => 'تم تعديل الزناد.',
'Trigger has been created.' => 'تم إنشاء الزناد.',
'Alter trigger' => 'تعديل زناد',
'Create trigger' => 'إنشاء زناد',
'Time' => 'الوقت',
'Event' => 'الحدث',
'%d row(s)' => '%d أسطر',
'Remove' => 'مسح',
'Are you sure?' => 'هل أنت متأكد؟',
'Privileges' => 'الإمتيازات',
'Create user' => 'إنشاء مستخدم',
'User has been dropped.' => 'تم حذف المستخدم.',
'User has been altered.' => 'تم تعديل المستخدم.',
'User has been created.' => 'تم إنشاء المستخدم.',
'Hashed' => 'تلبيد',
'Column' => 'عمود',
'Routine' => 'روتين',
'Grant' => 'موافق',
'Revoke' => 'إلغاء',
'%s version: %s through PHP extension %s' => 'النسخة %s : %s عن طريق إمتداد ال PHP %s',
'Logged as: %s' => 'تم تسجيل الدخول باسم %s',
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'معلومات POST كبيرة جدا. قم بتقليص حجم المعلومات أو قم بزيادة قيمة %s في خيارات ال PHP.',
'Move up' => 'نقل للأعلى',
'Move down' => 'نقل للأسفل',
'Export' => 'تصدير',
'Tables' => 'جداول',
'Data' => 'معلومات',
'Output' => 'إخراج',
'open' => 'فتح',
'save' => 'حفظ',
'Format' => 'الصيغة',
'Functions' => 'الدوال',
'Aggregation' => 'تجميع',
'Event has been dropped.' => 'تم مسح الحدث.',
'Event has been altered.' => 'تم تعديل الحدث.',
'Event has been created.' => 'تم إنشاء الحدث.',
'Alter event' => 'تعديل حدث',
'Create event' => 'إنشاء حدث',
'Start' => 'إبدأ',
'End' => 'إنهاء',
'Every' => 'كل',
'Status' => 'حالة',
'On completion preserve' => 'حفظ عند الإنتهاء',
'Events' => 'الأحداث',
'Schedule' => 'مواعيد',
'At given time' => 'في وقت محدد',
'Save and continue edit' => 'إحفظ و واصل التعديل',
'original' => 'الأصلي',
'Tables have been truncated.' => 'تم قطع الجداول.',
'Tables have been moved.' => 'تم نقل الجداول.',
'Tables have been dropped.' => 'تم حذف الجداول.',
'Tables and views' => 'الجداول و العروض',
'Engine' => 'المحرك',
'Collation' => 'ترتيب',
'Data Length' => 'طول المعطيات.',
'Index Length' => 'طول المؤشر.',
'Data Free' => 'المساحة الحرة',
'Rows' => 'الأسطر',
',' => ',',
'0123456789' => '0123456789',
'Analyze' => 'تحليل',
'Optimize' => 'تحسين',
'Check' => 'فحص',
'Repair' => 'إصلاح',
'Truncate' => 'قطع',
'Move to other database' => 'نقل إلى قاعدة بيانات أخرى',
'Move' => 'نقل',
'%d item(s) have been affected.' => 'عدد العناصر المعدلة هو %d.',
'Whole result' => 'نتيجة كاملة',
'Clone' => 'نسخ',
'Maximum number of allowed fields exceeded. Please increase %s.' => 'لقد تجاوزت العدد الأقصى للحقول. يرجى الرفع من %s.',
'Partition by' => 'مقسم بواسطة',
'Partitions' => 'التقسيمات',
'Partition name' => 'اسم التقسيم',
'Values' => 'القيم',
'%d row(s) have been imported.' => 'تم استيراد %d سطرا',
'anywhere' => 'في اي مكان',
'Import' => 'استيراد',
'Stop on error' => 'أوقف في حالة حدوث خطأ',
'%.3f s' => '%.3f s',
'$1-$3-$5' => '$5/$3/$1',
'[yyyy]-mm-dd' => 'jj/mm/[aaaa]',
'History' => 'تاريخ',
'Variables' => 'متغيرات',
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'أعمدة المصدر و الهدف يجب أن تكون بنفس النوع, يجب أن يكون هناك مؤشر في أعمدة الهدف و البيانات المرجعية يجب ان تكون موجودة.',
'Relations' => 'علاقات',
'Run file' => 'نفذ الملف',
'Clear' => 'مسح',
'Maximum allowed file size is %sB.' => 'حجم الملف الأقصى هو %sB.',
'Numbers' => 'أعداد',
'Date and time' => 'التاريخ و الوقت',
'Strings' => 'سلاسل',
'Binary' => 'ثنائية',
'Lists' => 'قوائم',
'Editor' => 'المحرر',
'E-mail' => 'البريد الإلكتروني',
'From' => 'من',
'Subject' => 'الموضوع',
'Send' => 'إرسال',
'%d e-mail(s) have been sent.' => 'تم إرسال %d رسالة.',
'Webserver file %s' => 'ملف %s من خادم الويب',
'File does not exist.' => 'الملف غير موجود.',
'%d in total' => '%d في المجموع',
'Permanent login' => 'تسجيل دخول دائم',
'Databases have been dropped.' => 'تم حذف قواعد البيانات.',
'Database has been dropped.' => 'تم حذف قاعدة البيانات.',
'Search data in tables' => 'بحث في الجداول',
'Schema' => 'المخطط',
'Alter schema' => 'تعديل المخطط',
'Create schema' => 'إنشاء مخطط',
'Schema has been dropped.' => 'تم حذف المخطط.',
'Schema has been created.' => 'تم إنشاء المخطط.',
'Schema has been altered.' => 'تم تعديل المخطط.',
'Sequences' => 'السلاسل',
'Create sequence' => 'إنشاء سلسلة',
'Alter sequence' => 'تعديل سلسلة',
'Sequence has been dropped.' => 'تم حذف السلسلة.',
'Sequence has been created.' => 'تم إنشاء السلسلة.',
'Sequence has been altered.' => 'تم تعديل السلسلة.',
'User types' => 'نوع المستخدم',
'Create type' => 'إنشاء نوع',
'Alter type' => 'تعديل نوع',
'Type has been dropped.' => 'تم حذف النوع.',
'Type has been created.' => 'تم إنشاء النوع.',
'Use edit link to modify this value.' => 'استعمل الرابط "تعديل" لتعديل هذه القيمة.',
'last' => 'الأخيرة',
'From server' => 'من الخادم',
'System' => 'النظام',
'Select data' => 'عرض البيانات',
'Show structure' => 'عرض التركيبة',
'empty' => 'فارغ',
'Network' => 'شبكة',
'Geometry' => 'هندسة',
'File exists.' => 'الملف موجود.',
'Attachments' => 'ملفات مرفقة.',
'Item%s has been inserted.' => 'تم إدراج العنصر.',
'now' => 'الآن',
'%d query(s) executed OK.' => array('تم تنفيذ الاستعلام %d بنجاح.', 'تم تنفيذ الاستعلامات %d بنجاح.'),
'Show only errors' => 'إظهار الأخطاء فقط',
'Refresh' => 'تحديث',
'Invalid schema.' => 'مخطط غير صالح.',
'Please use one of the extensions %s.' => 'المرجو استخدام إحدى الامتدادات %s.',
'ltr' => 'rtl',
'Tables have been copied.' => 'تم نسخ الجداول.',
'Copy' => 'نسخ',
'Permanent link' => 'رابط دائم',
'Edit all' => 'تعديل الكل',
'HH:MM:SS' => 'HH:MM:SS',
'Drop %s?' => null,
'Tables have been optimized.' => null,
'as a regular expression' => null,
'Materialized view' => null,
'Vacuum' => null,
'Selected' => null,
'overwrite' => null,
'DB' => null,
'Ctrl+click on a value to modify it.' => null,
'File must be in UTF-8 encoding.' => null,
'Modify' => null,
'Load more data' => null,
'Loading' => null,
'Copy to clipboard' => null,
'ATTACH queries are not supported.' => null,
'Warnings' => null,
'%d / ' => array(),
'Limit rows' => null,
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
'Default value' => null,
'Full table scan' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array(),
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null,
'There is a space in the input password which might be the cause.' => null,
'If you did not send this request from Adminer then close this page.' => null,
'You can upload a big SQL file via FTP and import it from server.' => null,
'Size' => null,
'Compute' => null,
'You are offline.' => null,
'You have no privileges to update this table.' => null,
'Saving' => null,
'Unknown error.' => null,
'Database does not support password.' => null,
'Disable %s or enable %s or %s extensions.' => null,
'yes' => null,
'no' => null,
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'A newer version of AdminerEvo is available, download it now!' => null,
);

View file

@ -1,355 +0,0 @@
<?php
$translations = array(
// label for database system selection (MySQL, SQLite, ...)
'System' => 'Система',
'Server' => 'Сървър',
'Username' => 'Потребител',
'Password' => 'Парола',
'Permanent login' => 'Запаметяване',
'Login' => 'Вход',
'Logout' => 'Изход',
'Logged as: %s' => 'Текущ потребител: %s',
'Logout successful.' => 'Излизането е успешно.',
'Invalid server or credentials.' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array('Прекалено много неуспешни опити за вход, опитайте пак след %d минута.', 'Прекалено много неуспешни опити за вход, опитайте пак след %d минути.'),
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Главната парола вече е невалидна. <a href="https://www.adminer.org/en/extension/"%s>Изберете</a> %s метод, за да я направите постоянна.',
'Language' => 'Език',
'Invalid CSRF token. Send the form again.' => 'Невалиден шифроващ ключ. Попълнете и изпратете формуляра отново.',
'If you did not send this request from Adminer then close this page.' => 'Ако не сте изпратили тази заявка през Adminer, затворете тази страница.',
'No extension' => 'Няма разширение',
'None of the supported PHP extensions (%s) are available.' => 'Никое от поддържаните PHP разширения (%s) не е налично.',
'Session support must be enabled.' => 'Поддръжката на сесии трябва да е разрешена.',
'Session expired, please login again.' => 'Сесията е изтекла; моля, влезте отново.',
'%s version: %s through PHP extension %s' => '%s версия: %s през PHP разширение %s',
'Refresh' => 'Обновяване',
// text direction - 'ltr' or 'rtl'
'ltr' => 'ltr',
'Privileges' => 'Права',
'Create user' => 'Създаване на потребител',
'User has been dropped.' => 'Потребителя беше премахнат.',
'User has been altered.' => 'Потребителя беше променен.',
'User has been created.' => 'Потребителя беше създаден.',
'Hashed' => 'Хеширан',
'Column' => 'Колона',
'Routine' => 'Процедура',
'Grant' => 'Осигуряване',
'Revoke' => 'Отнемане',
'Process list' => 'Списък с процеси',
'%d process(es) have been killed.' => array('%d процес беше прекъснат.', '%d процеса бяха прекъснати.'),
'Kill' => 'Прекъсване',
'Variables' => 'Променливи',
'Status' => 'Състояние',
'SQL command' => 'SQL команда',
'%d query(s) executed OK.' => array('%d заявка е изпълнена.', '%d заявки са изпълнени.'),
'Query executed OK, %d row(s) affected.' => array('Заявката е изпълнена, %d ред е засегнат.', 'Заявката е изпълнена, %d редове са засегнати.'),
'No commands to execute.' => 'Няма команди за изпълнение.',
'Error in query' => 'Грешка в заявката',
'Execute' => 'Изпълнение',
'Stop on error' => 'Спиране при грешка',
'Show only errors' => 'Показване само на грешките',
// sprintf() format for time of the command
'%.3f s' => '%.3f s',
'History' => 'Хронология',
'Clear' => 'Изчистване',
'Edit all' => 'Редактиране на всички',
'File upload' => 'Прикачване на файл',
'From server' => 'От сървър',
'Webserver file %s' => 'Сървърен файл %s',
'Run file' => 'Изпълнение на файл',
'File does not exist.' => 'Файлът не съществува.',
'File uploads are disabled.' => 'Прикачването на файлове е забранено.',
'Unable to upload a file.' => 'Неуспешно прикачване на файл.',
'Maximum allowed file size is %sB.' => 'Максимално разрешената големина на файл е %sB.',
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'Изпратени са прекалено много данни. Намалете обема на данните или увеличете %s управляващата директива.',
'You can upload a big SQL file via FTP and import it from server.' => 'Можете да прикачите голям SQL файл чрез FTP и да го импортирате от сървъра.',
'You are offline.' => 'Вие сте офлайн.',
'Export' => 'Експорт',
'Output' => 'Резултат',
'open' => 'показване',
'save' => 'запис',
'Format' => 'Формат',
'Data' => 'Данни',
'Database' => 'База данни',
'database' => 'база данни',
'Use' => 'Избор',
'Select database' => 'Избор на база данни',
'Invalid database.' => 'Невалидна база данни.',
'Database has been dropped.' => 'Базата данни беше премахната.',
'Databases have been dropped.' => 'Базите данни бяха премехнати.',
'Database has been created.' => 'Базата данни беше създадена.',
'Database has been renamed.' => 'Базата данни беше преименувана.',
'Database has been altered.' => 'Базата данни беше променена.',
'Alter database' => 'Промяна на база данни',
'Create database' => 'Създаване на база данни',
'Database schema' => 'Схема на базата данни',
// link to current database schema layout
'Permanent link' => 'Постоянна препратка',
// thousands separator - must contain single byte
',' => ',',
'0123456789' => '0123456789',
'Engine' => 'Система',
'Collation' => 'Кодировка',
'Data Length' => 'Големина на данните',
'Index Length' => 'Големина на индекса',
'Data Free' => 'Свободно място',
'Rows' => 'Редове',
'%d in total' => '%d всичко',
'Analyze' => 'Анализиране',
'Optimize' => 'Оптимизиране',
'Vacuum' => 'Консолидиране',
'Check' => 'Проверка',
'Repair' => 'Поправка',
'Truncate' => 'Изрязване',
'Tables have been truncated.' => 'Таблиците бяха изрязани.',
'Move to other database' => 'Преместване в друга база данни',
'Move' => 'Преместване',
'Tables have been moved.' => 'Таблиците бяха преместени.',
'Copy' => 'Копиране',
'Tables have been copied.' => 'Таблиците бяха копирани.',
'Routines' => 'Процедури',
'Routine has been called, %d row(s) affected.' => array('Беше приложена процедура, %d ред е засегнат.', 'Беше приложена процедура, %d редове са засегнати.'),
'Call' => 'Прилагане',
'Parameter name' => 'Име на параметъра',
'Create procedure' => 'Създаване на процедура',
'Create function' => 'Създаване на функция',
'Routine has been dropped.' => 'Процедурата беше премахната.',
'Routine has been altered.' => 'Процедурата беше променена.',
'Routine has been created.' => 'Процедурата беше създадена.',
'Alter function' => 'Промяна на функция',
'Alter procedure' => 'Промяна на процедура',
'Return type' => 'Резултат',
'Events' => 'Събития',
'Event has been dropped.' => 'Събитието беше премахнато.',
'Event has been altered.' => 'Събитието беше променено.',
'Event has been created.' => 'Събитието беше създадено.',
'Alter event' => 'Промяна на събитие',
'Create event' => 'Създаване на събитие',
'At given time' => 'В зададено време',
'Every' => 'Всеки',
'Schedule' => 'Насрочване',
'Start' => 'Начало',
'End' => 'Край',
'On completion preserve' => 'Запазване след завършване',
'Tables' => 'Таблици',
'Tables and views' => 'Таблици и изгледи',
'Table' => 'Таблица',
'No tables.' => 'Няма таблици.',
'Alter table' => 'Промяна на таблица',
'Create table' => 'Създаване на таблица',
'Table has been dropped.' => 'Таблицата беше премахната.',
'Tables have been dropped.' => 'Таблиците бяха премахнати.',
'Tables have been optimized.' => 'Таблиците бяха оптимизирани.',
'Table has been altered.' => 'Таблицата беше променена.',
'Table has been created.' => 'Таблицата беше създадена.',
'Table name' => 'Име на таблица',
'Show structure' => 'Структура',
'engine' => 'система',
'collation' => 'кодировка',
'Column name' => 'Име на колоната',
'Type' => 'Вид',
'Length' => 'Големина',
'Auto Increment' => 'Автоматично увеличаване',
'Options' => 'Опции',
'Comment' => 'Коментар',
'Default value' => 'Стойност по подразбиране',
'Default values' => 'Стойности по подразбиране',
'Drop' => 'Премахване',
'Are you sure?' => 'Сигурни ли сте?',
'Size' => 'Големина',
'Compute' => 'Изчисляване',
'Move up' => 'Преместване нагоре',
'Move down' => 'Преместване надолу',
'Remove' => 'Премахване',
'Maximum number of allowed fields exceeded. Please increase %s.' => 'Максималния брой полета е превишен. Моля, увеличете %s.',
'Partition by' => 'Разделяне на',
'Partitions' => 'Раздели',
'Partition name' => 'Име на раздела',
'Values' => 'Стойности',
'View' => 'Изглед',
'Materialized view' => 'Запаметен изглед',
'View has been dropped.' => 'Изгледа беше премахнат.',
'View has been altered.' => 'Изгледа беше променен.',
'View has been created.' => 'Изгледа беше създаден.',
'Alter view' => 'Промяна на изглед',
'Create view' => 'Създаване на изглед',
'Indexes' => 'Индекси',
'Indexes have been altered.' => 'Индексите бяха променени.',
'Alter indexes' => 'Промяна на индекси',
'Add next' => 'Добавяне на следващ',
'Index Type' => 'Вид на индекса',
'Column (length)' => 'Колона (дължина)',
'Foreign keys' => 'Препратки',
'Foreign key' => 'Препратка',
'Foreign key has been dropped.' => 'Препратката беше премахната.',
'Foreign key has been altered.' => 'Препратката беше променена.',
'Foreign key has been created.' => 'Препратката беше създадена.',
'Target table' => 'Таблица приемник',
'Change' => 'Промяна',
'Source' => 'Източник',
'Target' => 'Цел',
'Add column' => 'Добавяне на колона',
'Alter' => 'Промяна',
'Add foreign key' => 'Добавяне на препратка',
'ON DELETE' => 'При изтриване',
'ON UPDATE' => 'При промяна',
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'Колоните източник и цел трябва да са от еднакъв вид, трябва да има индекс на колоните приемник и да има въведени данни.',
'Triggers' => 'Тригери',
'Add trigger' => 'Добавяне на тригер',
'Trigger has been dropped.' => 'Тригера беше премахнат.',
'Trigger has been altered.' => 'Тригера беше променен.',
'Trigger has been created.' => 'Тригера беше създаден.',
'Alter trigger' => 'Промяна на тригер',
'Create trigger' => 'Създаване на тригер',
'Time' => 'Време',
'Event' => 'Събитие',
'Name' => 'Име',
'select' => 'показване',
'Select' => 'Показване',
'Select data' => 'Показване на данни',
'Functions' => 'Функции',
'Aggregation' => 'Съвкупност',
'Search' => 'Търсене',
'anywhere' => 'навсякъде',
'Search data in tables' => 'Търсене на данни в таблиците',
'Sort' => 'Сортиране',
'descending' => 'низходящо',
'Limit' => 'Редове',
'Limit rows' => 'Лимит на редовете',
'Text length' => 'Текст',
'Action' => 'Действие',
'Full table scan' => 'Пълно сканиране на таблицата',
'Unable to select the table' => 'Неуспешно показване на таблицата',
'No rows.' => 'Няма редове.',
'%d / ' => '%d / ',
'%d row(s)' => array('%d ред', '%d реда'),
'Page' => 'Страница',
'last' => 'последен',
'Load more data' => 'Зареждане на повече данни',
'Loading' => 'Зареждане',
'Whole result' => 'Пълен резултат',
'%d byte(s)' => array('%d байт', '%d байта'),
'Import' => 'Импорт',
'%d row(s) have been imported.' => array('%d ред беше импортиран.', '%d реда бяха импортирани.'),
'File must be in UTF-8 encoding.' => 'Файла трябва да е с UTF-8 кодировка.',
// in-place editing in select
'Modify' => 'Промяна',
'Ctrl+click on a value to modify it.' => 'Ctrl+щракване в стойността, за да я промените.',
'Use edit link to modify this value.' => 'Използвайте "редакция" за промяна на данните.',
// %s can contain auto-increment value
'Item%s has been inserted.' => 'Елементи%s бяха вмъкнати.',
'Item has been deleted.' => 'Елемента беше изтрит.',
'Item has been updated.' => 'Елемента беше обновен.',
'%d item(s) have been affected.' => array('%d елемент беше засегнат.', '%d елемента бяха засегнати.'),
'New item' => 'Нов елемент',
'original' => 'оригинал',
// label for value '' in enum data type
'empty' => 'празно',
'edit' => 'редакция',
'Edit' => 'Редактиране',
'Insert' => 'Вмъкване',
'Save' => 'Запис',
'Saving' => 'Записване',
'Save and continue edit' => 'Запис и редакция',
'Save and insert next' => 'Запис и нов',
'Selected' => 'Избран',
'Clone' => 'Клониране',
'Delete' => 'Изтриване',
'You have no privileges to update this table.' => 'Нямате праве за обновяване на таблицата.',
'E-mail' => 'E-mail',
'From' => 'От',
'Subject' => 'Тема',
'Attachments' => 'Прикачени',
'Send' => 'Изпращане',
'%d e-mail(s) have been sent.' => array('%d писмо беше изпратено.', '%d писма бяха изпратени.'),
// data type descriptions
'Numbers' => 'Числа',
'Date and time' => 'Дата и час',
'Strings' => 'Низове',
'Binary' => 'Двоични',
'Lists' => 'Списъци',
'Network' => 'Мрежа',
'Geometry' => 'Геометрия',
'Relations' => 'Зависимости',
'Editor' => 'Редактор',
// date format in Editor: $1 yyyy, $2 yy, $3 mm, $4 m, $5 dd, $6 d
'$1-$3-$5' => '$1-$3-$5',
// hint for date format - use language equivalents for day, month and year shortcuts
'[yyyy]-mm-dd' => '[гггг]-мм-дд',
// hint for time format - use language equivalents for hour, minute and second shortcuts
'HH:MM:SS' => 'ЧЧ:ММ:СС',
'now' => 'сега',
'yes' => 'да',
'no' => 'не',
// general SQLite error in create, drop or rename database
'File exists.' => 'Файла вече съществува.',
'Please use one of the extensions %s.' => 'Моля, използвайте някое от разширенията %s.',
// PostgreSQL and MS SQL schema support
'Alter schema' => 'Промяна на схемата',
'Create schema' => 'Създаване на схема',
'Schema has been dropped.' => 'Схемата беше премахната.',
'Schema has been created.' => 'Схемата беше създадена.',
'Schema has been altered.' => 'Схемата беше променена.',
'Schema' => 'Схема',
'Invalid schema.' => 'Невалидна схема.',
// PostgreSQL sequences support
'Sequences' => 'Последователности',
'Create sequence' => 'Създаване на последователност',
'Sequence has been dropped.' => 'Последователността беше премахната.',
'Sequence has been created.' => 'Последователността беше създадена.',
'Sequence has been altered.' => 'Последователността беше променена.',
'Alter sequence' => 'Промяна на последователност',
// PostgreSQL user types support
'User types' => 'Видове потребители',
'Create type' => 'Създаване на вид',
'Type has been dropped.' => 'Вида беше пермахнат.',
'Type has been created.' => 'Вида беше създаден.',
'Alter type' => 'Промяна на вид',
'Drop %s?' => null,
'as a regular expression' => null,
'overwrite' => null,
'DB' => null,
'Copy to clipboard' => null,
'ATTACH queries are not supported.' => null,
'Warnings' => null,
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null,
'There is a space in the input password which might be the cause.' => null,
'Unknown error.' => null,
'Database does not support password.' => null,
'Disable %s or enable %s or %s extensions.' => null,
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'A newer version of AdminerEvo is available, download it now!' => null,
);

View file

@ -1,310 +0,0 @@
<?php
$translations = array(
'Login' => 'লগইন',
'Logout successful.' => 'সফলভাবে লগআউট হয়েছে।',
'Invalid server or credentials.' => null,
'Server' => 'সার্ভার',
'Username' => 'ইউজারের নাম',
'Password' => 'পাসওয়ার্ড',
'Select database' => 'ডাটাবেজ নির্বাচন করুন',
'Invalid database.' => 'অকার্যকর ডাটাবেজ।',
'Table has been dropped.' => 'টেবিল মুছে ফেলা হয়েছে।',
'Table has been altered.' => 'টেবিল পরিবর্তন করা হয়েছে।',
'Table has been created.' => 'টেবিল তৈরী করা হয়েছে।',
'Alter table' => 'টেবিল পরিবর্তন করুন',
'Create table' => 'টেবিল তৈরী করুন',
'Table name' => 'টেবিলের নাম',
'engine' => 'ইন্জিন',
'collation' => 'সমষ্টি',
'Column name' => 'কলামের নাম',
'Type' => 'ধরণ',
'Length' => 'দৈর্ঘ্য',
'Auto Increment' => 'স্বয়ংক্রিয় বৃদ্ধি',
'Options' => 'বিকল্পসমূহ',
'Save' => 'সংরক্ষণ করুন',
'Drop' => 'মুছে ফেলো',
'Database has been dropped.' => 'ডাটাবেজ মুছে ফেলা হয়েছে।',
'Database has been created.' => 'ডাটাবেজ তৈরী করা হয়েছে।',
'Database has been renamed.' => 'ডাটাবেজের নতুন নামকরণ করা হয়েছে।',
'Database has been altered.' => 'ডাটাবেজ পরিবর্তন করা হয়েছে।',
'Alter database' => 'ডাটাবেজ পরিবর্তন করুন',
'Create database' => 'ডাটাবেজ তৈরী করুন',
'SQL command' => 'SQL-কমান্ড',
'Logout' => 'লগআউট',
'database' => 'ডাটাবেজ',
'Use' => 'ব্যবহার',
'No tables.' => 'কোন টেবিল নাই।',
'select' => 'নির্বাচন',
'Item has been deleted.' => 'বিষয়বস্তু মুছে ফেলা হয়েছে।',
'Item has been updated.' => 'বিষয়বস্তু হালনাগাদ করা হয়েছে।',
'Item%s has been inserted.' => 'বিষয়বস্তুসমূহ সংযোজন করা হয়েছে।',
'Edit' => 'সম্পাদনা',
'Insert' => 'সংযোজন',
'Save and insert next' => 'সংরক্ষন ও পরবর্তী সংযোজন করুন',
'Delete' => 'মুছে ফেলুন',
'Database' => 'ডাটাবেজ',
'Routines' => 'রুটিনসমূহ',
'Indexes have been altered.' => 'সূচীসমূহ সম্পাদনা করা হয়েছে।',
'Indexes' => 'সূচীসমূহ',
'Alter indexes' => 'সূচীসমূহ পরিবর্তন করুন',
'Add next' => 'পরবর্তী সংযোজন করুন',
'Language' => 'ভাষা',
'Select' => 'নির্বাচন',
'New item' => 'নতুন বিষয়বস্তু',
'Search' => 'খোঁজ',
'Sort' => 'সাজানো',
'descending' => 'ক্রমহ্রাস',
'Limit' => 'সীমা',
'No rows.' => 'কোন সারি নাই।',
'Action' => 'ক্রিয়া',
'edit' => 'সম্পাদনা',
'Page' => 'পৃষ্ঠা',
'Query executed OK, %d row(s) affected.' => array('কোয়্যারী সম্পাদন হয়েছে, %d সারি প্রভাবিত হয়েছে।', 'কোয়্যারী সম্পাদন হয়েছে, %d সারি প্রভাবিত হয়েছে।'),
'Error in query' => 'অনুসন্ধানে ভুল আছে।',
'Execute' => 'সম্পাদন করো',
'Table' => 'টেবিল',
'Foreign keys' => 'ফরেন কী',
'Triggers' => 'ট্রিগার',
'View' => 'ভিউ',
'Unable to select the table' => 'টেবিল নির্বাচন করতে অক্ষম',
'Invalid CSRF token. Send the form again.' => 'অবৈধ CSRF টোকেন। ফর্মটি আবার পাঠান।',
'Comment' => 'মন্তব্য',
'Default values' => 'ডিফল্ট মান',
'%d byte(s)' => array('%d বাইট', '%d বাইটসমূহ'),
'No commands to execute.' => 'সম্পাদন করার মত কোন নির্দেশ নেই।',
'Unable to upload a file.' => 'ফাইল আপলোড করা সম্ভব হচ্ছে না।',
'File upload' => 'ফাইল আপলোড',
'File uploads are disabled.' => 'ফাইল আপলোড নিষ্ক্রিয় করা আছে।',
'Routine has been called, %d row(s) affected.' => array('রুটিন কল করা হয়েছে, %d টি সারি(সমূহ) প্রভাবিত হয়েছে।', 'রুটিন কল করা হয়েছে, %d টি সারি(সমূহ) প্রভাবিত হয়েছে।'),
'Call' => 'কল',
'No extension' => 'কোন এক্সটেনশান নাই',
'None of the supported PHP extensions (%s) are available.' => 'কোন PHP সমর্থিত এক্সটেনশন (%s) পাওয়া যায় নাই।',
'Session support must be enabled.' => 'সেশন সমর্থন সক্রিয় করা আবশ্যক।',
'Session expired, please login again.' => 'সেশনের মেয়াদ শেষ হয়েছে, আবার লগইন করুন।',
'Text length' => 'টেক্সট দৈর্ঘ্য',
'Foreign key has been dropped.' => 'ফরেন কী মুছে ফেলা হয়েছে।',
'Foreign key has been altered.' => 'ফরেন কী পরিবর্তন করা হয়েছে।',
'Foreign key has been created.' => 'ফরেন কী তৈরী করা হয়েছে।',
'Foreign key' => 'ফরেন কী ',
'Target table' => 'টার্গেট টেবিল',
'Change' => 'পরিবর্তন',
'Source' => 'উৎস',
'Target' => 'লক্ষ্য',
'Add column' => 'কলাম সংযোজন করুন',
'Alter' => 'পরিবর্তন',
'Add foreign key' => 'ফরেন কী সংযোজন করুন',
'ON DELETE' => 'অন ডিলিট',
'ON UPDATE' => 'অন আপডেট',
'Index Type' => 'সূচী-ধরণ',
'Column (length)' => 'কলাম (দৈর্ঘ্য)',
'View has been dropped.' => 'ভিউ মুছে ফেলা হয়েছে।',
'View has been altered.' => 'ভিউ পরিবর্তন করা হয়েছে।',
'View has been created.' => 'ভিউ তৈরী করা হয়েছে।',
'Alter view' => 'ভিউ পরিবর্তন করুন',
'Create view' => 'ভিউ তৈরী করুন',
'Name' => 'নাম',
'Process list' => 'প্রসেস তালিকা',
'%d process(es) have been killed.' => array('%d টি প্রসেস(সমূহ) বিনষ্ট করা হয়েছে।', '%d টি প্রসেস(সমূহ) বিনষ্ট করা হয়েছে।'),
'Kill' => 'বিনষ্ট করো',
'Parameter name' => 'প্যারামিটারের নাম',
'Database schema' => 'ডাটাবেজ স্কিমা',
'Create procedure' => 'কার্যপ্রণালী তৈরী করুন',
'Create function' => 'ফাংশন তৈরী করুন',
'Routine has been dropped.' => 'রুটিন মুছে ফেলা হয়েছে।',
'Routine has been altered.' => 'রুটিন পরিবর্তন করা হয়েছে।',
'Routine has been created.' => 'রুটিন তৈরী করা হয়েছে।',
'Alter function' => 'ফাংশন পরিবর্তন করুন',
'Alter procedure' => 'কার্যপ্রণালী পরিবর্তন করুন',
'Return type' => 'রিটার্ন টাইপ',
'Add trigger' => 'ট্রিগার সংযোজন করুন',
'Trigger has been dropped.' => 'ট্রিগার মুছে ফেলা হয়েছে।',
'Trigger has been altered.' => 'ট্রিগার পরিবর্তন করা হয়েছে।',
'Trigger has been created.' => 'ট্রিগার তৈরী করা হয়েছে।',
'Alter trigger' => 'ট্রিগার পরিবর্তন করুন',
'Create trigger' => 'ট্রিগার তৈরী করুন',
'Time' => 'সময়',
'Event' => 'ইভেন্ট',
'%s version: %s through PHP extension %s' => 'ভার্সন %s: %s, %s PHP এক্সটেনশনের মধ্য দিয়ে',
'%d row(s)' => array('%d সারি', '%d সারি সমূহ'),
'Remove' => 'মুছে ফেলুন',
'Are you sure?' => 'আপনি কি নিশ্চিত?',
'Privileges' => 'প্রিভিলেজেস',
'Create user' => 'ব্যবহারকারি তৈরী করুন',
'User has been dropped.' => 'ব্যবহারকারি মুছে ফেলা হয়েছে।',
'User has been altered.' => 'ব্যবহারকারি সম্পাদনা করা হয়েছে।',
'User has been created.' => 'ব্যবহারকারি তৈরী করা হয়েছে।',
'Hashed' => 'হ্যাশড',
'Column' => 'কলাম',
'Routine' => 'রুটিন',
'Grant' => 'অনুমতি',
'Revoke' => 'প্রত্যাহার',
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'খুব বড় POST ডাটা। ডাটা সংক্ষিপ্ত করো অথবা %s কনফিগারেশন নির্দেশ বৃদ্ধি করো',
'Logged as: %s' => '%s হিসাবে লগড',
'Move up' => 'উপরে স্থানান্তর',
'Move down' => 'নীচে স্থানান্তর',
'Functions' => 'ফাংশন সমূহ',
'Aggregation' => 'সমষ্টি',
'Export' => 'এক্সপোর্ট',
'Output' => 'আউটপুট',
'open' => 'খোলা',
'save' => 'সংরক্ষণ',
'Format' => 'বিন্যাস',
'Tables' => 'টেবিলসমূহ',
'Data' => 'ডাটা',
'Event has been dropped.' => 'ইভেন্ট মুছে ফেলা হয়েছে।',
'Event has been altered.' => 'ইভেন্ট সম্পাদনা করা হয়েছে।',
'Event has been created.' => 'ইভেন্ট তৈরী করা হয়েছে।',
'Alter event' => 'ইভেন্ট সম্পাদনা করো',
'Create event' => 'ইভেন্ট তৈরী করো',
'At given time' => 'প্রদত্ত সময়ে',
'Every' => 'প্রত্যেক',
'Events' => 'ইভেন্টসমূহ',
'Schedule' => 'সময়সূচি',
'Start' => 'শুরু',
'End' => 'সমাপ্তি',
'Status' => 'অবস্থা',
'On completion preserve' => 'সমাপ্ত হওয়ার পর সংরক্ষন করুন',
'Tables and views' => 'টেবিল এবং ভিউ সমূহ',
'Data Length' => 'ডাটার দৈর্ঘ্য',
'Index Length' => 'ইনডেক্স এর দৈর্ঘ্য',
'Data Free' => 'তথ্য মুক্ত',
'Collation' => 'কলোকেশন',
'Analyze' => 'বিশ্লেষণ',
'Optimize' => 'অপটিমাইজ',
'Check' => 'পরীক্ষা',
'Repair' => 'মেরামত',
'Truncate' => 'ছাঁটাই',
'Tables have been truncated.' => 'টেবিল ছাঁটাই করা হয়েছে',
'Rows' => 'সারিসমূহ',
',' => ',',
'0123456789' => '০১২৩৪৫৬৭৮৯',
'Tables have been moved.' => 'টেবিল স্থানান্তর করা হয়েছে।',
'Move to other database' => 'অন্য ডাটাবেজে স্থানান্তর করুন',
'Move' => 'স্থানান্তর করুন',
'Engine' => 'ইঞ্জিন',
'Save and continue edit' => 'সংরক্ষণ করুন এবং সম্পাদনা চালিয়ে যান',
'original' => 'প্রকৃত',
'Tables have been dropped.' => 'টেবিলসমূহ মুছে ফেলা হয়েছে।',
'%d item(s) have been affected.' => '%d টি বিষয়বস্তু প্রভাবিত হয়েছে',
'Whole result' => 'সম্পূর্ণ ফলাফল',
'Clone' => 'ক্লোন',
'Maximum number of allowed fields exceeded. Please increase %s.' => 'অনুমোদিত ফিল্ড এর সর্বাধিক সংখ্যা অতিক্রম করে গেছে। অনুগ্রহপূর্বক %s বৃদ্ধি করুন।',
'Partition by' => 'পার্টিশন যার মাধ্যমে',
'Partitions' => 'পার্টিশন',
'Partition name' => 'পার্টিশনের নাম',
'Values' => 'মানসমূহ',
'%d row(s) have been imported.' => array('%d টি সারি(সমূহ) ইমপোর্ট করা হয়েছে।', '%d টি সারি(সমূহ) ইমপোর্ট করা হয়েছে।'),
'anywhere' => 'যে কোন স্থানে',
'Import' => 'ইমপোর্ট',
'Stop on error' => 'ত্রুটি পেলে থেমে যান',
'%.3f s' => '%.3f s',
'$1-$3-$5' => '$6.$4.$1',
'[yyyy]-mm-dd' => 't.m.[jjjj]',
'History' => 'ইতিহাস',
'Variables' => 'চলকসমূহ',
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'সোর্স এবং টার্গেট কলামে একই ডাটা টাইপ থাকতে হবে, টার্গেট কলামসমূহে একটি সূচী এবং রেফারেন্সড ডেটার উপস্থিতি থাকা আবশ্যক।',
'Relations' => 'সম্পর্ক',
'Run file' => 'ফাইল চালাও',
'Clear' => 'সাফ করো',
'Maximum allowed file size is %sB.' => 'সর্বাধিক অনুমোদিত ফাইল সাইজ %sB.',
'Numbers' => 'সংখ্যা',
'Date and time' => 'তারিখ এবং সময়',
'Strings' => 'স্ট্রিং',
'Binary' => 'বাইনারি',
'Lists' => 'তালিকা',
'Editor' => 'সম্পাদক',
'E-mail' => '​​ই-মেইল',
'From' => 'থেকে',
'Subject' => 'বিষয়',
'Send' => 'পাঠান',
'%d e-mail(s) have been sent.' => array('%d ইমেইল(গুলি) পাঠানো হয়েছে।', '%d ইমেইল(গুলি) পাঠানো হয়েছে।'),
'Webserver file %s' => 'ওয়েবসার্ভার ফাইল %s',
'File does not exist.' => 'ফাইলটির কোন অস্তিত্ব নেই।',
'%d in total' => 'সর্বমোটঃ %d টি',
'Permanent login' => 'স্থায়ী লগইন',
'Databases have been dropped.' => 'ডাটাবেজসমূহ মুছে ফেলা হয়েছে।',
'Search data in tables' => 'টেবিলে তথ্য খুঁজুন',
'Schema' => 'স্কিমা',
'Alter schema' => 'স্কিমা পরিবর্তন করো',
'Create schema' => 'স্কিমা তৈরী করো',
'Schema has been dropped.' => 'স্কিমা মুছে ফেলা হয়েছে।',
'Schema has been created.' => 'স্কিমা তৈরি করা হয়েছে।',
'Schema has been altered.' => 'স্কিমা সম্পাদনা করা হয়েছে।',
'Sequences' => 'অনুক্রম',
'Create sequence' => 'অনুক্রম তৈরি করো',
'Alter sequence' => 'অনুক্রম সম্পাদনা করো',
'Sequence has been dropped.' => 'অনুক্রম মুছে ফেলা হয়েছে।',
'Sequence has been created.' => 'অনুক্রম তৈরি করা হয়েছে।',
'Sequence has been altered.' => 'অনুক্রম সম্পাদনা করা হয়েছে।',
'User types' => 'ব্যবহারকারির ধরণ',
'Create type' => 'ধরণ তৈরী করুন',
'Alter type' => 'ধরণ পরিবর্তন করুন',
'Type has been dropped.' => 'ধরণ মুছে ফেলা হয়েছে।',
'Type has been created.' => 'ধরণ তৈরি করা হয়েছে।',
'Use edit link to modify this value.' => 'এই মানটি পরিবর্তনের জন্য সম্পাদনা লিঙ্ক ব্যবহার করুন।',
'last' => 'সর্বশেষ',
'From server' => 'সার্ভার থেকে',
'System' => 'সিস্টেম',
'Select data' => 'তথ্য নির্বাচন করো',
'Show structure' => 'গঠন দেখান',
'empty' => 'খালি',
'Network' => 'নেটওয়ার্ক',
'Geometry' => 'জ্যামিতি',
'File exists.' => 'ফাইল রয়েছে।',
'Attachments' => 'সংযুক্তিগুলো',
'%d query(s) executed OK.' => array('SQL-অনুসন্ধান সফলভাবে সম্পন্ন হয়েছে', '%d SQL-অনুসন্ধানসমূহ সফলভাবে সম্পন্ন হয়েছে'),
'Show only errors' => 'শুধুমাত্র ত্রুটিগুলো দেখান',
'Refresh' => 'রিফ্রেশ',
'Invalid schema.' => 'অবৈধ স্কিমা।',
'Please use one of the extensions %s.' => 'কোন একটা এক্সটেনশন %s ব্যবহার করুন।',
'now' => 'এখন',
'ltr' => 'ltr',
'Tables have been copied.' => 'টেবিলগুলো কপি করা হয়েছে।',
'Copy' => 'কপি',
'Permanent link' => 'স্থায়ী লিংক',
'Edit all' => 'সবগুলো সম্পাদনা করুন',
'HH:MM:SS' => 'HH:MM:SS',
'Drop %s?' => null,
'Tables have been optimized.' => null,
'as a regular expression' => null,
'Materialized view' => null,
'Vacuum' => null,
'Selected' => null,
'overwrite' => null,
'DB' => null,
'Ctrl+click on a value to modify it.' => null,
'File must be in UTF-8 encoding.' => null,
'Modify' => null,
'Load more data' => null,
'Loading' => null,
'Copy to clipboard' => null,
'ATTACH queries are not supported.' => null,
'Warnings' => null,
'%d / ' => array(),
'Limit rows' => null,
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
'Default value' => null,
'Full table scan' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array(),
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null,
'There is a space in the input password which might be the cause.' => null,
'If you did not send this request from Adminer then close this page.' => null,
'You can upload a big SQL file via FTP and import it from server.' => null,
'Size' => null,
'Compute' => null,
'You are offline.' => null,
'You have no privileges to update this table.' => null,
'Saving' => null,
'Unknown error.' => null,
'Database does not support password.' => null,
'Disable %s or enable %s or %s extensions.' => null,
'yes' => null,
'no' => null,
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'A newer version of AdminerEvo is available, download it now!' => null,
);

View file

@ -1,355 +0,0 @@
<?php
$translations = array(
// label for database system selection (MySQL, SQLite, ...)
'System' => 'Sistem',
'Server' => 'Server',
'Username' => 'Korisničko ime',
'Password' => 'Lozinka',
'Permanent login' => 'Trajna prijava',
'Login' => 'Prijava',
'Logout' => 'Odjava',
'Logged as: %s' => 'Prijavi se kao: %s',
'Logout successful.' => 'Uspešna odjava.',
'Invalid server or credentials.' => null,
'Language' => 'Jezik',
'Invalid CSRF token. Send the form again.' => 'Nevažeći CSRF kod. Proslijedite ponovo formu.',
'No extension' => 'Bez dodataka',
'None of the supported PHP extensions (%s) are available.' => 'Nijedan od podržanih PHP dodataka nije dostupan.',
'Session support must be enabled.' => 'Morate omogućiti podršku za sesije.',
'Session expired, please login again.' => 'Vaša sesija je istekla, prijavite se ponovo.',
'%s version: %s through PHP extension %s' => '%s verzija: %s pomoću PHP dodatka je %s',
'Refresh' => 'Osveži',
// text direction - 'ltr' or 'rtl'
'ltr' => 'ltr',
'Privileges' => 'Dozvole',
'Create user' => 'Novi korisnik',
'User has been dropped.' => 'Korisnik je izbrisan.',
'User has been altered.' => 'Korisnik je izmijenjen.',
'User has been created.' => 'korisnik je spašen.',
'Hashed' => 'Heširano',
'Column' => 'kolumna',
'Routine' => 'Rutina',
'Grant' => 'Dozvoli',
'Revoke' => 'Opozovi',
'Process list' => 'Spisak procesa',
'%d process(es) have been killed.' => array('%d proces je ukinut.', '%d procesa su ukinuta.', '%d procesa je ukinuto.'),
'Kill' => 'Ubij',
'Variables' => 'Promijenljive',
'Status' => 'Status',
'SQL command' => 'SQL komanda',
'%d query(s) executed OK.' => array('%d upit je uspiješno izvršen.', '%d upita su uspiješno izvršena.', '%d upita je uspiješno izvršeno.'),
'Query executed OK, %d row(s) affected.' => array('Upit je uspiješno izvršen, %d red je ažuriran.', 'Upit je uspiješno izvršen, %d reda su ažurirana.', 'Upit je uspiješno izvršen, %d redova je ažurirano.'),
'No commands to execute.' => 'Bez komandi za izvršavanje.',
'Error in query' => 'Greška u upitu',
'Execute' => 'Izvrši',
'Stop on error' => 'Zaustavi prilikom greške',
'Show only errors' => 'Prikazuj samo greške',
// sprintf() format for time of the command
'%.3f s' => '%.3f s',
'History' => 'Historijat',
'Clear' => 'Očisti',
'Edit all' => 'Izmijeni sve',
'File upload' => 'Slanje datoteka',
'From server' => 'Sa servera',
'Webserver file %s' => 'Datoteka %s sa veb servera',
'Run file' => 'Pokreni datoteku',
'File does not exist.' => 'Datoteka ne postoji.',
'File uploads are disabled.' => 'Onemogućeno je slanje datoteka.',
'Unable to upload a file.' => 'Slanje datoteke nije uspelo.',
'Maximum allowed file size is %sB.' => 'Najveća dozvoljena veličina datoteke je %sB.',
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'Preveliki POST podatak. Morate da smanjite podatak ili povećajte vrijednost konfiguracione direktive %s.',
'Export' => 'Izvoz',
'Output' => 'Ispis',
'open' => 'otvori',
'save' => 'spasi',
'Format' => 'Format',
'Data' => 'Podaci',
'Database' => 'Baza podataka',
'database' => 'baza podataka',
'Use' => 'Koristi',
'Select database' => 'Izaberite bazu',
'Invalid database.' => 'Neispravna baza podataka.',
'Database has been dropped.' => 'Baza podataka je izbrisana.',
'Databases have been dropped.' => 'Baze podataka su izbrisane.',
'Database has been created.' => 'Baza podataka je spašena.',
'Database has been renamed.' => 'Baza podataka je preimenovana.',
'Database has been altered.' => 'Baza podataka je izmijenjena.',
'Alter database' => 'Ažuriraj bazu podataka',
'Create database' => 'Formiraj bazu podataka',
'Database schema' => 'Šema baze podataka',
// link to current database schema layout
'Permanent link' => 'Trajna veza',
// thousands separator - must contain single byte
',' => ',',
'0123456789' => '0123456789',
'Engine' => 'Stroj',
'Collation' => 'Sravnjivanje',
'Data Length' => 'Dužina podataka',
'Index Length' => 'Dužina indeksa',
'Data Free' => 'Slobodno podataka',
'Rows' => 'Redova',
'%d in total' => 'ukupno %d',
'Analyze' => 'Analiziraj',
'Optimize' => 'Optimizuj',
'Check' => 'Provjeri',
'Repair' => 'Popravi',
'Truncate' => 'Isprazni',
'Tables have been truncated.' => 'Tabele su ispražnjene.',
'Move to other database' => 'Premijesti u drugu bazu podataka',
'Move' => 'Premijesti',
'Tables have been moved.' => 'Tabele su premješćene.',
'Copy' => 'Umnoži',
'Tables have been copied.' => 'Tabele su umnožene.',
'Routines' => 'Rutine',
'Routine has been called, %d row(s) affected.' => array('Pozvana je rutina, %d red je ažuriran.', 'Pozvana je rutina, %d reda su ažurirani.', 'Pozvana je rutina, %d redova je ažurirano.'),
'Call' => 'Pozovi',
'Parameter name' => 'Naziv parametra',
'Create procedure' => 'Formiraj proceduru',
'Create function' => 'Formiraj funkciju',
'Routine has been dropped.' => 'Rutina je izbrisana.',
'Routine has been altered.' => 'Rutina je izmijenjena.',
'Routine has been created.' => 'Rutina je spašena.',
'Alter function' => 'Ažuriraj funkciju',
'Alter procedure' => 'Ažuriraj proceduru',
'Return type' => 'Povratni tip',
'Events' => 'Događaji',
'Event has been dropped.' => 'Događaj je izbrisan.',
'Event has been altered.' => 'Događaj je izmijenjen.',
'Event has been created.' => 'Događaj je spašen.',
'Alter event' => 'Ažuriraj događaj',
'Create event' => 'Napravi događaj',
'At given time' => 'U zadato vrijeme',
'Every' => 'Svaki',
'Schedule' => 'Raspored',
'Start' => 'Početak',
'End' => 'Kraj',
'On completion preserve' => 'Zadrži po završetku',
'Tables' => 'Tabele',
'Tables and views' => 'Tabele i pogledi',
'Table' => 'Tabela',
'No tables.' => 'Bez tabela.',
'Alter table' => 'Ažuriraj tabelu',
'Create table' => 'Napravi tabelu',
'Table has been dropped.' => 'Tabela je izbrisana.',
'Tables have been dropped.' => 'Tabele su izbrisane.',
'Tables have been optimized.' => 'Tabele su optimizovane.',
'Table has been altered.' => 'Tabela je izmijenjena.',
'Table has been created.' => 'Tabela je spašena.',
'Table name' => 'Naziv tabele',
'Show structure' => 'Prikaži strukturu',
'engine' => 'stroj',
'collation' => 'Sravnjivanje',
'Column name' => 'Naziv kolumne',
'Type' => 'Tip',
'Length' => 'Dužina',
'Auto Increment' => 'Auto-priraštaj',
'Options' => 'Opcije',
'Comment' => 'Komentar',
'Default values' => 'Podrazumijevane vrijednosti',
'Drop' => 'Izbriši',
'Are you sure?' => 'Da li ste sigurni?',
'Move up' => 'Pomijeri na gore',
'Move down' => 'Pomijeri na dole',
'Remove' => 'Ukloni',
'Maximum number of allowed fields exceeded. Please increase %s.' => 'Premašen je maksimalni broj dozvoljenih polja. Molim uvećajte %s.',
'Partition by' => 'Podijeli po',
'Partitions' => 'Podijele',
'Partition name' => 'Ime podijele',
'Values' => 'Vrijednosti',
'View' => 'Pogled',
'View has been dropped.' => 'Pogled je izbrisan.',
'View has been altered.' => 'Pogled je izmijenjen.',
'View has been created.' => 'Pogled je spašen.',
'Alter view' => 'Ažuriraj pogled',
'Create view' => 'Napravi pogled',
'Indexes' => 'Indeksi',
'Indexes have been altered.' => 'Indeksi su izmijenjeni.',
'Alter indexes' => 'Ažuriraj indekse',
'Add next' => 'Dodaj slijedeći',
'Index Type' => 'Tip indeksa',
'Column (length)' => 'kolumna (dužina)',
'Foreign keys' => 'Strani ključevi',
'Foreign key' => 'Strani ključ',
'Foreign key has been dropped.' => 'Strani ključ je izbrisan.',
'Foreign key has been altered.' => 'Strani ključ je izmijenjen.',
'Foreign key has been created.' => 'Strani ključ je spašen.',
'Target table' => 'Ciljna tabela',
'Change' => 'izmijeni',
'Source' => 'Izvor',
'Target' => 'Cilj',
'Add column' => 'Dodaj kolumnu',
'Alter' => 'Ažuriraj',
'Add foreign key' => 'Dodaj strani ključ',
'ON DELETE' => 'ON DELETE (prilikom brisanja)',
'ON UPDATE' => 'ON UPDATE (prilikom osvežavanja)',
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'Izvorne i ciljne kolumne moraju biti istog tipa, ciljna kolumna mora biti indeksirana i izvorna tabela mora sadržati podatke iz ciljne.',
'Triggers' => 'Okidači',
'Add trigger' => 'Dodaj okidač',
'Trigger has been dropped.' => 'Okidač je izbrisan.',
'Trigger has been altered.' => 'Okidač je izmijenjen.',
'Trigger has been created.' => 'Okidač je spašen.',
'Alter trigger' => 'Ažuriraj okidač',
'Create trigger' => 'Formiraj okidač',
'Time' => 'Vrijeme',
'Event' => 'Događaj',
'Name' => 'Ime',
'select' => 'izaberi',
'Select' => 'Izaberi',
'Selected' => 'Izabrano',
'Select data' => 'Izaberi podatke',
'Functions' => 'Funkcije',
'Aggregation' => 'Sakupljanje',
'Search' => 'Pretraga',
'anywhere' => 'bilo gdje',
'Search data in tables' => 'Pretraži podatke u tabelama',
'Sort' => 'Poređaj',
'descending' => 'opadajuće',
'Limit' => 'Granica',
'Text length' => 'Dužina teksta',
'Action' => 'Akcija',
'Full table scan' => 'Skreniranje kompletne tabele',
'Unable to select the table' => 'Ne mogu da izaberem tabelu',
'No rows.' => 'Bez redova.',
'%d row(s)' => array('%d red', '%d reda', '%d redova'),
'Page' => 'Strana',
'last' => 'poslijednja',
'Loading' => 'Učitavam',
'Load more data' => 'Učitavam još podataka',
'Whole result' => 'Ceo rezultat',
'%d byte(s)' => array('%d bajt', '%d bajta', '%d bajtova'),
'Import' => 'Uvoz',
'%d row(s) have been imported.' => array('%d red je uvežen.', '%d reda su uvežena.', '%d redova je uveženo.'),
// in-place editing in select
'Ctrl+click on a value to modify it.' => 'Ctrl+klik na vrijednost za izmijenu.',
'Use edit link to modify this value.' => 'Koristi vezu za izmijenu ove vrijednosti.',
// %s can contain auto-increment value
'Item%s has been inserted.' => 'Stavka %s je spašena.',
'Item has been deleted.' => 'Stavka je izbrisana.',
'Item has been updated.' => 'Stavka je izmijenjena.',
'%d item(s) have been affected.' => array('%d stavka je ažurirana.', '%d stavke su ažurirane.', '%d stavki je ažurirano.'),
'New item' => 'Nova stavka',
'original' => 'original',
// label for value '' in enum data type
'empty' => 'prazno',
'edit' => 'izmijeni',
'Edit' => 'Izmijeni',
'Insert' => 'Umetni',
'Save' => 'Sačuvaj',
'Save and continue edit' => 'Sačuvaj i nastavi uređenje',
'Save and insert next' => 'Sačuvaj i umijetni slijedeće',
'Clone' => 'Dupliraj',
'Delete' => 'Izbriši',
'Modify' => 'Izmjene',
'E-mail' => 'El. pošta',
'From' => 'Od',
'Subject' => 'Naslov',
'Attachments' => 'Prilozi',
'Send' => 'Pošalji',
'%d e-mail(s) have been sent.' => array('%d poruka el. pošte je poslata.', '%d poruke el. pošte su poslate.', '%d poruka el. pošte je poslato.'),
// data type descriptions
'Numbers' => 'Broj',
'Date and time' => 'Datum i vrijeme',
'Strings' => 'Tekst',
'Binary' => 'Binarno',
'Lists' => 'Liste',
'Network' => 'Mreža',
'Geometry' => 'Geometrija',
'Relations' => 'Odnosi',
'Editor' => 'Uređivač',
// date format in Editor: $1 yyyy, $2 yy, $3 mm, $4 m, $5 dd, $6 d
'$1-$3-$5' => '$5.$3.$1.',
// hint for date format - use language equivalents for day, month and year shortcuts
'[yyyy]-mm-dd' => 'dd.mm.[yyyy].',
// hint for time format - use language equivalents for hour, minute and second shortcuts
'HH:MM:SS' => 'HH:MM:SS',
'now' => 'sad',
'yes' => 'da',
'no' => 'ne',
// general SQLite error in create, drop or rename database
'File exists.' => 'Datoteka već postoji.',
'Please use one of the extensions %s.' => 'Molim koristite jedan od nastavaka %s.',
// PostgreSQL and MS SQL schema support
'Alter schema' => 'Ažuriraj šemu',
'Create schema' => 'Formiraj šemu',
'Schema has been dropped.' => 'Šema je izbrisana.',
'Schema has been created.' => 'Šema je spašena.',
'Schema has been altered.' => 'Šema je izmijenjena.',
'Schema' => 'Šema',
'Invalid schema.' => 'Šema nije ispravna.',
// PostgreSQL sequences support
'Sequences' => 'Nizovi',
'Create sequence' => 'Napravi niz',
'Sequence has been dropped.' => 'Niz je izbrisan.',
'Sequence has been created.' => 'Niz je formiran.',
'Sequence has been altered.' => 'Niz je izmijenjen.',
'Alter sequence' => 'Ažuriraj niz',
// PostgreSQL user types support
'User types' => 'Korisnički tipovi',
'Create type' => 'Definiši tip',
'Type has been dropped.' => 'Tip je izbrisan.',
'Type has been created.' => 'tip je spašen.',
'Alter type' => 'Ažuriraj tip',
'Drop %s?' => null,
'as a regular expression' => null,
'Materialized view' => null,
'Vacuum' => null,
'overwrite' => null,
'DB' => null,
'File must be in UTF-8 encoding.' => null,
'Copy to clipboard' => null,
'ATTACH queries are not supported.' => null,
'Warnings' => null,
'%d / ' => array(),
'Limit rows' => null,
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
'Default value' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array(),
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null,
'There is a space in the input password which might be the cause.' => null,
'If you did not send this request from Adminer then close this page.' => null,
'You can upload a big SQL file via FTP and import it from server.' => null,
'Size' => null,
'Compute' => null,
'You are offline.' => null,
'You have no privileges to update this table.' => null,
'Saving' => null,
'Unknown error.' => null,
'Database does not support password.' => null,
'Disable %s or enable %s or %s extensions.' => null,
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'A newer version of AdminerEvo is available, download it now!' => null,
);

View file

@ -1,310 +0,0 @@
<?php
$translations = array(
'Login' => 'Inicia la sessió',
'Logout successful.' => 'Desconnexió correcta.',
'Invalid server or credentials.' => null,
'Server' => 'Servidor',
'Username' => 'Nom d\'usuari',
'Password' => 'Contrasenya',
'Select database' => 'Selecciona base de dades',
'Invalid database.' => 'Base de dades invàlida.',
'Table has been dropped.' => 'S\'ha suprimit la taula.',
'Table has been altered.' => 'S\'ha modificat la taula.',
'Table has been created.' => 'S\'ha creat la taula.',
'Alter table' => 'Modifica la taula',
'Create table' => 'Crea una taula',
'Table name' => 'Nom de la taula',
'engine' => 'motor',
'collation' => 'compaginació',
'Column name' => 'Nom de la columna',
'Type' => 'Tipus',
'Length' => 'Llargada',
'Auto Increment' => 'Increment automàtic',
'Options' => 'Opcions',
'Save' => 'Desa',
'Drop' => 'Suprimeix',
'Database has been dropped.' => 'S\'ha suprimit la base de dades.',
'Database has been created.' => 'S\'ha creat la base de dades.',
'Database has been renamed.' => 'S\'ha canviat el nom de la base de dades.',
'Database has been altered.' => 'S\'ha modificat la base de dades.',
'Alter database' => 'Modifica la base de dades',
'Create database' => 'Crea una base de dades',
'SQL command' => 'Ordre SQL',
'Logout' => 'Desconnecta',
'database' => 'base de dades',
'Use' => 'Utilitza',
'No tables.' => 'No hi ha cap taula.',
'select' => 'registres',
'Item has been deleted.' => 'S\'ha suprimit l\'element.',
'Item has been updated.' => 'S\'ha actualitzat l\'element.',
'Item%s has been inserted.' => 'S\'ha insertat l\'element%s.',
'Edit' => 'Edita',
'Insert' => 'Insereix',
'Save and insert next' => 'Desa i insereix el següent',
'Delete' => 'Suprimeix',
'Database' => 'Base de dades',
'Routines' => 'Rutines',
'Indexes have been altered.' => 'S\'han modificat els índex.',
'Indexes' => 'Índexs',
'Alter indexes' => 'Modifica els índex',
'Add next' => 'Afegeix el següent',
'Language' => 'Idioma',
'Select' => 'Selecciona',
'New item' => 'Nou element',
'Search' => 'Cerca',
'Sort' => 'Ordena',
'descending' => 'descendent',
'Limit' => 'Límit',
'No rows.' => 'No hi ha cap registre.',
'Action' => 'Acció',
'edit' => 'edita',
'Page' => 'Plana',
'Query executed OK, %d row(s) affected.' => array('Consulta executada correctament, %d registre modificat.', 'Consulta executada correctament, %d registres modificats.'),
'Error in query' => 'Error en la consulta',
'Execute' => 'Executa',
'Table' => 'Taula',
'Foreign keys' => 'Claus foranes',
'Triggers' => 'Activadors',
'View' => 'Vista',
'Unable to select the table' => 'Impossible seleccionar la taula',
'Invalid CSRF token. Send the form again.' => 'Token CSRF invàlid. Torna a enviar el formulari.',
'Comment' => 'Comentari',
'Default values' => 'Valors per defecte',
'%d byte(s)' => array('%d byte', '%d bytes'),
'No commands to execute.' => 'Cap comanda per executar.',
'Unable to upload a file.' => 'Impossible adjuntar el fitxer.',
'File upload' => 'Adjunta un fitxer',
'File uploads are disabled.' => 'La pujada de fitxers està desactivada.',
'Routine has been called, %d row(s) affected.' => array('S\'ha cridat la rutina, %d registre modificat.', 'S\'ha cridat la rutina, %d registres modificats.'),
'Call' => 'Crida',
'No extension' => 'Cap extensió',
'None of the supported PHP extensions (%s) are available.' => 'No hi ha cap de les extensions PHP suportades (%s) disponible.',
'Session support must be enabled.' => 'Cal que estigui permès l\'us de sessions.',
'Session expired, please login again.' => 'La sessió ha expirat, torna a iniciar-ne una.',
'Text length' => 'Longitud del text',
'Foreign key has been dropped.' => 'S\'ha suprimit la clau forana.',
'Foreign key has been altered.' => 'S\'ha modificat la clau forana.',
'Foreign key has been created.' => 'S\'ha creat la clau forana.',
'Foreign key' => 'Clau forana',
'Target table' => 'Taula de destinació',
'Change' => 'Canvi',
'Source' => 'Font',
'Target' => 'Destí',
'Add column' => 'Afegeix una columna',
'Alter' => 'Modifica',
'Add foreign key' => 'Afegeix una clau forana',
'ON DELETE' => 'ON DELETE',
'ON UPDATE' => 'ON UPDATE',
'Index Type' => 'Tipus d\'índex',
'Column (length)' => 'Columna (longitud)',
'View has been dropped.' => 'S\'ha suprimit la vista.',
'View has been altered.' => 'S\'ha modificat la vista.',
'View has been created.' => 'S\'ha creat la vista.',
'Alter view' => 'Modifica la vista',
'Create view' => 'Crea una vista',
'Name' => 'Nom',
'Process list' => 'Llista de processos',
'%d process(es) have been killed.' => array('S\'ha aturat %d procés.', 'S\'han aturat %d processos.'),
'Kill' => 'Atura',
'Parameter name' => 'Nom del paràmetre',
'Database schema' => 'Esquema de la base de dades',
'Create procedure' => 'Crea un procediment',
'Create function' => 'Crea una funció',
'Routine has been dropped.' => 'S\'ha suprimit la rutina.',
'Routine has been altered.' => 'S\'ha modificat la rutina.',
'Routine has been created.' => 'S\'ha creat la rutina.',
'Alter function' => 'Modifica la funció',
'Alter procedure' => 'Modifica el procediment',
'Return type' => 'Tipus retornat',
'Add trigger' => 'Afegeix un activador',
'Trigger has been dropped.' => 'S\'ha suprimit l\'activador.',
'Trigger has been altered.' => 'S\'ha modificat l\'activador.',
'Trigger has been created.' => 'S\'ha creat l\'activador.',
'Alter trigger' => 'Modifica l\'activador',
'Create trigger' => 'Crea un activador',
'Time' => 'Temps',
'Event' => 'Event',
'%s version: %s through PHP extension %s' => 'Versió %s: %s amb l\'extensió de PHP %s',
'%d row(s)' => array('%d registre', '%d registres'),
'Remove' => 'Suprimeix',
'Are you sure?' => 'Estàs segur?',
'Privileges' => 'Privilegis',
'Create user' => 'Crea un usuari',
'User has been dropped.' => 'S\'ha suprimit l\'usuari.',
'User has been altered.' => 'S\'ha modificat l\'usuari.',
'User has been created.' => 'S\'ha creat l\'usuari.',
'Hashed' => 'Hashed',
'Column' => 'Columna',
'Routine' => 'Rutina',
'Grant' => 'Grant',
'Revoke' => 'Revoke',
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'Les dades POST són massa grans. Redueix les dades o incrementa la directiva de configuració %s.',
'Logged as: %s' => 'Connectat com a: %s',
'Move up' => 'Mou a dalt',
'Move down' => 'Mou a baix',
'Functions' => 'Funcions',
'Aggregation' => 'Agregació',
'Export' => 'Exporta',
'Output' => 'Sortida',
'open' => 'obre',
'save' => 'desa',
'Format' => 'Format',
'Tables' => 'Taules',
'Data' => 'Dades',
'Event has been dropped.' => 'S\'ha suprimit l\'event.',
'Event has been altered.' => 'S\'ha modificat l\'event.',
'Event has been created.' => 'S\'ha creat l\'event.',
'Alter event' => 'Modifica l\'event',
'Create event' => 'Crea un event',
'At given time' => 'A un moment donat',
'Every' => 'Cada',
'Events' => 'Events',
'Schedule' => 'Horari',
'Start' => 'Comença',
'End' => 'Acaba',
'Status' => 'Estat',
'On completion preserve' => 'Conservar en completar',
'Tables and views' => 'Taules i vistes',
'Data Length' => 'Longitud de les dades',
'Index Length' => 'Longitud de l\'índex',
'Data Free' => 'Espai lliure',
'Collation' => 'Compaginació',
'Analyze' => 'Analitza',
'Optimize' => 'Optimitza',
'Check' => 'Verifica',
'Repair' => 'Repara',
'Truncate' => 'Escapça',
'Tables have been truncated.' => 'S\'han escapçat les taules.',
'Rows' => 'Files',
',' => ',',
'0123456789' => '0123456789',
'Tables have been moved.' => 'S\'han desplaçat les taules.',
'Move to other database' => 'Desplaça a una altra base de dades',
'Move' => 'Desplaça',
'Engine' => 'Motor',
'Save and continue edit' => 'Desa i segueix editant',
'original' => 'original',
'%d item(s) have been affected.' => array('S\'ha modificat %d element.', 'S\'han modificat %d elements.'),
'Whole result' => 'Tots els resultats',
'Tables have been dropped.' => 'S\'han suprimit les taules.',
'Clone' => 'Clona',
'Partition by' => 'Fes particions segons',
'Partitions' => 'Particions',
'Partition name' => 'Nom de la partició',
'Values' => 'Valors',
'%d row(s) have been imported.' => array('S\'ha importat %d registre.', 'S\'han importat %d registres.'),
'Import' => 'Importa',
'Show structure' => 'Mostra l\'estructura',
'Select data' => 'Selecciona dades',
'Stop on error' => 'Atura en trobar un error',
'Maximum number of allowed fields exceeded. Please increase %s.' => 'S\'ha assolit el nombre màxim de camps. Incrementa %s.',
'anywhere' => 'a qualsevol lloc',
'%.3f s' => '%.3f s',
'$1-$3-$5' => '$5/$3/$1',
'[yyyy]-mm-dd' => 'dd/mm/[aaaa]',
'History' => 'Història',
'Variables' => 'Variables',
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'Les columnes d\'origen i de destinació han de ser del mateix tipus, la columna de destinació ha d\'estar indexada i les dades referenciades han d\'existir.',
'E-mail' => 'Correu electrònic',
'From' => 'De',
'Subject' => 'Assumpte',
'Send' => 'Envia',
'%d e-mail(s) have been sent.' => array('S\'ha enviat %d correu electrònic.', 'S\'han enviat %d correus electrònics.'),
'Run file' => 'Executa el fitxer',
'Numbers' => 'Nombres',
'Date and time' => 'Data i hora',
'Strings' => 'Cadenes',
'Binary' => 'Binari',
'Lists' => 'Llistes',
'Relations' => 'Relacions',
'Maximum allowed file size is %sB.' => 'La mida màxima permesa del fitxer és de %sB.',
'Clear' => 'Suprimeix',
'Editor' => 'Editor',
'Webserver file %s' => 'Fitxer %s del servidor web',
'File does not exist.' => 'El fitxer no existeix.',
'Permanent login' => 'Sessió permanent',
'%d in total' => '%d en total',
'Attachments' => 'Adjuncions',
'System' => 'Sistema',
'last' => 'darrera',
'Network' => 'Xarxa',
'Geometry' => 'Geometria',
'Databases have been dropped.' => 'S\'han suprimit les bases de dades.',
'File exists.' => 'El fitxer ja existeix.',
'Ctrl+click on a value to modify it.' => 'Fes un Ctrl+clic a un valor per modificar-lo.',
'Use edit link to modify this value.' => 'Utilitza l\'enllaç d\'edició per modificar aquest valor.',
'Alter schema' => 'Modifica l\'esquema',
'Create schema' => 'Crea un esquema',
'Schema has been dropped.' => 'S\'ha suprimit l\'esquema.',
'Schema has been created.' => 'S\'ha creat l\'esquema.',
'Schema has been altered.' => 'S\'ha modificat l\'esquema.',
'Schema' => 'Esquema',
'Sequences' => 'Seqüències',
'Create sequence' => 'Crea una seqüència',
'Sequence has been dropped.' => 'S\'ha suprimit la seqüència.',
'Sequence has been created.' => 'S\'ha creat la seqüència.',
'Sequence has been altered.' => 'S\'ha modificat la seqüència.',
'Alter sequence' => 'Modifica la seqüència',
'User types' => 'Tipus de l\'usuari',
'Create type' => 'Crea un tipus',
'Type has been dropped.' => 'S\'ha suprimit el tipus.',
'Type has been created.' => 'S\'ha creat el tipus.',
'Alter type' => 'Modifica el tipus',
'Search data in tables' => 'Cerca dades en les taules',
'From server' => 'En el servidor',
'empty' => 'buit',
'now' => 'ara',
'%d query(s) executed OK.' => array('%d consulta executada correctament.', '%d consultes executades correctament.'),
'Show only errors' => 'Mostra només els errors',
'Refresh' => 'Refresca',
'Invalid schema.' => 'Esquema invàlid.',
'Please use one of the extensions %s.' => 'Si us plau, utilitza una de les extensions %s.',
'ltr' => 'ltr',
'Tables have been copied.' => 'S\'han copiat les taules.',
'Copy' => 'Còpia',
'Permanent link' => 'Enllaç permanent',
'Edit all' => 'Edita-ho tot',
'HH:MM:SS' => 'HH:MM:SS',
'Drop %s?' => null,
'Tables have been optimized.' => null,
'as a regular expression' => null,
'Materialized view' => null,
'Vacuum' => null,
'Selected' => null,
'overwrite' => null,
'DB' => null,
'File must be in UTF-8 encoding.' => null,
'Modify' => null,
'Load more data' => null,
'Loading' => null,
'Copy to clipboard' => null,
'ATTACH queries are not supported.' => null,
'Warnings' => null,
'%d / ' => array(),
'Limit rows' => null,
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
'Default value' => null,
'Full table scan' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array(),
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null,
'There is a space in the input password which might be the cause.' => null,
'If you did not send this request from Adminer then close this page.' => null,
'You can upload a big SQL file via FTP and import it from server.' => null,
'Size' => null,
'Compute' => null,
'You are offline.' => null,
'You have no privileges to update this table.' => null,
'Saving' => null,
'Unknown error.' => null,
'Database does not support password.' => null,
'Disable %s or enable %s or %s extensions.' => null,
'yes' => null,
'no' => null,
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'A newer version of AdminerEvo is available, download it now!' => null,
);

View file

@ -1,355 +0,0 @@
<?php
$translations = array(
// label for database system selection (MySQL, SQLite, ...)
'System' => 'Systém',
'Server' => 'Server',
'Username' => 'Uživatel',
'Password' => 'Heslo',
'Permanent login' => 'Trvalé přihlášení',
'Login' => 'Přihlásit se',
'Logout' => 'Odhlásit',
'Logged as: %s' => 'Přihlášen jako: %s',
'Logout successful.' => 'Odhlášení proběhlo v pořádku.',
'Invalid server or credentials.' => 'Neplatný server nebo přihlašovací údaje.',
'There is a space in the input password which might be the cause.' => 'Problém může být, že je v zadaném hesle mezera.',
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Adminer nepodporuje přístup k databázi bez hesla, <a href="https://www.adminer.org/cs/password/"%s>více informací</a>.',
'Database does not support password.' => 'Databáze nepodporuje heslo.',
'Too many unsuccessful logins, try again in %d minute(s).' => array('Příliš mnoho pokusů o přihlášení, zkuste to znovu za %d minutu.', 'Příliš mnoho pokusů o přihlášení, zkuste to znovu za %d minuty.', 'Příliš mnoho pokusů o přihlášení, zkuste to znovu za %d minut.'),
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Platnost hlavního hesla vypršela. <a href="https://www.adminer.org/cs/extension/"%s>Implementujte</a> metodu %s, aby platilo stále.',
'Language' => 'Jazyk',
'Invalid CSRF token. Send the form again.' => 'Neplatný token CSRF. Odešlete formulář znovu.',
'If you did not send this request from Adminer then close this page.' => 'Pokud jste tento požadavek neposlali z Adminera, tak tuto stránku zavřete.',
'No extension' => 'Žádné rozšíření',
'None of the supported PHP extensions (%s) are available.' => 'Není dostupné žádné z podporovaných PHP rozšíření (%s).',
'Connecting to privileged ports is not allowed.' => 'Připojování k privilegovaným portům není povoleno.',
'Disable %s or enable %s or %s extensions.' => 'Zakažte %s nebo povolte rozšíření %s nebo %s.',
'Session support must be enabled.' => 'Session proměnné musí být povolené.',
'Session expired, please login again.' => 'Session vypršela, přihlašte se prosím znovu.',
'The action will be performed after successful login with the same credentials.' => 'Akce bude provedena po úspěšném přihlášení se stejnými přihlašovacími údaji.',
'%s version: %s through PHP extension %s' => 'Verze %s: %s přes PHP rozšíření %s',
'Refresh' => 'Obnovit',
// text direction - 'ltr' or 'rtl'
'ltr' => 'ltr',
'Privileges' => 'Oprávnění',
'Create user' => 'Vytvořit uživatele',
'User has been dropped.' => 'Uživatel byl odstraněn.',
'User has been altered.' => 'Uživatel byl změněn.',
'User has been created.' => 'Uživatel byl vytvořen.',
'Hashed' => 'Zahašované',
'Column' => 'Sloupec',
'Routine' => 'Procedura',
'Grant' => 'Povolit',
'Revoke' => 'Zakázat',
'Process list' => 'Seznam procesů',
'%d process(es) have been killed.' => array('Byl ukončen %d proces.', 'Byly ukončeny %d procesy.', 'Bylo ukončeno %d procesů.'),
'Kill' => 'Ukončit',
'Variables' => 'Proměnné',
'Status' => 'Stav',
'SQL command' => 'SQL příkaz',
'%d query(s) executed OK.' => array('%d příkaz proběhl v pořádku.', '%d příkazy proběhly v pořádku.', '%d příkazů proběhlo v pořádku.'),
'Query executed OK, %d row(s) affected.' => array('Příkaz proběhl v pořádku, byl změněn %d záznam.', 'Příkaz proběhl v pořádku, byly změněny %d záznamy.', 'Příkaz proběhl v pořádku, bylo změněno %d záznamů.'),
'No commands to execute.' => 'Žádné příkazy k vykonání.',
'Error in query' => 'Chyba v dotazu',
'Unknown error.' => 'Neznámá chyba.',
'Warnings' => 'Varování',
'ATTACH queries are not supported.' => 'Dotazy ATTACH nejsou podporované.',
'Execute' => 'Provést',
'Stop on error' => 'Zastavit při chybě',
'Show only errors' => 'Zobrazit pouze chyby',
// sprintf() format for time of the command
'%.3f s' => '%.3f s',
'History' => 'Historie',
'Clear' => 'Vyčistit',
'Edit all' => 'Upravit vše',
'File upload' => 'Nahrání souboru',
'From server' => 'Ze serveru',
'Webserver file %s' => 'Soubor %s na webovém serveru',
'Run file' => 'Spustit soubor',
'File does not exist.' => 'Soubor neexistuje.',
'File uploads are disabled.' => 'Nahrávání souborů není povoleno.',
'Unable to upload a file.' => 'Nepodařilo se nahrát soubor.',
'Maximum allowed file size is %sB.' => 'Maximální povolená velikost souboru je %sB.',
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'Příliš velká POST data. Zmenšete data nebo zvyšte hodnotu konfigurační direktivy %s.',
'You can upload a big SQL file via FTP and import it from server.' => 'Velký SQL soubor můžete nahrát pomocí FTP a importovat ho ze serveru.',
'You are offline.' => 'Jste offline.',
'Export' => 'Export',
'Output' => 'Výstup',
'open' => 'otevřít',
'save' => 'uložit',
'Format' => 'Formát',
'Data' => 'Data',
'Database' => 'Databáze',
'database' => 'databáze',
'DB' => 'DB',
'Use' => 'Vybrat',
'Select database' => 'Vybrat databázi',
'Invalid database.' => 'Nesprávná databáze.',
'Database has been dropped.' => 'Databáze byla odstraněna.',
'Databases have been dropped.' => 'Databáze byly odstraněny.',
'Database has been created.' => 'Databáze byla vytvořena.',
'Database has been renamed.' => 'Databáze byla přejmenována.',
'Database has been altered.' => 'Databáze byla změněna.',
'Alter database' => 'Pozměnit databázi',
'Create database' => 'Vytvořit databázi',
'Database schema' => 'Schéma databáze',
// link to current database schema layout
'Permanent link' => 'Trvalý odkaz',
// thousands separator - must contain single byte
',' => ' ',
'0123456789' => '0123456789',
'Engine' => 'Úložiště',
'Collation' => 'Porovnávání',
'Data Length' => 'Velikost dat',
'Index Length' => 'Velikost indexů',
'Data Free' => 'Volné místo',
'Rows' => 'Řádků',
'%d in total' => '%d celkem',
'Analyze' => 'Analyzovat',
'Optimize' => 'Optimalizovat',
'Vacuum' => 'Vyčistit',
'Check' => 'Zkontrolovat',
'Repair' => 'Opravit',
'Truncate' => 'Vyprázdnit',
'Tables have been truncated.' => 'Tabulky byly vyprázdněny.',
'Move to other database' => 'Přesunout do jiné databáze',
'Move' => 'Přesunout',
'Tables have been moved.' => 'Tabulky byly přesunuty.',
'Copy' => 'Zkopírovat',
'Tables have been copied.' => 'Tabulky byly zkopírovány.',
'overwrite' => 'přepsat',
'Routines' => 'Procedury a funkce',
'Routine has been called, %d row(s) affected.' => array('Procedura byla zavolána, byl změněn %d záznam.', 'Procedura byla zavolána, byly změněny %d záznamy.', 'Procedura byla zavolána, bylo změněno %d záznamů.'),
'Call' => 'Zavolat',
'Parameter name' => 'Název parametru',
'Create procedure' => 'Vytvořit proceduru',
'Create function' => 'Vytvořit funkci',
'Routine has been dropped.' => 'Procedura byla odstraněna.',
'Routine has been altered.' => 'Procedura byla změněna.',
'Routine has been created.' => 'Procedura byla vytvořena.',
'Alter function' => 'Změnit funkci',
'Alter procedure' => 'Změnit proceduru',
'Return type' => 'Návratový typ',
'Events' => 'Události',
'Event has been dropped.' => 'Událost byla odstraněna.',
'Event has been altered.' => 'Událost byla změněna.',
'Event has been created.' => 'Událost byla vytvořena.',
'Alter event' => 'Pozměnit událost',
'Create event' => 'Vytvořit událost',
'At given time' => 'V daný čas',
'Every' => 'Každých',
'Schedule' => 'Plán',
'Start' => 'Začátek',
'End' => 'Konec',
'On completion preserve' => 'Po dokončení zachovat',
'Tables' => 'Tabulky',
'Tables and views' => 'Tabulky a pohledy',
'Table' => 'Tabulka',
'No tables.' => 'Žádné tabulky.',
'Alter table' => 'Pozměnit tabulku',
'Create table' => 'Vytvořit tabulku',
'Table has been dropped.' => 'Tabulka byla odstraněna.',
'Tables have been dropped.' => 'Tabulky byly odstraněny.',
'Tables have been optimized.' => 'Tabulky byly optimalizovány.',
'Table has been altered.' => 'Tabulka byla změněna.',
'Table has been created.' => 'Tabulka byla vytvořena.',
'Table name' => 'Název tabulky',
'Show structure' => 'Zobrazit strukturu',
'engine' => 'úložiště',
'collation' => 'porovnávání',
'Column name' => 'Název sloupce',
'Type' => 'Typ',
'Length' => 'Délka',
'Auto Increment' => 'Auto Increment',
'Options' => 'Volby',
'Comment' => 'Komentář',
'Default value' => 'Výchozí hodnota',
'Default values' => 'Výchozí hodnoty',
'Drop' => 'Odstranit',
'Drop %s?' => 'Odstranit %s?',
'Are you sure?' => 'Opravdu?',
'Size' => 'Velikost',
'Compute' => 'Spočítat',
'Move up' => 'Přesunout nahoru',
'Move down' => 'Přesunout dolů',
'Remove' => 'Odebrat',
'Maximum number of allowed fields exceeded. Please increase %s.' => 'Byl překročen maximální povolený počet polí. Zvyšte prosím %s.',
'Partition by' => 'Rozdělit podle',
'Partitions' => 'Oddíly',
'Partition name' => 'Název oddílu',
'Values' => 'Hodnoty',
'View' => 'Pohled',
'Materialized view' => 'Materializovaný pohled',
'View has been dropped.' => 'Pohled byl odstraněn.',
'View has been altered.' => 'Pohled byl změněn.',
'View has been created.' => 'Pohled byl vytvořen.',
'Alter view' => 'Pozměnit pohled',
'Create view' => 'Vytvořit pohled',
'Indexes' => 'Indexy',
'Indexes have been altered.' => 'Indexy byly změněny.',
'Alter indexes' => 'Pozměnit indexy',
'Add next' => 'Přidat další',
'Index Type' => 'Typ indexu',
'Column (length)' => 'Sloupec (délka)',
'Foreign keys' => 'Cizí klíče',
'Foreign key' => 'Cizí klíč',
'Foreign key has been dropped.' => 'Cizí klíč byl odstraněn.',
'Foreign key has been altered.' => 'Cizí klíč byl změněn.',
'Foreign key has been created.' => 'Cizí klíč byl vytvořen.',
'Target table' => 'Cílová tabulka',
'Change' => 'Změnit',
'Source' => 'Zdroj',
'Target' => 'Cíl',
'Add column' => 'Přidat sloupec',
'Alter' => 'Změnit',
'Add foreign key' => 'Přidat cizí klíč',
'ON DELETE' => 'Při smazání',
'ON UPDATE' => 'Při změně',
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'Zdrojové a cílové sloupce musí mít stejný datový typ, nad cílovými sloupci musí být definován index a odkazovaná data musí existovat.',
'Triggers' => 'Triggery',
'Add trigger' => 'Přidat trigger',
'Trigger has been dropped.' => 'Trigger byl odstraněn.',
'Trigger has been altered.' => 'Trigger byl změněn.',
'Trigger has been created.' => 'Trigger byl vytvořen.',
'Alter trigger' => 'Změnit trigger',
'Create trigger' => 'Vytvořit trigger',
'Time' => 'Čas',
'Event' => 'Událost',
'Name' => 'Název',
'select' => 'vypsat',
'Select' => 'Vypsat',
'Select data' => 'Vypsat data',
'Functions' => 'Funkce',
'Aggregation' => 'Agregace',
'Search' => 'Vyhledat',
'anywhere' => 'kdekoliv',
'Search data in tables' => 'Vyhledat data v tabulkách',
'Sort' => 'Seřadit',
'descending' => 'sestupně',
'Limit' => 'Limit',
'Limit rows' => 'Limit řádek',
'Text length' => 'Délka textů',
'Action' => 'Akce',
'Full table scan' => 'Průchod celé tabulky',
'Unable to select the table' => 'Nepodařilo se vypsat tabulku',
'No rows.' => 'Žádné řádky.',
'%d / ' => '%d / ',
'%d row(s)' => array('%d řádek', '%d řádky', '%d řádků'),
'Page' => 'Stránka',
'last' => 'poslední',
'Load more data' => 'Nahrát další data',
'Loading' => 'Nahrává se',
'Whole result' => 'Celý výsledek',
'%d byte(s)' => array('%d bajt', '%d bajty', '%d bajtů'),
'Import' => 'Import',
'%d row(s) have been imported.' => array('Byl importován %d záznam.', 'Byly importovány %d záznamy.', 'Bylo importováno %d záznamů.'),
'File must be in UTF-8 encoding.' => 'Soubor musí být v kódování UTF-8.',
// in-place editing in select
'Modify' => 'Změnit',
'Ctrl+click on a value to modify it.' => 'Ctrl+klikněte na políčko, které chcete změnit.',
'Use edit link to modify this value.' => 'Ke změně této hodnoty použijte odkaz upravit.',
// %s can contain auto-increment value
'Item%s has been inserted.' => 'Položka%s byla vložena.',
'Item has been deleted.' => 'Položka byla smazána.',
'Item has been updated.' => 'Položka byla aktualizována.',
'%d item(s) have been affected.' => array('Byl ovlivněn %d záznam.', 'Byly ovlivněny %d záznamy.', 'Bylo ovlivněno %d záznamů.'),
'New item' => 'Nová položka',
'original' => 'původní',
// label for value '' in enum data type
'empty' => 'prázdné',
'edit' => 'upravit',
'Edit' => 'Upravit',
'Insert' => 'Vložit',
'Save' => 'Uložit',
'Saving' => 'Ukládá se',
'Save and continue edit' => 'Uložit a pokračovat v editaci',
'Save and insert next' => 'Uložit a vložit další',
'Selected' => 'Označené',
'Clone' => 'Klonovat',
'Delete' => 'Smazat',
'You have no privileges to update this table.' => 'Nemáte oprávnění editovat tuto tabulku.',
'E-mail' => 'E-mail',
'From' => 'Odesílatel',
'Subject' => 'Předmět',
'Attachments' => 'Přílohy',
'Send' => 'Odeslat',
'%d e-mail(s) have been sent.' => array('Byl odeslán %d e-mail.', 'Byly odeslány %d e-maily.', 'Bylo odesláno %d e-mailů.'),
// data type descriptions
'Numbers' => 'Čísla',
'Date and time' => 'Datum a čas',
'Strings' => 'Řetězce',
'Binary' => 'Binární',
'Lists' => 'Seznamy',
'Network' => 'Síť',
'Geometry' => 'Geometrie',
'Relations' => 'Vztahy',
'Editor' => 'Editor',
// date format in Editor: $1 yyyy, $2 yy, $3 mm, $4 m, $5 dd, $6 d
'$1-$3-$5' => '$6.$4.$1',
// hint for date format - use language equivalents for day, month and year shortcuts
'[yyyy]-mm-dd' => 'd.m.[rrrr]',
// hint for time format - use language equivalents for hour, minute and second shortcuts
'HH:MM:SS' => 'HH:MM:SS',
'now' => 'teď',
'yes' => 'ano',
'no' => 'ne',
// general SQLite error in create, drop or rename database
'File exists.' => 'Soubor existuje.',
'Please use one of the extensions %s.' => 'Prosím použijte jednu z koncovek %s.',
// PostgreSQL and MS SQL schema support
'Alter schema' => 'Pozměnit schéma',
'Create schema' => 'Vytvořit schéma',
'Schema has been dropped.' => 'Schéma bylo odstraněno.',
'Schema has been created.' => 'Schéma bylo vytvořeno.',
'Schema has been altered.' => 'Schéma bylo změněno.',
'Schema' => 'Schéma',
'Invalid schema.' => 'Nesprávné schéma.',
// PostgreSQL sequences support
'Sequences' => 'Sekvence',
'Create sequence' => 'Vytvořit sekvenci',
'Sequence has been dropped.' => 'Sekvence byla odstraněna.',
'Sequence has been created.' => 'Sekvence byla vytvořena.',
'Sequence has been altered.' => 'Sekvence byla změněna.',
'Alter sequence' => 'Pozměnit sekvenci',
// PostgreSQL user types support
'User types' => 'Uživatelské typy',
'Create type' => 'Vytvořit typ',
'Type has been dropped.' => 'Typ byl odstraněn.',
'Type has been created.' => 'Typ byl vytvořen.',
'Alter type' => 'Pozměnit typ',
'as a regular expression' => 'jako regulární výraz',
'Copy to clipboard' => 'Kopírovat do schránky',
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'A newer version of AdminerEvo is available, download it now!' => 'Ke stažení je nová verze AdminerEvo!',
);

View file

@ -1,310 +0,0 @@
<?php
$translations = array(
'System' => 'System',
'Server' => 'Server',
'Username' => 'Brugernavn',
'Password' => 'Kodeord',
'Permanent login' => 'Permanent login',
'Login' => 'Log ind',
'Logout' => 'Log ud',
'Logged as: %s' => 'Logget ind som: %s',
'Logout successful.' => 'Log af vellykket.',
'Invalid server or credentials.' => null,
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Master-kodeordet er udløbet. <a href="https://www.adminer.org/en/extension/"%s>Implementer</a> en metode for %s for at gøre det permanent.',
'Language' => 'Sprog',
'Invalid CSRF token. Send the form again.' => 'Ugyldigt CSRF-token - Genindsend formen.',
'No extension' => 'Ingen udvidelse',
'None of the supported PHP extensions (%s) are available.' => 'Ingen af de understøttede PHP-udvidelser (%s) er tilgængelige.',
'Session support must be enabled.' => 'Session support skal være slået til.',
'Session expired, please login again.' => 'Sessionen er udløbet - Log venligst ind igen.',
'%s version: %s through PHP extension %s' => '%s version: %s via PHP-udvidelse %s',
'Refresh' => 'Genindlæs',
'ltr' => 'ltr',
'Privileges' => 'Privilegier',
'Create user' => 'Opret bruger',
'User has been dropped.' => 'Brugeren slettet.',
'User has been altered.' => 'Brugeren ændret.',
'User has been created.' => 'Brugeren oprettet.',
'Hashed' => 'Hashet',
'Column' => 'Kolonne',
'Routine' => 'Rutine',
'Grant' => 'Giv privilegier',
'Revoke' => 'Træk tilbage',
'Process list' => 'Procesliste',
'%d process(es) have been killed.' => array('%d proces afsluttet.', '%d processer afsluttet.'),
'Kill' => 'Afslut',
'Variables' => 'Variabler',
'Status' => 'Status',
'SQL command' => 'SQL-kommando',
'%d query(s) executed OK.' => array('%d kald udført OK.', '%d kald udført OK.'),
'Query executed OK, %d row(s) affected.' => array('Kald udført OK, %d række påvirket.', 'Kald udført OK, %d rækker påvirket.'),
'No commands to execute.' => 'Ingen kommandoer at udføre.',
'Error in query' => 'Fejl i forespørgelse',
'Execute' => 'Kør',
'Stop on error' => 'Stop ved fejl',
'Show only errors' => 'Vis kun fejl',
'%.3f s' => '%.3f s',
'History' => 'Historik',
'Clear' => 'Tøm',
'Edit all' => 'Rediger alle',
'File upload' => 'Fil upload',
'From server' => 'Fra server',
'Webserver file %s' => 'Webserver-fil %s',
'Run file' => 'Kør fil',
'File does not exist.' => 'Filen eksisterer ikke.',
'File uploads are disabled.' => 'Fil upload er slået fra.',
'Unable to upload a file.' => 'Kunne ikke uploade fil.',
'Maximum allowed file size is %sB.' => 'Maksimum tilladte filstørrelse er %sB.',
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'Maks POST data er overskredet. Reducer mængden af data eller øg størrelsen i %s-konfigurationen.',
'You can upload a big SQL file via FTP and import it from server.' => 'Du kan uploade en stor SQL-fil via FTP og importere den fra serveren.',
'Export' => 'Eksport',
'Output' => 'Resultat',
'open' => 'Åben',
'save' => 'Gem',
'Format' => 'Format',
'Data' => 'Data',
'Database' => 'Database',
'database' => 'database',
'Use' => 'Brug',
'Select database' => 'Vælg database',
'Invalid database.' => 'Ugyldig database.',
'Database has been dropped.' => 'Databasen er blevet slettet.',
'Databases have been dropped.' => 'Databasene er blevet slettet.',
'Database has been created.' => 'Databasen er oprettet.',
'Database has been renamed.' => 'Databasen har fået nyt navn.',
'Database has been altered.' => 'Databasen er ændret.',
'Alter database' => 'Ændre database',
'Create database' => 'Opret database',
'Database schema' => 'Databaseskema',
'Permanent link' => 'Permanent link',
',' => ' ',
'0123456789' => '0123456789',
'Engine' => 'Motor',
'Collation' => 'Tekstsortering',
'Data Length' => 'Datalængde',
'Index Length' => 'Indekslængde',
'Data Free' => 'Fri data',
'Rows' => 'Rader',
'%d in total' => '%d total',
'Analyze' => 'Analyser',
'Optimize' => 'Optimaliser',
'Vacuum' => 'Støvsug',
'Check' => 'Tjek',
'Repair' => 'Reparer',
'Truncate' => 'Afkort',
'Tables have been truncated.' => 'Tabellerne er blevet afkortet.',
'Move to other database' => 'Flyt til anden database',
'Move' => 'Flyt',
'Tables have been moved.' => 'Tabellerne er blevet flyttet.',
'Copy' => 'Kopier',
'Tables have been copied.' => 'Tabellerne er blevet kopiert.',
'Routines' => 'Rutiner',
'Routine has been called, %d row(s) affected.' => array('Rutinen er udført, %d række påvirket.', 'Rutinen er udført, %d rækker påvirket.'),
'Call' => 'Kald',
'Parameter name' => 'Parameternavn',
'Create procedure' => 'Opret procedure',
'Create function' => 'Opret funktion',
'Routine has been dropped.' => 'Rutinen er slettet.',
'Routine has been altered.' => 'Rutinen er ændret.',
'Routine has been created.' => 'Rutinen er oprettet.',
'Alter function' => 'Ændre funktion',
'Alter procedure' => 'Ændre procedure',
'Return type' => 'Returtype',
'Events' => 'Hændelser',
'Event has been dropped.' => 'Hændelsen er slettet.',
'Event has been altered.' => 'Hændelsen er ændret.',
'Event has been created.' => 'Hændelsen er oprettet.',
'Alter event' => 'Ændre hændelse',
'Create event' => 'Opret hændelse',
'At given time' => 'På givne tid',
'Every' => 'Hver',
'Schedule' => 'Tidsplan',
'Start' => 'Start',
'End' => 'Slut',
'On completion preserve' => 'Ved fuldførelse bevar',
'Tables' => 'Tabeller',
'Tables and views' => 'Tabeller og views',
'Table' => 'Tabel',
'No tables.' => 'Ingen tabeller.',
'Alter table' => 'Ændre tabel',
'Create table' => 'Opret tabel',
'Table has been dropped.' => 'Tabellen er slettet.',
'Tables have been dropped.' => 'Tabellerne er slettet.',
'Tables have been optimized.' => 'Tabellerne er blevet optimaliseret.',
'Table has been altered.' => 'Tabellen er ændret.',
'Table has been created.' => 'Tabellen er oprettet.',
'Table name' => 'Tabelnavn',
'Show structure' => 'Vis struktur',
'engine' => 'motor',
'collation' => 'sortering',
'Column name' => 'Kolonnenavn',
'Type' => 'Type',
'Length' => 'Længde',
'Auto Increment' => 'Auto Increment',
'Options' => 'Valg',
'Comment' => 'Kommentarer',
'Default values' => 'Standardværdier',
'Drop' => 'Drop',
'Are you sure?' => 'Er du sikker?',
'Move up' => 'Flyt op',
'Move down' => 'Flyt ned',
'Remove' => 'Fjern',
'Maximum number of allowed fields exceeded. Please increase %s.' => 'Maksimum antal feltnavne overskredet - øg venligst %s.',
'Partition by' => 'Partition ved',
'Partitions' => 'Partitioner',
'Partition name' => 'Partitionsnavn',
'Values' => 'Værdier',
'View' => 'View',
'View has been dropped.' => 'Viewet er slettet.',
'View has been altered.' => 'Viewet er ændret.',
'View has been created.' => 'Viewet er oprettet.',
'Alter view' => 'Ændre view',
'Create view' => 'Nyt view',
'Indexes' => 'Indekser',
'Indexes have been altered.' => 'Indekserne er ændret.',
'Alter indexes' => 'Ændre indekser',
'Add next' => 'Læg til næste',
'Index Type' => 'Indekstype',
'Column (length)' => 'Kolonne (længde)',
'Foreign keys' => 'Fremmednøgler',
'Foreign key' => 'Fremmednøgle',
'Foreign key has been dropped.' => 'Fremmednøglen er slettet.',
'Foreign key has been altered.' => 'Fremmednøglen er ændret.',
'Foreign key has been created.' => 'Fremmednøglen er oprettet.',
'Target table' => 'Måltabel',
'Change' => 'Ændre',
'Source' => 'Kilde',
'Target' => 'Mål',
'Add column' => 'Tilføj kolonne',
'Alter' => 'Ændre',
'Add foreign key' => 'Tilføj fremmednøgle',
'ON DELETE' => 'ON DELETE',
'ON UPDATE' => 'ON UPDATE',
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'Kilde- og målkolonner skal have samme datatype, der skal være en indeks på mål-kolonnen, og data som refereres til skal eksistere.',
'Triggers' => 'Triggere',
'Add trigger' => 'Tilføj trigger',
'Trigger has been dropped.' => 'Triggeren er slettet.',
'Trigger has been altered.' => 'Triggeren er ændret.',
'Trigger has been created.' => 'Triggeren er oprettet.',
'Alter trigger' => 'Ændre trigger',
'Create trigger' => 'Opret trigger',
'Time' => 'Tid',
'Event' => 'Hændelse',
'Name' => 'Navn',
'select' => 'Vis',
'Select' => 'Vælg',
'Select data' => 'Vælg data',
'Functions' => 'Funktioner',
'Aggregation' => 'Sammenfatning',
'Search' => 'Søg',
'anywhere' => 'hvorsomhelst',
'Search data in tables' => 'Søg data i tabeller',
'Sort' => 'Sorter',
'descending' => 'faldende',
'Limit' => 'Limit',
'Text length' => 'Tekstlængde',
'Action' => 'Handling',
'Full table scan' => 'Fuld tabel-scan',
'Unable to select the table' => 'Kan ikke vælge tabellen',
'No rows.' => 'Ingen rækker.',
'%d row(s)' => array('%d række', '%d rækker'),
'Page' => 'Side',
'last' => 'sidste',
'Load more data' => 'Indlæs mere data',
'Loading' => 'Indlæser',
'Whole result' => 'Hele resultatet',
'%d byte(s)' => array('%d byte', '%d bytes'),
'Import' => 'Importer',
'%d row(s) have been imported.' => array('%d række er importeret.', '%d rækker er importeret.'),
'File must be in UTF-8 encoding.' => 'Filen skal være i UTF8-tegnkoding.',
'Modify' => 'Ændre',
'Ctrl+click on a value to modify it.' => 'Ctrl+klik på en værdi for at ændre den.',
'Use edit link to modify this value.' => 'Brug rediger-link for at ændre dennne værdi.',
'Item%s has been inserted.' => 'Emne%s er sat ind.',
'Item has been deleted.' => 'Emnet er slettet.',
'Item has been updated.' => 'Emnet er opdateret.',
'%d item(s) have been affected.' => array('%d emne påvirket.', '%d emner påvirket.'),
'New item' => 'Nyt emne',
'original' => 'original',
'empty' => 'tom',
'edit' => 'rediger',
'Edit' => 'Rediger',
'Insert' => 'Indsæt',
'Save' => 'Gem',
'Save and continue edit' => 'Gem og fortsæt redigering',
'Save and insert next' => 'Gem og indsæt næste',
'Selected' => 'Valgt',
'Clone' => 'Klon',
'Delete' => 'Slet',
'You have no privileges to update this table.' => 'Du mangler rettigheder til at ændre denne tabellen.',
'E-mail' => 'E-mail',
'From' => 'Fra',
'Subject' => 'Titel',
'Attachments' => 'Vedhæft',
'Send' => 'Send',
'%d e-mail(s) have been sent.' => array('%d email sendt.', '%d emails sendt.'),
'Numbers' => 'Nummer',
'Date and time' => 'Dato og tid',
'Strings' => 'Strenge',
'Binary' => 'Binær',
'Lists' => 'Lister',
'Network' => 'Netværk',
'Geometry' => 'Geometri',
'Relations' => 'Relationer',
'Editor' => 'Redigering',
'$1-$3-$5' => '$6/$4 $1',
'[yyyy]-mm-dd' => 'd/m [åååå]',
'HH:MM:SS' => 'HH:MM:SS',
'now' => 'nu',
'yes' => 'ja',
'no' => 'nej',
'File exists.' => 'Filen findes.',
'Please use one of the extensions %s.' => 'Brug venligst en af filendelserne %s.',
'Alter schema' => 'Ændre skema',
'Create schema' => 'Opret skema',
'Schema has been dropped.' => 'Skemaet er slettet.',
'Schema has been created.' => 'Skemaet er oprettet.',
'Schema has been altered.' => 'Skemaet er ændret.',
'Schema' => 'Skema',
'Invalid schema.' => 'Ugyldigt skema.',
'Sequences' => 'Sekvenser',
'Create sequence' => 'Opret sekvens',
'Sequence has been dropped.' => 'Sekvensen er slettet.',
'Sequence has been created.' => 'Sekvensen er oprettet.',
'Sequence has been altered.' => 'Sekvensen er ændret.',
'Alter sequence' => 'Ændre sekvens',
'User types' => 'Brugertyper',
'Create type' => 'Opret type',
'Type has been dropped.' => 'Typen er slettet.',
'Type has been created.' => 'Typen er oprettet.',
'Alter type' => 'Ændre type',
'Saving' => 'Gemmer',
'Drop %s?' => null,
'as a regular expression' => null,
'Materialized view' => null,
'overwrite' => null,
'DB' => null,
'Copy to clipboard' => null,
'ATTACH queries are not supported.' => null,
'Warnings' => null,
'%d / ' => array(),
'Limit rows' => null,
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
'Default value' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array(),
'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null,
'There is a space in the input password which might be the cause.' => null,
'If you did not send this request from Adminer then close this page.' => null,
'Size' => null,
'Compute' => null,
'You are offline.' => null,
'Unknown error.' => null,
'Database does not support password.' => null,
'Disable %s or enable %s or %s extensions.' => null,
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'A newer version of AdminerEvo is available, download it now!' => null,
);

View file

@ -1,310 +0,0 @@
<?php
$translations = array(
'Login' => 'Login',
'Logout successful.' => 'Abmeldung erfolgreich.',
'Invalid server or credentials.' => 'Ungültige Server oder Anmelde-Informationen.',
'Server' => 'Server',
'Username' => 'Benutzer',
'Password' => 'Passwort',
'Select database' => 'Datenbank auswählen',
'Invalid database.' => 'Datenbank ungültig.',
'Table has been dropped.' => 'Tabelle wurde entfernt.',
'Table has been altered.' => 'Tabelle wurde geändert.',
'Table has been created.' => 'Tabelle wurde erstellt.',
'Alter table' => 'Tabelle ändern',
'Create table' => 'Tabelle erstellen',
'Table name' => 'Name der Tabelle',
'engine' => 'Speicher-Engine',
'collation' => 'Kollation',
'Column name' => 'Spaltenname',
'Type' => 'Typ',
'Length' => 'Länge',
'Auto Increment' => 'Auto-Inkrement',
'Options' => 'Optionen',
'Save' => 'Speichern',
'Drop' => 'Entfernen',
'Database has been dropped.' => 'Datenbank wurde entfernt.',
'Database has been created.' => 'Datenbank wurde erstellt.',
'Database has been renamed.' => 'Datenbank wurde umbenannt.',
'Database has been altered.' => 'Datenbank wurde geändert.',
'Alter database' => 'Datenbank ändern',
'Create database' => 'Datenbank erstellen',
'SQL command' => 'SQL-Kommando',
'Logout' => 'Abmelden',
'database' => 'Datenbank',
'Use' => 'Benutzung',
'No tables.' => 'Keine Tabellen.',
'select' => 'zeigen',
'Item has been deleted.' => 'Datensatz wurde gelöscht.',
'Item has been updated.' => 'Datensatz wurde geändert.',
'Item%s has been inserted.' => 'Datensatz%s wurde eingefügt.',
'Edit' => 'Bearbeiten',
'Insert' => 'Einfügen',
'Save and insert next' => 'Speichern und nächsten einfügen',
'Delete' => 'Entfernen',
'Database' => 'Datenbank',
'Routines' => 'Routinen',
'Indexes have been altered.' => 'Indizes geändert.',
'Indexes' => 'Indizes',
'Alter indexes' => 'Indizes ändern',
'Add next' => 'Hinzufügen',
'Language' => 'Sprache',
'Select' => 'Daten zeigen von',
'New item' => 'Neuer Datensatz',
'Search' => 'Suchen',
'Sort' => 'Ordnen',
'descending' => 'absteigend',
'Limit' => 'Begrenzung',
'No rows.' => 'Keine Datensätze.',
'Action' => 'Aktion',
'edit' => 'bearbeiten',
'Page' => 'Seite',
'Query executed OK, %d row(s) affected.' => array('Abfrage ausgeführt, %d Datensatz betroffen.', 'Abfrage ausgeführt, %d Datensätze betroffen.'),
'Error in query' => 'Fehler in der SQL-Abfrage',
'Execute' => 'Ausführen',
'Table' => 'Tabelle',
'Foreign keys' => 'Fremdschlüssel',
'Triggers' => 'Trigger',
'View' => 'View',
'Unable to select the table' => 'Auswahl der Tabelle fehlgeschlagen',
'Invalid CSRF token. Send the form again.' => 'CSRF Token ungültig. Bitte die Formulardaten erneut abschicken.',
'Comment' => 'Kommentar',
'Default values' => 'Vorgabewerte festlegen',
'%d byte(s)' => array('%d Byte', '%d Bytes'),
'No commands to execute.' => 'Kein Kommando vorhanden.',
'Unable to upload a file.' => 'Hochladen von Datei fehlgeschlagen.',
'File upload' => 'Datei importieren',
'File uploads are disabled.' => 'Importieren von Dateien abgeschaltet.',
'Routine has been called, %d row(s) affected.' => array('Routine wurde ausgeführt, %d Datensatz betroffen.', 'Routine wurde ausgeführt, %d Datensätze betroffen.'),
'Call' => 'Aufrufen',
'No extension' => 'Keine Erweiterungen installiert',
'None of the supported PHP extensions (%s) are available.' => 'Keine der unterstützten PHP-Erweiterungen (%s) ist vorhanden.',
'Session support must be enabled.' => 'Unterstüzung für PHP-Sessions muss aktiviert sein.',
'Session expired, please login again.' => 'Sitzungsdauer abgelaufen, bitte erneut anmelden.',
'Text length' => 'Textlänge',
'Foreign key has been dropped.' => 'Fremdschlüssel wurde entfernt.',
'Foreign key has been altered.' => 'Fremdschlüssel wurde geändert.',
'Foreign key has been created.' => 'Fremdschlüssel wurde erstellt.',
'Foreign key' => 'Fremdschlüssel',
'Target table' => 'Zieltabelle',
'Change' => 'Ändern',
'Source' => 'Ursprung',
'Target' => 'Ziel',
'Add column' => 'Spalte hinzufügen',
'Alter' => 'Ändern',
'Add foreign key' => 'Fremdschlüssel hinzufügen',
'ON DELETE' => 'ON DELETE',
'ON UPDATE' => 'ON UPDATE',
'Index Type' => 'Index-Typ',
'Column (length)' => 'Spalte (Länge)',
'View has been dropped.' => 'View wurde entfernt.',
'View has been altered.' => 'View wurde geändert.',
'View has been created.' => 'View wurde erstellt.',
'Alter view' => 'View ändern',
'Create view' => 'View erstellen',
'Name' => 'Name',
'Process list' => 'Prozessliste',
'%d process(es) have been killed.' => array('%d Prozess gestoppt.', '%d Prozesse gestoppt.'),
'Kill' => 'Anhalten',
'Parameter name' => 'Name des Parameters',
'Database schema' => 'Datenbankschema',
'Create procedure' => 'Prozedur erstellen',
'Create function' => 'Funktion erstellen',
'Routine has been dropped.' => 'Routine wurde entfernt.',
'Routine has been altered.' => 'Routine wurde geändert.',
'Routine has been created.' => 'Routine wurde erstellt.',
'Alter function' => 'Funktion ändern',
'Alter procedure' => 'Prozedur ändern',
'Return type' => 'Typ des Rückgabewertes',
'Add trigger' => 'Trigger hinzufügen',
'Trigger has been dropped.' => 'Trigger wurde entfernt.',
'Trigger has been altered.' => 'Trigger wurde geändert.',
'Trigger has been created.' => 'Trigger wurde erstellt.',
'Alter trigger' => 'Trigger ändern',
'Create trigger' => 'Trigger erstellen',
'Time' => 'Zeitpunkt',
'Event' => 'Ereignis',
'%s version: %s through PHP extension %s' => 'Version %s: %s mit PHP-Erweiterung %s',
'%d row(s)' => array('%d Datensatz', '%d Datensätze'),
'Remove' => 'Entfernen',
'Are you sure?' => 'Sind Sie sicher?',
'Privileges' => 'Rechte',
'Create user' => 'Benutzer erstellen',
'User has been dropped.' => 'Benutzer wurde entfernt.',
'User has been altered.' => 'Benutzer wurde geändert.',
'User has been created.' => 'Benutzer wurde erstellt.',
'Hashed' => 'Hashed',
'Column' => 'Spalte',
'Routine' => 'Routine',
'Grant' => 'Erlauben',
'Revoke' => 'Widerrufen',
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'POST-Daten sind zu groß. Reduzieren Sie die Größe oder vergrößern Sie den Wert %s in der Konfiguration.',
'Logged as: %s' => 'Angemeldet als: %s',
'Move up' => 'Nach oben',
'Move down' => 'Nach unten',
'Functions' => 'Funktionen',
'Aggregation' => 'Aggregationen',
'Export' => 'Exportieren',
'Output' => 'Ergebnis',
'open' => 'anzeigen',
'save' => 'Datei',
'Format' => 'Format',
'Tables' => 'Tabellen',
'Data' => 'Daten',
'Event has been dropped.' => 'Ereignis wurde entfernt.',
'Event has been altered.' => 'Ereignis wurde geändert.',
'Event has been created.' => 'Ereignis wurde erstellt.',
'Alter event' => 'Ereignis ändern',
'Create event' => 'Ereignis erstellen',
'At given time' => 'Zur angegebenen Zeit',
'Every' => 'Jede',
'Events' => 'Ereignisse',
'Schedule' => 'Zeitplan',
'Start' => 'Start',
'End' => 'Ende',
'Status' => 'Status',
'On completion preserve' => 'Nach der Ausführung erhalten',
'Tables and views' => 'Tabellen und Views',
'Data Length' => 'Datengröße',
'Index Length' => 'Indexgröße',
'Data Free' => 'Freier Bereich',
'Collation' => 'Kollation',
'Analyze' => 'Analysieren',
'Optimize' => 'Optimieren',
'Check' => 'Prüfen',
'Repair' => 'Reparieren',
'Truncate' => 'Leeren (truncate)',
'Tables have been truncated.' => 'Tabellen wurden geleert (truncate).',
'Rows' => 'Datensätze',
',' => ' ',
'0123456789' => '0123456789',
'Tables have been moved.' => 'Tabellen verschoben.',
'Move to other database' => 'In andere Datenbank verschieben',
'Move' => 'Verschieben',
'Engine' => 'Speicher-Engine',
'Save and continue edit' => 'Speichern und weiter bearbeiten',
'original' => 'Original',
'Tables have been dropped.' => 'Tabellen wurden entfernt (drop).',
'%d item(s) have been affected.' => '%d Artikel betroffen.',
'Whole result' => 'Gesamtergebnis',
'Clone' => 'Klonen',
'Maximum number of allowed fields exceeded. Please increase %s.' => 'Die maximal erlaubte Anzahl der Felder ist überschritten. Bitte %s erhöhen.',
'Partition by' => 'Partitionieren um',
'Partitions' => 'Partitionen',
'Partition name' => 'Name der Partition',
'Values' => 'Werte',
'%d row(s) have been imported.' => array('%d Datensatz wurde importiert.', '%d Datensätze wurden importiert.'),
'anywhere' => 'beliebig',
'Import' => 'Importieren',
'Stop on error' => 'Bei Fehler anhalten',
'%.3f s' => '%.3f s',
'$1-$3-$5' => '$6.$4.$1',
'[yyyy]-mm-dd' => 't.m.[jjjj]',
'History' => 'History',
'Variables' => 'Variablen',
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'Quell- und Zielspalten müssen vom gleichen Datentyp sein, es muss unter den Zielspalten ein Index existieren und die referenzierten Daten müssen existieren.',
'Relations' => 'Relationen',
'Run file' => 'Datei ausführen',
'Clear' => 'Löschen',
'Maximum allowed file size is %sB.' => 'Maximal erlaubte Dateigröße ist %sB.',
'Numbers' => 'Zahlen',
'Date and time' => 'Datum und Zeit',
'Strings' => 'Zeichenketten',
'Binary' => 'Binär',
'Lists' => 'Listen',
'Editor' => 'Editor',
'E-mail' => 'E-Mail',
'From' => 'Von',
'Subject' => 'Betreff',
'Send' => 'Abschicken',
'%d e-mail(s) have been sent.' => array('%d E-Mail abgeschickt.', '%d E-Mails abgeschickt.'),
'Webserver file %s' => 'Webserver Datei %s',
'File does not exist.' => 'Datei existiert nicht.',
'%d in total' => '%d insgesamt',
'Permanent login' => 'Passwort speichern',
'Databases have been dropped.' => 'Datenbanken wurden entfernt.',
'Search data in tables' => 'Suche in Tabellen',
'Schema' => 'Schema',
'Alter schema' => 'Schema ändern',
'Create schema' => 'Schema erstellen',
'Schema has been dropped.' => 'Schema wurde gelöscht.',
'Schema has been created.' => 'Schema wurde erstellt.',
'Schema has been altered.' => 'Schema wurde geändert.',
'Sequences' => 'Sequenzen',
'Create sequence' => 'Sequenz erstellen',
'Alter sequence' => 'Sequenz ändern',
'Sequence has been dropped.' => 'Sequenz wurde gelöscht.',
'Sequence has been created.' => 'Sequenz wurde erstellt.',
'Sequence has been altered.' => 'Sequenz wurde geändert.',
'User types' => 'Benutzerdefinierte Typen',
'Create type' => 'Typ erstellen',
'Alter type' => 'Typ ändern',
'Type has been dropped.' => 'Typ wurde gelöscht.',
'Type has been created.' => 'Typ wurde erstellt.',
'Ctrl+click on a value to modify it.' => 'Ctrl+Klick zum Bearbeiten des Wertes.',
'Use edit link to modify this value.' => 'Benutzen Sie den Link zum Bearbeiten dieses Wertes.',
'last' => 'letzte',
'From server' => 'Vom Server',
'System' => 'Datenbank System',
'Select data' => 'Daten auswählen',
'Show structure' => 'Struktur anzeigen',
'empty' => 'leer',
'Network' => 'Netzwerk',
'Geometry' => 'Geometrie',
'File exists.' => 'Datei existiert schon.',
'Attachments' => 'Anhänge',
'%d query(s) executed OK.' => array('SQL-Abfrage erfolgreich ausgeführt.', '%d SQL-Abfragen erfolgreich ausgeführt.'),
'Show only errors' => 'Nur Fehler anzeigen',
'Refresh' => 'Aktualisieren',
'Invalid schema.' => 'Schema nicht gültig.',
'Please use one of the extensions %s.' => 'Bitte einen der Dateitypen %s benutzen.',
'now' => 'jetzt',
'ltr' => 'ltr',
'Tables have been copied.' => 'Tabellen wurden kopiert.',
'Copy' => 'Kopieren',
'Permanent link' => 'Dauerhafter Link',
'Edit all' => 'Alle bearbeiten',
'HH:MM:SS' => 'HH:MM:SS',
'Compute' => 'kalkulieren',
'Size' => 'Größe',
'Modify' => 'Ändern',
'Selected' => 'Ausgewählte',
'Default value' => 'Vorgabewert festlegen',
'Limit rows' => 'Datensätze begrenzen',
'Tables have been optimized.' => 'Tabellen wurden optimiert.',
'File must be in UTF-8 encoding.' => 'Die Datei muss UTF-8 kodiert sein.',
'Loading' => 'Lade',
'Load more data' => 'Mehr Daten laden',
'Too many unsuccessful logins, try again in %d minute(s).' => array('Zu viele erfolglose Login-Versuche. Bitte probieren Sie es in %d Minute noch einmal.', 'Zu viele erfolglose Login-Versuche. Bitte probieren Sie es in %d Minuten noch einmal.'),
'If you did not send this request from Adminer then close this page.' => 'Wenn Sie diese Anfrage nicht von Adminer gesendet haben, schließen Sie diese Seite.',
'You can upload a big SQL file via FTP and import it from server.' => 'Sie können eine große SQL-Datei per FTP hochladen und dann vom Server importieren.',
'You are offline.' => 'Sie sind offline.',
'You have no privileges to update this table.' => 'Sie haben keine Rechte, um diese Tabelle zu aktualisieren.',
'Saving' => 'Speichere',
'yes' => 'ja',
'no' => 'nein',
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Das Master-Passwort ist abgelaufen. <a href="https://www.adminer.org/de/extension/"%s>Implementieren</a> Sie die %s Methode, um es permanent zu machen.',
'%d / ' => '%d / ',
'Drop %s?' => null,
'as a regular expression' => null,
'Materialized view' => null,
'Vacuum' => null,
'overwrite' => null,
'DB' => null,
'Copy to clipboard' => null,
'ATTACH queries are not supported.' => null,
'Warnings' => null,
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
'Full table scan' => null,
'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null,
'There is a space in the input password which might be the cause.' => null,
'Unknown error.' => null,
'Database does not support password.' => null,
'Disable %s or enable %s or %s extensions.' => null,
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'A newer version of AdminerEvo is available, download it now!' => null,
);

View file

@ -1,355 +0,0 @@
<?php
$translations = array(
// label for database system selection (MySQL, SQLite, ...)
'System' => 'Σύστημα',
'Server' => 'Διακομιστής',
'Username' => 'Όνομα Χρήστη',
'Password' => 'Κωδικός',
'Permanent login' => 'Μόνιμη Σύνδεση',
'Login' => 'Σύνδεση',
'Logout' => 'Αποσύνδεση',
'Logged as: %s' => 'Συνδεθήκατε ως %s',
'Logout successful.' => 'Αποσυνδεθήκατε με επιτυχία.',
'Invalid server or credentials.' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array('Επανειλημμένες ανεπιτυχείς προσπάθειες σύνδεσης, δοκιμάστε ξανά σε %s λεπτό.', 'Επανειλημμένες ανεπιτυχείς προσπάθειες σύνδεσης, δοκιμάστε ξανά σε %s λεπτά.'),
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Έληξε ο Κύριος Κωδικός. <a href="https://www.adminer.org/en/extension/"%s>Ενεργοποιήστε</a> τη μέθοδο %s για να τον κάνετε μόνιμο.',
'Language' => 'Γλώσσα',
'Invalid CSRF token. Send the form again.' => 'Άκυρο κουπόνι CSRF. Στείλτε τη φόρμα ξανά.',
'If you did not send this request from Adminer then close this page.' => 'Αν δε στείλατε αυτό το αίτημα από το Adminer, τότε κλείστε αυτή τη σελίδα.',
'No extension' => 'Καμία Επέκταση',
'None of the supported PHP extensions (%s) are available.' => 'Καμία από τις υποστηριζόμενες επεκτάσεις PHP (%s) δεν είναι διαθέσιμη.',
'Session support must be enabled.' => 'Πρέπει να είναι ενεργοποιημένη η υποστήριξη συνεδριών.',
'Session expired, please login again.' => 'Η συνεδρία έληξε, παρακαλώ συνδεθείτε ξανά.',
'%s version: %s through PHP extension %s' => '%s έκδοση: %s μέσω επέκτασης PHP %s',
'Refresh' => 'Ανανέωση',
// text direction - 'ltr' or 'rtl'
'ltr' => 'ltr',
'Privileges' => 'Δικαιώματα',
'Create user' => 'Δημιουργία Χρήστη',
'User has been dropped.' => 'Ο Χρήστης διαγράφηκε.',
'User has been altered.' => 'Ο Χρήστης τροποποιήθηκε.',
'User has been created.' => 'Ο Χρήστης δημιουργήθηκε.',
'Hashed' => 'Κωδικοποιήθηκε',
'Column' => 'Στήλη',
'Routine' => 'Ρουτίνα',
'Grant' => 'Παραχώρηση',
'Revoke' => 'Ανάκληση',
'Process list' => 'Λίστα διεργασιών',
'%d process(es) have been killed.' => array('Τερματίστηκε %d διεργασία.', 'Τερματίστηκαν %d διεργασίες.'),
'Kill' => 'Τερματισμός',
'Variables' => 'Μεταβλητές',
'Status' => 'Κατάσταση',
'SQL command' => 'Εντολή SQL',
'%d query(s) executed OK.' => array('Το ερώτημα %d εκτελέστηκε ΟΚ.', 'Τα ερώτηματα %d εκτελέστηκαν ΟΚ.'),
'Query executed OK, %d row(s) affected.' => array('Το ερώτημα εκτελέστηκε ΟΚ, επηρεάστηκε %d σειρά.', 'Το ερώτημα εκτελέστηκε ΟΚ, επηρεάστηκαν %d σειρές.'),
'No commands to execute.' => 'Δεν υπάρχουν εντολές να εκτελεστούν.',
'Error in query' => 'Σφάλμα στο ερώτημα',
'Execute' => 'Εκτέλεση',
'Stop on error' => 'Διακοπή όταν υπάρχει σφάλμα',
'Show only errors' => 'Να εμφανίζονται μόνο τα σφάλματα',
// sprintf() format for time of the command
'%.3f s' => '%.3f s',
'History' => 'Ιστορικό',
'Clear' => 'Καθαρισμός',
'Edit all' => 'Επεξεργασία όλων',
'File upload' => 'Μεταφόρτωση αρχείου',
'From server' => 'Από διακομιστή',
'Webserver file %s' => 'Αρχείο %s από διακομιστή web',
'Run file' => 'Εκτέλεση αρχείου',
'File does not exist.' => 'Το αρχείο δεν υπάρχει.',
'File uploads are disabled.' => 'Έχει απενεργοποιηθεί η μεταφόρτωση αρχείων.',
'Unable to upload a file.' => 'Αδυναμία μεταφόρτωσης αρχείου.',
'Maximum allowed file size is %sB.' => 'Το μέγιστο επιτρεπόμενο μέγεθος αρχείου είναι %sB.',
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'Πολλά δεδομένα POST. Μείωστε τα περιεχόμενα ή αυξήστε την σχετική ρύθμιση %s.',
'You can upload a big SQL file via FTP and import it from server.' => 'Μπορείτε να μεταφορτώσετε ένα μεγάλο αρχείο SQL μέσω FTP και να το εισάγετε από το διακομιστή.',
'You are offline.' => 'Βρίσκεστε εκτός σύνδεσης.',
'Export' => 'Εξαγωγή',
'Output' => 'Αποτέλεσμα',
'open' => 'άνοιγμα',
'save' => 'αποθήκευση',
'Saving' => 'Γίνεται Αποθήκευση',
'Format' => 'Μορφή',
'Data' => 'Δεδομένα',
'Database' => 'Β. Δεδομένων',
'database' => 'β. δεδομένων',
'Use' => 'χρήση',
'Select database' => 'Επιλέξτε Β.Δ.',
'Invalid database.' => 'Λανθασμένη Β.Δ.',
'Database has been dropped.' => 'Η Β.Δ. διαγράφηκε.',
'Databases have been dropped.' => 'Οι Β.Δ. διαγράφηκαν.',
'Database has been created.' => 'Η Β.Δ. δημιουργήθηκε.',
'Database has been renamed.' => 'Η. Β.Δ. μετονομάστηκε.',
'Database has been altered.' => 'Η Β.Δ. τροποποιήθηκε.',
'Alter database' => 'Τροποποίηση Β.Δ.',
'Create database' => 'Δημιουργία Β.Δ.',
'Database schema' => 'Σχήμα Β.Δ.',
// link to current database schema layout
'Permanent link' => 'Μόνιμος Σύνδεσμος',
// thousands separator - must contain single byte
',' => '.',
'0123456789' => '0123456789',
'Engine' => 'Μηχανή',
'Collation' => 'Collation',
'Data Length' => 'Μήκος Δεδομένων',
'Index Length' => 'Μήκος Δείκτη',
'Data Free' => 'Δεδομένα Ελεύθερα',
'Rows' => 'Σειρές',
'%d in total' => '%d συνολικά',
'Analyze' => 'Ανάλυση',
'Optimize' => 'Βελτιστοποίηση',
'Vacuum' => 'Καθαρισμός',
'Check' => 'Έλεγχος',
'Repair' => 'Επιδιόρθωση',
'Truncate' => 'Περικοπή',
'Tables have been truncated.' => 'Οι πίνακες περικόπηκαν.',
'Move to other database' => 'Μεταφορά σε άλλη Β.Δ.',
'Move' => 'Μεταφορά',
'Tables have been moved.' => 'Οι πίνακες μεταφέρθηκαν.',
'Copy' => 'Αντιγραφή',
'Tables have been copied.' => 'Οι πίνακες αντιγράφηκαν.',
'Routines' => 'Ρουτίνες',
'Routine has been called, %d row(s) affected.' => array('Η ρουτίνα εκτελέστηκε, επηρεάστηκε %d σειρά.', 'Η ρουτίνα εκτελέστηκε, επηρεάστηκαν %d σειρές.'),
'Call' => 'Εκτέλεση',
'Parameter name' => 'Όνομα παραμέτρου',
'Create procedure' => 'Δημιουργία διαδικασίας',
'Create function' => 'Δημιουργία Συνάρτησης',
'Routine has been dropped.' => 'Η ρουτίνα διαγράφηκε.',
'Routine has been altered.' => 'Η ρουτίνα τροποποιήθηκε.',
'Routine has been created.' => 'Η ρουτίνα δημιουργήθηκε.',
'Alter function' => 'Τροποποίηση λειτουργίας',
'Alter procedure' => 'Τροποποίηση διαδικασίας',
'Return type' => 'Επιστρεφόμενος τύπος',
'Events' => 'Γεγονός',
'Event has been dropped.' => 'Το γεγονός διαγράφηκε.',
'Event has been altered.' => 'Το γεγονός τροποποιήθηκε.',
'Event has been created.' => 'Το γεγονός δημιουργήθηκε.',
'Alter event' => 'Τροποποίηση γεγονότος',
'Create event' => 'Δημιουργία γεγονότος',
'At given time' => 'Σε προκαθορισμένο χρόνο',
'Every' => 'Κάθε',
'Schedule' => 'Προγραμματισμός',
'Start' => 'Έναρξη',
'End' => 'Λήξη',
'On completion preserve' => 'Κατά την ολοκλήρωση διατήρησε',
'Tables' => 'Πίνακες',
'Tables and views' => 'Πίνακες και Προβολές',
'Table' => 'Πίνακας',
'No tables.' => 'Χωρίς πίνακες.',
'Alter table' => 'Τροποποίηση πίνακα',
'Create table' => 'Δημιουργία πίνακα',
'Table has been dropped.' => 'Ο πίνακας διαγράφηκε.',
'Tables have been dropped.' => 'Οι πίνακες διαγράφηκαν.',
'Tables have been optimized.' => 'Οι πίνακες βελτιστοποιήθηκαν.',
'Table has been altered.' => 'Ο πίνακας τροποποιήθηκε.',
'Table has been created.' => 'Ο πίνακας δημιουργήθηκε.',
'Table name' => 'Όνομα πίνακα',
'Show structure' => 'Προβολή δομής',
'engine' => 'μηχανή',
'collation' => 'collation',
'Column name' => 'Όνομα στήλης',
'Type' => 'Τύπος',
'Length' => 'Μήκος',
'Auto Increment' => 'Αυτόματη αρίθμηση',
'Options' => 'Επιλογές',
'Comment' => 'Σχόλιο',
'Default value' => 'Προεπιλεγμένη τιμή',
'Default values' => 'Προεπιλεγμένες τιμές',
'Drop' => 'Διαγραφή',
'Are you sure?' => 'Είστε σίγουρος;',
'Size' => 'Μέγεθος',
'Compute' => 'Υπολογισμός',
'Move up' => 'Μετακίνηση προς τα επάνω',
'Move down' => 'Μετακίνηση προς τα κάτω',
'Remove' => 'Αφαίρεση',
'Maximum number of allowed fields exceeded. Please increase %s.' => 'Υπέρβαση μέγιστου επιτρεπόμενου αριθμού πεδίων. Παρακαλώ αυξήστε %s.',
'Partition by' => 'Τμηματοποίηση ανά',
'Partitions' => 'Τμήματα',
'Partition name' => 'Όνομα Τμήματος',
'Values' => 'Τιμές',
'View' => 'Προβολή',
'Materialized view' => 'Υλοποιημένη προβολή',
'View has been dropped.' => 'Η προβολή διαγράφηκε.',
'View has been altered.' => 'Η προβολή τροποποιήθηκε.',
'View has been created.' => 'Η προβολή δημιουργήθηκε.',
'Alter view' => 'Τροποποίηση προβολής',
'Create view' => 'Δημιουργία προβολής',
'Indexes' => 'Δείκτες',
'Indexes have been altered.' => 'Οι δείκτες τροποποιήθηκαν.',
'Alter indexes' => 'Τροποποίηση δεικτών',
'Add next' => 'Προσθήκη επόμενου',
'Index Type' => 'Τύπος δείκτη',
'Column (length)' => 'Στήλη (μήκος)',
'Foreign keys' => 'Εξαρτημένα κλειδιά',
'Foreign key' => 'Εξαρτημένο κλειδί',
'Foreign key has been dropped.' => 'Το εξαρτημένο κλειδί διαγράφηκε.',
'Foreign key has been altered.' => 'Το εξαρτημένο κλειδί τροποποιήθηκε.',
'Foreign key has been created.' => 'Το εξαρτημένο κλειδί δημιουργήθηκε.',
'Target table' => 'Πίνακας Στόχος',
'Change' => 'Αλλαγή',
'Source' => 'Πηγή',
'Target' => 'Στόχος',
'Add column' => 'Προσθήκη στήλης',
'Alter' => 'Τροποποίηση',
'Add foreign key' => 'Προσθήκη εξαρτημένου κλειδιού',
'ON DELETE' => 'ΚΑΤΑ ΤΗ ΔΙΑΓΡΑΦΗ',
'ON UPDATE' => 'ΚΑΤΑ ΤΗΝ ΑΛΛΑΓΗ',
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'Οι στήλες στην πηγή και το στόχο πρέπει να έχουν τον ίδιο τύπο, πρέπει να υπάρχει δείκτης στη στήλη στόχο και να υπάρχουν εξαρτημένα δεδομένα.',
'Triggers' => 'Εναύσματα',
'Add trigger' => 'Προσθήκη εναύσματος',
'Trigger has been dropped.' => 'Το έναυσμα διαγράφηκε.',
'Trigger has been altered.' => 'Το έναυσμα τροποποιήθηκε.',
'Trigger has been created.' => 'Το έναυσμα δημιουργήθηκε.',
'Alter trigger' => 'Τροποποίηση εναύσματος',
'Create trigger' => 'Δημιουργία εναύσματος',
'Time' => 'Ώρα',
'Event' => 'Γεγονός',
'Name' => 'Όνομα',
'select' => 'επιλογή',
'Select' => 'Επιλογή',
'Select data' => 'Επιλέξτε δεδομένα',
'Functions' => 'Λειτουργίες',
'Aggregation' => 'Άθροισμα',
'Search' => 'Αναζήτηση',
'anywhere' => 'παντού',
'Search data in tables' => 'Αναζήτηση δεδομένων στους πίνακες',
'Sort' => 'Ταξινόμηση',
'descending' => 'Φθίνουσα',
'Limit' => 'Όριο',
'Limit rows' => 'Περιορισμός σειρών',
'Text length' => 'Μήκος κειμένου',
'Action' => 'Ενέργεια',
'Full table scan' => 'Πλήρης σάρωση πινάκων',
'Unable to select the table' => 'Δεν είναι δυνατή η επιλογή πίνακα',
'No rows.' => 'Χωρίς σειρές.',
'%d / ' => '%d / ',
'%d row(s)' => array('%d σειρά', '%d σειρές'),
'Page' => 'Σελίδα',
'last' => 'τελευταία',
'Load more data' => 'Φόρτωση κι άλλων δεδομένων',
'Loading' => 'Φορτώνει',
'Whole result' => 'Όλο το αποτέλεσμα',
'%d byte(s)' => array('%d byte', '%d bytes'),
'Import' => 'Εισαγωγή',
'%d row(s) have been imported.' => array('$d σειρά εισήχθη.', '%d σειρές εισήχθησαν.'),
'File must be in UTF-8 encoding.' => 'Το αρχείο πρέπει να έχει κωδικοποίηση UTF-8.',
// in-place editing in select
'Modify' => 'Τροποποίηση',
'Ctrl+click on a value to modify it.' => 'Πιέστε Ctrl+click σε μια τιμή για να την τροποποιήσετε.',
'Use edit link to modify this value.' => 'Χρησιμοποιήστε το σύνδεσμο επεξεργασία για να τροποποιήσετε την τιμή.',
// %s can contain auto-increment value
'Item%s has been inserted.' => 'Η εγγραφή%s εισήχθη.',
'Item has been deleted.' => 'Η εγγραφή διαγράφηκε.',
'Item has been updated.' => 'Η εγγραφή ενημερώθηκε.',
'%d item(s) have been affected.' => array('Επηρεάστηκε %d εγγραφή.', 'Επηρεάστηκαν %d εγγραφές.'),
'New item' => 'Νέα εγγραφή',
'original' => 'πρωτότυπο',
// label for value '' in enum data type
'empty' => 'κενό',
'edit' => 'επεξεργασία',
'Edit' => 'Επεξεργασία',
'Insert' => 'Εισαγωγή',
'Save' => 'Αποθήκευση',
'Save and continue edit' => 'Αποθήκευση και συνέχεια επεξεργασίας',
'Save and insert next' => 'Αποθήκευση και εισαγωγή επόμενου',
'Selected' => 'Επιλεγμένα',
'Clone' => 'Κλωνοποίηση',
'Delete' => 'Διαγραφή',
'You have no privileges to update this table.' => 'Δεν έχετε δικαίωμα να τροποποιήσετε αυτό τον πίνακα.',
'E-mail' => 'E-mail',
'From' => 'Από',
'Subject' => 'Θέμα',
'Attachments' => 'Συνημμένα',
'Send' => 'Αποστολή',
'%d e-mail(s) have been sent.' => array('%d e-mail απεστάλη.', '%d e-mail απεστάλησαν.'),
// data type descriptions
'Numbers' => 'Αριθμοί',
'Date and time' => 'Ημερομηνία και ώρα',
'Strings' => 'Κείμενο',
'Binary' => 'Δυαδικό',
'Lists' => 'Λίστες',
'Network' => 'Δίκτυο',
'Geometry' => 'Γεωμετρία',
'Relations' => 'Συσχετήσεις',
'Editor' => 'Επεξεργαστής',
// date format in Editor: $1 yyyy, $2 yy, $3 mm, $4 m, $5 dd, $6 d
'$1-$3-$5' => '$5/$3/$1',
// hint for date format - use language equivalents for day, month and year shortcuts
'[yyyy]-mm-dd' => 'ηη/μμ/[εεεε]',
// hint for time format - use language equivalents for hour, minute and second shortcuts
'HH:MM:SS' => 'ΩΩ:ΛΛ:ΔΔ',
'now' => 'τώρα',
'yes' => 'ναι',
'no' => 'όχι',
// general SQLite error in create, drop or rename database
'File exists.' => 'Το αρχείο υπάρχει.',
'Please use one of the extensions %s.' => 'Παρακαλώ χρησιμοποιείστε μια από τις επεκτάσεις %s.',
// PostgreSQL and MS SQL schema support
'Alter schema' => 'Τροποποίηση σχήματος',
'Create schema' => 'Δημιουργία σχήματος',
'Schema has been dropped.' => 'Το σχήμα διαγράφηκε.',
'Schema has been created.' => 'Το σχήμα δημιουργήθηκε.',
'Schema has been altered.' => 'Το σχήμα τροποποιήθηκε.',
'Schema' => 'Σχήμα',
'Invalid schema.' => 'Άκυρο σχήμα.',
// PostgreSQL sequences support
'Sequences' => 'Αλληλουχία',
'Create sequence' => 'Δημιουργία αλληλουχίας',
'Sequence has been dropped.' => 'Η αλληλουχία διαγράφηκε.',
'Sequence has been created.' => 'Η αλληλουχία δημιουργήθηκε.',
'Sequence has been altered.' => 'Η αλληλουχία τροποποιήθηκε.',
'Alter sequence' => 'Τροποποίηση αλληλουχίας',
// PostgreSQL user types support
'User types' => 'Τύποι χρήστη',
'Create type' => 'Δημιουργία τύπου',
'Type has been dropped.' => 'Ο τύπος διαγράφηκε.',
'Type has been created.' => 'Ο τύπος δημιουργήθηκε.',
'Alter type' => 'Τροποποίηση τύπου',
'Drop %s?' => null,
'as a regular expression' => null,
'overwrite' => null,
'DB' => null,
'Copy to clipboard' => null,
'ATTACH queries are not supported.' => null,
'Warnings' => null,
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null,
'There is a space in the input password which might be the cause.' => null,
'Unknown error.' => null,
'Database does not support password.' => null,
'Disable %s or enable %s or %s extensions.' => null,
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'A newer version of AdminerEvo is available, download it now!' => null,
);

View file

@ -1,15 +0,0 @@
<?php
$translations = array(
'Too many unsuccessful logins, try again in %d minute(s).' => array('Too many unsuccessful logins, try again in %d minute.', 'Too many unsuccessful logins, try again in %d minutes.'),
'Query executed OK, %d row(s) affected.' => array('Query executed OK, %d row affected.', 'Query executed OK, %d rows affected.'),
'%d byte(s)' => array('%d byte', '%d bytes'),
'Routine has been called, %d row(s) affected.' => array('Routine has been called, %d row affected.', 'Routine has been called, %d rows affected.'),
'%d process(es) have been killed.' => array('%d process has been killed.', '%d processes have been killed.'),
'%d / ' => '%d / ',
'%d row(s)' => array('%d row', '%d rows'),
'%d item(s) have been affected.' => array('%d item has been affected.', '%d items have been affected.'),
'%d row(s) have been imported.' => array('%d row has been imported.', '%d rows have been imported.'),
'%d e-mail(s) have been sent.' => array('%d e-mail has been sent.', '%d e-mails have been sent.'),
'%d in total' => '%d in total',
'%d query(s) executed OK.' => array('%d query executed OK.', '%d queries executed OK.'),
);

View file

@ -1,310 +0,0 @@
<?php
$translations = array(
'Login' => 'Login',
'Logout successful.' => 'Sesión finalizada con éxito.',
'Invalid server or credentials.' => null,
'Server' => 'Servidor',
'Username' => 'Usuario',
'Password' => 'Contraseña',
'Select database' => 'Seleccionar Base de datos',
'Invalid database.' => 'Base de datos incorrecta.',
'Table has been dropped.' => 'Tabla eliminada.',
'Table has been altered.' => 'Tabla modificada.',
'Table has been created.' => 'Tabla creada.',
'Alter table' => 'Modificar tabla',
'Create table' => 'Crear tabla',
'Table name' => 'Nombre de la tabla',
'engine' => 'motor',
'collation' => 'colación',
'Column name' => 'Nombre de columna',
'Type' => 'Tipo',
'Length' => 'Longitud',
'Auto Increment' => 'Incremento automático',
'Options' => 'Opciones',
'Save' => 'Guardar',
'Drop' => 'Eliminar',
'Database has been dropped.' => 'Base de datos eliminada.',
'Database has been created.' => 'Base de datos creada.',
'Database has been renamed.' => 'Base de datos renombrada.',
'Database has been altered.' => 'Base de datos modificada.',
'Alter database' => 'Modificar Base de datos',
'Create database' => 'Crear Base de datos',
'SQL command' => 'Comando SQL',
'Logout' => 'Cerrar sesión',
'database' => 'base de datos',
'Use' => 'Usar',
'No tables.' => 'No existen tablas.',
'select' => 'registros',
'Item has been deleted.' => 'Registro eliminado.',
'Item has been updated.' => 'Registro modificado.',
'Item%s has been inserted.' => 'Registro%s insertado.',
'Edit' => 'Modificar',
'Insert' => 'Agregar',
'Save and insert next' => 'Guardar e insertar siguiente',
'Delete' => 'Eliminar',
'Database' => 'Base de datos',
'Routines' => 'Procedimientos',
'Indexes have been altered.' => 'Índices actualizados.',
'Indexes' => 'Índices',
'Alter indexes' => 'Modificar índices',
'Add next' => 'Agregar',
'Language' => 'Idioma',
'Select' => 'Mostrar',
'New item' => 'Nuevo Registro',
'Search' => 'Condición',
'Sort' => 'Ordenar',
'descending' => 'descendiente',
'Limit' => 'Limite',
'No rows.' => 'No existen registros.',
'Action' => 'Acción',
'edit' => 'modificar',
'Page' => 'Página',
'Query executed OK, %d row(s) affected.' => array('Consulta ejecutada, %d registro afectado.', 'Consulta ejecutada, %d registros afectados.'),
'Error in query' => 'Error al ejecutar consulta',
'Execute' => 'Ejecutar',
'Table' => 'Tabla',
'Foreign keys' => 'Claves externas',
'Triggers' => 'Disparadores',
'View' => 'Vista',
'Unable to select the table' => 'No es posible seleccionar la tabla',
'Invalid CSRF token. Send the form again.' => 'Token CSRF inválido. Vuelva a enviar los datos del formulario.',
'Comment' => 'Comentario',
'Default values' => 'Valores predeterminados',
'%d byte(s)' => array('%d byte', '%d bytes'),
'No commands to execute.' => 'No es posible ejecutar ningún comando.',
'Unable to upload a file.' => 'No es posible importar el archivo.',
'File upload' => 'Importar archivo',
'File uploads are disabled.' => 'Importación de archivos deshablilitada.',
'Routine has been called, %d row(s) affected.' => array('Consulta ejecutada, %d registro afectado.', 'Consulta ejecutada, %d registros afectados.'),
'Call' => 'Llamar',
'No extension' => 'No hay extensión',
'None of the supported PHP extensions (%s) are available.' => 'Ninguna de las extensiones PHP soportadas (%s) está disponible.',
'Session support must be enabled.' => 'Deben estar habilitadas las sesiones.',
'Session expired, please login again.' => 'Sesión caducada, por favor escriba su clave de nuevo.',
'Text length' => 'Longitud de texto',
'Foreign key has been dropped.' => 'Clave externa eliminada.',
'Foreign key has been altered.' => 'Clave externa modificada.',
'Foreign key has been created.' => 'Clave externa creada.',
'Foreign key' => 'Clave externa',
'Target table' => 'Tabla de destino',
'Change' => 'Modificar',
'Source' => 'Origen',
'Target' => 'Destino',
'Add column' => 'Agregar columna',
'Alter' => 'Modificar',
'Add foreign key' => 'Agregar clave externa',
'ON DELETE' => 'AL BORRAR',
'ON UPDATE' => 'AL ACTUALIZAR',
'Index Type' => 'Tipo de índice',
'Column (length)' => 'Columna (longitud)',
'View has been dropped.' => 'Vista eliminada.',
'View has been altered.' => 'Vista modificada.',
'View has been created.' => 'Vista creada.',
'Alter view' => 'Modificar vista',
'Create view' => 'Crear vista',
'Name' => 'Nombre',
'Process list' => 'Lista de procesos',
'%d process(es) have been killed.' => array('%d proceso detenido.', '%d procesos detenidos.'),
'Kill' => 'Detener',
'Parameter name' => 'Nombre de Parámetro',
'Database schema' => 'Esquema de base de datos',
'Create procedure' => 'Crear procedimiento',
'Create function' => 'Crear función',
'Routine has been dropped.' => 'Procedimiento eliminado.',
'Routine has been altered.' => 'Procedimiento modificado.',
'Routine has been created.' => 'Procedimiento creado.',
'Alter function' => 'Modificar función',
'Alter procedure' => 'Modificar procedimiento',
'Return type' => 'Tipo de valor de vuelta',
'Add trigger' => 'Agregar disparador',
'Trigger has been dropped.' => 'Disparador eliminado.',
'Trigger has been altered.' => 'Disparador modificado.',
'Trigger has been created.' => 'Disparador creado.',
'Alter trigger' => 'Modificar Disparador',
'Create trigger' => 'Agregar Disparador',
'Time' => 'Tiempo',
'Event' => 'Evento',
'%s version: %s through PHP extension %s' => 'Versión %s: %s a través de la extensión de PHP %s',
'%d row(s)' => array('%d registro', '%d registros'),
'Remove' => 'Eliminar',
'Are you sure?' => '¿Está seguro?',
'Privileges' => 'Privilegios',
'Create user' => 'Crear Usuario',
'User has been dropped.' => 'Usuario eliminado.',
'User has been altered.' => 'Usuario modificado.',
'User has been created.' => 'Usuario creado.',
'Hashed' => 'Hash',
'Column' => 'Columna',
'Routine' => 'Rutina',
'Grant' => 'Conceder',
'Revoke' => 'Impedir',
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'POST data demasiado grande. Reduzca el tamaño o aumente la directiva de configuración %s.',
'Logged as: %s' => 'Logueado como: %s',
'Move up' => 'Mover arriba',
'Move down' => 'Mover abajo',
'Functions' => 'Funciones',
'Aggregation' => 'Agregados',
'Export' => 'Exportar',
'Output' => 'Salida',
'open' => 'mostrar',
'save' => 'archivo',
'Format' => 'Formato',
'Tables' => 'Tablas',
'Data' => 'Datos',
'Event has been dropped.' => 'Evento eliminado.',
'Event has been altered.' => 'Evento modificado.',
'Event has been created.' => 'Evento creado.',
'Alter event' => 'Modificar Evento',
'Create event' => 'Crear Evento',
'At given time' => 'En el momento indicado',
'Every' => 'Cada',
'Events' => 'Eventos',
'Schedule' => 'Agenda',
'Start' => 'Inicio',
'End' => 'Fin',
'Status' => 'Estado',
'On completion preserve' => 'Al completar mantener',
'Tables and views' => 'Tablas y vistas',
'Data Length' => 'Longitud de datos',
'Index Length' => 'Longitud de índice',
'Data Free' => 'Espacio libre',
'Collation' => 'Colación',
'Analyze' => 'Analizar',
'Optimize' => 'Optimizar',
'Check' => 'Comprobar',
'Repair' => 'Reparar',
'Truncate' => 'Vaciar',
'Tables have been truncated.' => 'Las tablas han sido vaciadas.',
'Rows' => 'Registros',
',' => ' ',
'0123456789' => '0123456789',
'Tables have been moved.' => 'Se movieron las tablas.',
'Move to other database' => 'Mover a otra base de datos',
'Move' => 'Mover',
'Engine' => 'Motor',
'Save and continue edit' => 'Guardar y continuar editando',
'original' => 'original',
'Tables have been dropped.' => 'Tablas eliminadas.',
'%d item(s) have been affected.' => array('%d elemento afectado.', '%d elementos afectados.'),
'Whole result' => 'Resultado completo',
'Clone' => 'Clonar',
'Maximum number of allowed fields exceeded. Please increase %s.' => 'Excedida la cantidad máxima de campos permitidos. Por favor aumente %s.',
'Partition by' => 'Particionar por',
'Partitions' => 'Particiones',
'Partition name' => 'Nombre de partición',
'Values' => 'Valores',
'%d row(s) have been imported.' => array('%d registro importado.', '%d registros importados.'),
'anywhere' => 'donde sea',
'Import' => 'Importar',
'Stop on error' => 'Parar en caso de error',
'%.3f s' => '%.3f s',
'$1-$3-$5' => '$5/$3/$1',
'[yyyy]-mm-dd' => 'dd/mm/[aaaa]',
'History' => 'Histórico',
'Variables' => 'Variables',
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'Las columnas de origen y destino deben ser del mismo tipo, debe existir un índice entre las columnas del destino y el registro referenciado debe existir también.',
'Relations' => 'Relaciones',
'Run file' => 'Ejecutar Archivo',
'Clear' => 'Vaciar',
'Maximum allowed file size is %sB.' => 'El tamaño máximo de archivo es %sB.',
'Numbers' => 'Números',
'Date and time' => 'Fecha y hora',
'Strings' => 'Cadena',
'Binary' => 'Binario',
'Lists' => 'Listas',
'Editor' => 'Editor',
'E-mail' => 'Email',
'From' => 'De',
'Subject' => 'Asunto',
'Send' => 'Enviar',
'%d e-mail(s) have been sent.' => array('%d email enviado.', '%d emails enviados.'),
'Webserver file %s' => 'Archivo de servidor web %s',
'File does not exist.' => 'Ese archivo no existe.',
'%d in total' => '%d en total',
'Permanent login' => 'Guardar contraseña',
'Databases have been dropped.' => 'Bases de datos eliminadas.',
'Search data in tables' => 'Buscar datos en tablas',
'Schema' => 'Esquema',
'Alter schema' => 'Modificar esquema',
'Create schema' => 'Crear esquema',
'Schema has been dropped.' => 'Esquema eliminado.',
'Schema has been created.' => 'Esquema creado.',
'Schema has been altered.' => 'Esquema modificado.',
'Sequences' => 'Secuencias',
'Create sequence' => 'Crear secuencias',
'Alter sequence' => 'Modificar secuencia',
'Sequence has been dropped.' => 'Secuencia eliminada.',
'Sequence has been created.' => 'Secuencia creada.',
'Sequence has been altered.' => 'Secuencia modificada.',
'User types' => 'Tipos definidos por el usuario',
'Create type' => 'Crear tipo',
'Alter type' => 'Modificar tipo',
'Type has been dropped.' => 'Tipo eliminado.',
'Type has been created.' => 'Tipo creado.',
'Ctrl+click on a value to modify it.' => 'Ctrl+clic sobre el valor para editarlo.',
'Use edit link to modify this value.' => 'Utilice el enlace de edición para realizar cambios.',
'last' => 'último',
'From server' => 'Desde servidor',
'System' => 'Motor de base de datos',
'Select data' => 'Visualizar contenido',
'Show structure' => 'Mostrar estructura',
'empty' => 'ninguno',
'Network' => 'Red',
'Geometry' => 'Geometría',
'File exists.' => 'Ese archivo ya existe.',
'Attachments' => 'Adjuntos',
'%d query(s) executed OK.' => array('%d sentencia SQL ejecutada correctamente.', '%d sentencias SQL ejecutadas correctamente.'),
'Show only errors' => 'Mostrar solamente errores',
'Refresh' => 'Refrescar',
'Invalid schema.' => 'Esquema inválido.',
'Please use one of the extensions %s.' => 'Por favor, use una de las extensiones %s.',
'now' => 'ahora',
'ltr' => 'ltr',
'Tables have been copied.' => 'Tablas copiadas.',
'Copy' => 'Copiar',
'Permanent link' => 'Enlace permanente',
'Edit all' => 'Editar todos',
'HH:MM:SS' => 'HH:MM:SS',
'Drop %s?' => null,
'Tables have been optimized.' => null,
'as a regular expression' => null,
'Materialized view' => null,
'Vacuum' => null,
'Selected' => null,
'overwrite' => null,
'DB' => null,
'File must be in UTF-8 encoding.' => null,
'Modify' => null,
'Load more data' => null,
'Loading' => null,
'Copy to clipboard' => null,
'ATTACH queries are not supported.' => null,
'Warnings' => null,
'%d / ' => array(),
'Limit rows' => null,
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
'Default value' => null,
'Full table scan' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array(),
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null,
'There is a space in the input password which might be the cause.' => null,
'If you did not send this request from Adminer then close this page.' => null,
'You can upload a big SQL file via FTP and import it from server.' => null,
'Size' => null,
'Compute' => null,
'You are offline.' => null,
'You have no privileges to update this table.' => null,
'Saving' => null,
'Unknown error.' => null,
'Database does not support password.' => null,
'Disable %s or enable %s or %s extensions.' => null,
'yes' => null,
'no' => null,
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'A newer version of AdminerEvo is available, download it now!' => null,
);

View file

@ -1,310 +0,0 @@
<?php
$translations = array(
'Login' => 'Logi sisse',
'Logout successful.' => 'Väljalogimine õnnestus.',
'Invalid server or credentials.' => null,
'Server' => 'Server',
'Username' => 'Kasutajanimi',
'Password' => 'Parool',
'Select database' => 'Vali andmebaas',
'Invalid database.' => 'Tundmatu andmebaas.',
'Table has been dropped.' => 'Tabel on edukalt kustutatud.',
'Table has been altered.' => 'Tabeli andmed on edukalt muudetud.',
'Table has been created.' => 'Tabel on edukalt loodud.',
'Alter table' => 'Muuda tabeli struktuuri',
'Create table' => 'Loo uus tabel',
'Table name' => 'Tabeli nimi',
'engine' => 'andmebaasimootor',
'collation' => 'tähetabel',
'Column name' => 'Veeru nimi',
'Type' => 'Tüüp',
'Length' => 'Pikkus',
'Auto Increment' => 'Automaatselt suurenev',
'Options' => 'Valikud',
'Save' => 'Salvesta',
'Drop' => 'Kustuta',
'Database has been dropped.' => 'Andmebaas on edukalt kustutatud.',
'Database has been created.' => 'Andmebaas on edukalt loodud.',
'Database has been renamed.' => 'Andmebaas on edukalt ümber nimetatud.',
'Database has been altered.' => 'Andmebaasi struktuuri uuendamine õnnestus.',
'Alter database' => 'Muuda andmebaasi',
'Create database' => 'Loo uus andmebaas',
'SQL command' => 'SQL-Päring',
'Logout' => 'Logi välja',
'database' => 'andmebaas',
'Use' => 'Kasuta',
'No tables.' => 'Tabeleid ei leitud.',
'select' => 'kuva',
'Item has been deleted.' => 'Kustutamine õnnestus.',
'Item has been updated.' => 'Uuendamine õnnestus.',
'Item%s has been inserted.' => 'Kirje%s on edukalt lisatud.',
'Edit' => 'Muuda',
'Insert' => 'Sisesta',
'Save and insert next' => 'Salvesta ja lisa järgmine',
'Delete' => 'Kustuta',
'Database' => 'Andmebaas',
'Routines' => 'Protseduurid',
'Indexes have been altered.' => 'Indeksite andmed on edukalt uuendatud.',
'Indexes' => 'Indeksid',
'Alter indexes' => 'Muuda indekseid',
'Add next' => 'Lisa järgmine',
'Language' => 'Keel',
'Select' => 'Kuva',
'New item' => 'Lisa kirje',
'Search' => 'Otsi',
'Sort' => 'Sorteeri',
'descending' => 'kahanevalt',
'Limit' => 'Piira',
'No rows.' => 'Sissekanded puuduvad.',
'Action' => 'Tegevus',
'edit' => 'muuda',
'Page' => 'Lehekülg',
'Query executed OK, %d row(s) affected.' => 'Päring õnnestus, mõjutatatud ridu: %d.',
'Error in query' => 'Päringus esines viga',
'Execute' => 'Käivita',
'Table' => 'Tabel',
'Foreign keys' => 'Võõrvõtmed (foreign key)',
'Triggers' => 'Päästikud (trigger)',
'View' => 'Vaata',
'Unable to select the table' => 'Tabeli valimine ebaõnnestus',
'Invalid CSRF token. Send the form again.' => 'Sobimatu CSRF, palun postitage vorm uuesti.',
'Comment' => 'Kommentaar',
'Default values' => 'Vaikimisi väärtused',
'%d byte(s)' => array('%d bait', '%d baiti'),
'No commands to execute.' => 'Käsk puudub.',
'Unable to upload a file.' => 'Faili üleslaadimine pole võimalik.',
'File upload' => 'Faili üleslaadimine',
'File uploads are disabled.' => 'Failide üleslaadimine on keelatud.',
'Routine has been called, %d row(s) affected.' => 'Protseduur täideti edukalt, mõjutatud ridu: %d.',
'Call' => 'Käivita',
'No extension' => 'Ei leitud laiendust',
'None of the supported PHP extensions (%s) are available.' => 'Serveris pole ühtegi toetatud PHP laiendustest (%s).',
'Session support must be enabled.' => 'Sessioonid peavad olema lubatud.',
'Session expired, please login again.' => 'Sessioon on aegunud, palun logige uuesti sisse.',
'Text length' => 'Teksti pikkus',
'Foreign key has been dropped.' => 'Võõrvõti on edukalt kustutatud.',
'Foreign key has been altered.' => 'Võõrvõtme andmed on edukalt muudetud.',
'Foreign key has been created.' => 'Võõrvõri on edukalt loodud.',
'Foreign key' => 'Võõrvõti',
'Target table' => 'Siht-tabel',
'Change' => 'Muuda',
'Source' => 'Allikas',
'Target' => 'Sihtkoht',
'Add column' => 'Lisa veerg',
'Alter' => 'Muuda',
'Add foreign key' => 'Lisa võõrvõti',
'ON DELETE' => 'ON DELETE',
'ON UPDATE' => 'ON UPDATE',
'Index Type' => 'Indeksi tüüp',
'Column (length)' => 'Veerg (pikkus)',
'View has been dropped.' => 'Vaade (VIEW) on edukalt kustutatud.',
'View has been altered.' => 'Vaade (VIEW) on edukalt muudetud.',
'View has been created.' => 'Vaade (VIEW) on edukalt loodud.',
'Alter view' => 'Muuda vaadet (VIEW)',
'Create view' => 'Loo uus vaade (VIEW)',
'Name' => 'Nimi',
'Process list' => 'Protsesside nimekiri',
'%d process(es) have been killed.' => array('Protsess on edukalt peatatud (%d).', 'Valitud protsessid (%d) on edukalt peatatud.'),
'Kill' => 'Peata',
'Parameter name' => 'Parameetri nimi',
'Database schema' => 'Andmebaasi skeem',
'Create procedure' => 'Loo uus protseduur',
'Create function' => 'Loo uus funktsioon',
'Routine has been dropped.' => 'Protseduur on edukalt kustutatud.',
'Routine has been altered.' => 'Protseduuri andmed on edukalt muudetud.',
'Routine has been created.' => 'Protseduur on edukalt loodud.',
'Alter function' => 'Muuda funktsiooni',
'Alter procedure' => 'Muuda protseduuri',
'Return type' => 'Tagastustüüp',
'Add trigger' => 'Lisa päästik (TRIGGER)',
'Trigger has been dropped.' => 'Päästik on edukalt kustutatud.',
'Trigger has been altered.' => 'Päästiku andmed on edukalt uuendatud.',
'Trigger has been created.' => 'Uus päästik on edukalt loodud.',
'Alter trigger' => 'Muuda päästiku andmeid',
'Create trigger' => 'Loo uus päästik (TRIGGER)',
'Time' => 'Aeg',
'Event' => 'Sündmus',
'%d row(s)' => '%d rida',
'Remove' => 'Eemalda',
'Are you sure?' => 'Kas oled kindel?',
'Privileges' => 'Õigused',
'Create user' => 'Loo uus kasutaja',
'User has been dropped.' => 'Kasutaja on edukalt kustutatud.',
'User has been altered.' => 'Kasutaja andmed on edukalt muudetud.',
'User has been created.' => 'Kasutaja on edukalt lisatud.',
'Hashed' => 'Häshitud (Hashed)',
'Column' => 'Veerg',
'Routine' => 'Protseduur',
'Grant' => 'Anna',
'Revoke' => 'Eemalda',
'%s version: %s through PHP extension %s' => '%s versioon: %s, kasutatud PHP moodul: %s',
'Logged as: %s' => 'Sisse logitud: %s',
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'POST-andmete maht on liialt suur. Palun vähendage andmeid või suurendage %s php-seadet.',
'Move up' => 'Liiguta ülespoole',
'Move down' => 'Liiguta allapoole',
'Export' => 'Ekspordi',
'Tables' => 'Tabelid',
'Data' => 'Andmed',
'Output' => 'Väljund',
'open' => 'näita brauseris',
'save' => 'salvesta failina',
'Format' => 'Formaat',
'Functions' => 'Funktsioonid',
'Aggregation' => 'Liitmine',
'Event has been dropped.' => 'Sündmus on edukalt kustutatud.',
'Event has been altered.' => 'Sündmuse andmed on edukalt uuendatud.',
'Event has been created.' => 'Sündmus on edukalt loodud.',
'Alter event' => 'Muuda sündmuse andmeid',
'Create event' => 'Loo uus sündmus (EVENT)',
'Start' => 'Alusta',
'End' => 'Lõpeta',
'Every' => 'Iga',
'Status' => 'Staatus',
'On completion preserve' => 'Lõpetamisel jäta sündmus alles',
'Events' => 'Sündmused (EVENTS)',
'Schedule' => 'Ajakava',
'At given time' => 'Antud ajahetkel',
'Save and continue edit' => 'Salvesta ja jätka muutmist',
'original' => 'originaal',
'Tables have been truncated.' => 'Validud tabelid on edukalt tühjendatud.',
'Tables have been moved.' => 'Valitud tabelid on edukalt liigutatud.',
'Tables have been dropped.' => 'Valitud tabelid on edukalt kustutatud.',
'Tables and views' => 'Tabelid ja vaated',
'Engine' => 'Implementatsioon',
'Collation' => 'Tähetabel',
'Data Length' => 'Andmete pikkus',
'Index Length' => 'Indeksi pikkus',
'Data Free' => 'Vaba ruumi',
'Rows' => 'Ridu',
',' => ',',
'0123456789' => '0123456789',
'Analyze' => 'Analüüsi',
'Optimize' => 'Optimeeri',
'Check' => 'Kontrolli',
'Repair' => 'Paranda',
'Truncate' => 'Tühjenda',
'Move to other database' => 'Liiguta teise andmebaasi',
'Move' => 'Liiguta',
'%d item(s) have been affected.' => 'Mõjutatud kirjeid: %d.',
'Whole result' => 'Täielikud tulemused',
'Clone' => 'Kloon',
'Maximum number of allowed fields exceeded. Please increase %s.' => 'Maksimaalne väljade arv ületatud. Palun suurendage %s.',
'Partition by' => 'Partitsiooni',
'Partitions' => 'Partitsioonid',
'Partition name' => 'Partitsiooni nimi',
'Values' => 'Väärtused',
'%d row(s) have been imported.' => 'Imporditi %d rida.',
'anywhere' => 'vahet pole',
'Import' => 'Impordi',
'Stop on error' => 'Peatuda vea esinemisel',
'%.3f s' => '%.3f s',
'$1-$3-$5' => '$6.$4.$1',
'[yyyy]-mm-dd' => 'd.m.[yyyy]',
'History' => 'Ajalugu',
'Variables' => 'Muutujad',
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'Lähte- ja sihtveerud peavad eksisteerima ja omama sama andmetüüpi, sihtveergudel peab olema määratud indeks ning viidatud andmed peavad eksisteerima.',
'Relations' => 'Seosed',
'Run file' => 'Käivita fail',
'Clear' => 'Puhasta',
'Maximum allowed file size is %sB.' => 'Maksimaalne failisuurus %sB.',
'Numbers' => 'Numbrilised',
'Date and time' => 'Kuupäev ja kellaaeg',
'Strings' => 'Tekstid',
'Binary' => 'Binaar',
'Lists' => 'Listid',
'Editor' => 'Redaktor',
'E-mail' => 'E-post',
'From' => 'Kellelt',
'Subject' => 'Pealkiri',
'Send' => 'Saada',
'%d e-mail(s) have been sent.' => 'Saadetud kirju: %d.',
'Webserver file %s' => 'Fail serveris: %s',
'File does not exist.' => 'Faili ei leitud.',
'%d in total' => 'Kokku: %d',
'Permanent login' => 'Jäta mind meelde',
'Databases have been dropped.' => 'Andmebaasid on edukalt kustutatud.',
'Search data in tables' => 'Otsi kogu andmebaasist',
'Schema' => 'Struktuur',
'Alter schema' => 'Muuda struktuuri',
'Create schema' => 'Loo struktuur',
'Schema has been dropped.' => 'Struktuur on edukalt kustutatud.',
'Schema has been created.' => 'Struktuur on edukalt loodud.',
'Schema has been altered.' => 'Struktuur on edukalt muudetud.',
'Sequences' => 'Jadad (sequences)',
'Create sequence' => 'Loo jada',
'Alter sequence' => 'Muuda jada',
'Sequence has been dropped.' => 'Jada on edukalt kustutatud.',
'Sequence has been created.' => 'Jada on edukalt loodud.',
'Sequence has been altered.' => 'Jada on edukalt muudetud.',
'User types' => 'Kasutajatüübid',
'Create type' => 'Loo tüüp',
'Alter type' => 'Muuda tüüpi',
'Type has been dropped.' => 'Tüüp on edukalt kustutatud.',
'Type has been created.' => 'Tüüp on edukalt loodud.',
'Ctrl+click on a value to modify it.' => 'Väärtuse muutmiseks Ctrl+kliki sellel.',
'Use edit link to modify this value.' => 'Väärtuse muutmiseks kasuta muutmislinki.',
'last' => 'viimane',
'From server' => 'Serverist',
'System' => 'Andmebaasimootor',
'Select data' => 'Vaata andmeid',
'Show structure' => 'Näita struktuuri',
'empty' => 'tühi',
'Network' => 'Võrk (network)',
'Geometry' => 'Geomeetria',
'File exists.' => 'Fail juba eksisteerib.',
'Attachments' => 'Manused',
'%d query(s) executed OK.' => array('%d päring edukalt käivitatud.', '%d päringut edukalt käivitatud.'),
'Show only errors' => 'Kuva vaid veateateid',
'Refresh' => 'Uuenda',
'Invalid schema.' => 'Sobimatu skeema.',
'Please use one of the extensions %s.' => 'Palun kasuta üht laiendustest %s.',
'now' => 'nüüd',
'ltr' => 'ltr',
'Tables have been copied.' => 'Tabelid on edukalt kopeeritud.',
'Copy' => 'Kopeeri',
'Permanent link' => 'Püsilink',
'Edit all' => 'Muuda kõiki',
'HH:MM:SS' => 'HH:MM:SS',
'Drop %s?' => null,
'Tables have been optimized.' => null,
'as a regular expression' => null,
'Materialized view' => null,
'Vacuum' => null,
'Selected' => null,
'overwrite' => null,
'DB' => null,
'File must be in UTF-8 encoding.' => null,
'Modify' => null,
'Load more data' => null,
'Loading' => null,
'Copy to clipboard' => null,
'ATTACH queries are not supported.' => null,
'Warnings' => null,
'%d / ' => array(),
'Limit rows' => null,
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
'Default value' => null,
'Full table scan' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array(),
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null,
'There is a space in the input password which might be the cause.' => null,
'If you did not send this request from Adminer then close this page.' => null,
'You can upload a big SQL file via FTP and import it from server.' => null,
'Size' => null,
'Compute' => null,
'You are offline.' => null,
'You have no privileges to update this table.' => null,
'Saving' => null,
'Unknown error.' => null,
'Database does not support password.' => null,
'Disable %s or enable %s or %s extensions.' => null,
'yes' => null,
'no' => null,
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'A newer version of AdminerEvo is available, download it now!' => null,
);

View file

@ -1,355 +0,0 @@
<?php
$translations = array(
// label for database system selection (MySQL, SQLite, ...)
'System' => 'سیستم',
'Server' => 'سرور',
'Username' => 'نام کاربری',
'Password' => 'کلمه عبور',
'Permanent login' => 'ورود دائم',
'Login' => 'ورود',
'Logout' => 'خروج',
'Logged as: %s' => 'ورود به عنوان: %s',
'Logout successful.' => 'با موفقیت خارج شدید.',
'Invalid server or credentials.' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array('ورودهای ناموفق بیش از حد، %d دقیقه دیگر تلاش نمایید.', 'ورودهای ناموفق بیش از حد، %d دقیقه دیگر تلاش نمایید.'),
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'رمز اصلی باطل شده است. روش %s را <a href="https://www.adminer.org/en/extension/"%s>پیاده سازی</a> کرده تا آن را دائمی سازید.',
'Language' => 'زبان',
'Invalid CSRF token. Send the form again.' => 'CSRF token نامعتبر است. دوباره سعی کنید.',
'No extension' => 'پسوند نامعتبر',
'None of the supported PHP extensions (%s) are available.' => 'هیچ کدام از افزونه های PHP پشتیبانی شده (%s) موجود نمی باشند.',
'Session support must be enabled.' => 'پشتیبانی از نشست بایستی فعال گردد.',
'Session expired, please login again.' => 'نشست پایان یافته، لطفا دوباره وارد شوید.',
'%s version: %s through PHP extension %s' => 'نسخه %s : %s توسعه پی اچ پی %s',
'Refresh' => 'بازیابی',
// text direction - 'ltr' or 'rtl'
'ltr' => 'rtl',
'Privileges' => 'امتیازات',
'Create user' => 'ایجاد کاربر',
'User has been dropped.' => 'کاربر حذف شد.',
'User has been altered.' => 'کاربر ویرایش گردید.',
'User has been created.' => 'کاربر ایجاد شد.',
'Hashed' => 'به هم ریخته',
'Column' => 'ستون',
'Routine' => 'روتین',
'Grant' => 'اعطا',
'Revoke' => 'لغو کردن',
'Process list' => 'لیست فرآیند',
'%d process(es) have been killed.' => '%d فرآیند متوقف شد.',
'Kill' => 'حذف فرآیند',
'Variables' => 'متغیرها',
'Status' => 'وضعیت',
'SQL command' => 'دستور SQL',
'%d query(s) executed OK.' => '%d کوئری اجرا شد.',
'Query executed OK, %d row(s) affected.' => 'کوئری اجرا شد. %d سطر تغیر کرد.',
'No commands to execute.' => 'دستوری برای اجرا وجود ندارد.',
'Error in query' => 'خطا در کوئری',
'Execute' => 'اجرا',
'Stop on error' => 'توقف بر روی خطا',
'Show only errors' => 'فقط نمایش خطاها',
// sprintf() format for time of the command
'%.3f s' => '%.3f s',
'History' => 'تاریخ',
'Clear' => 'پاک کردن',
'Edit all' => 'ویرایش همه',
'File upload' => 'بارگذاری فایل',
'From server' => 'از سرور',
'Webserver file %s' => '%s فایل وب سرور',
'Run file' => 'اجرای فایل',
'File does not exist.' => 'فایل وجود ندارد.',
'File uploads are disabled.' => 'بارگذاری غیر فعال است.',
'Unable to upload a file.' => 'قادر به بارگذاری فایل نیستید.',
'Maximum allowed file size is %sB.' => ' %sB حداکثر اندازه فایل.',
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'حجم داده ارسالی برزگ است. حجم داده کاهش دهید و یا مقدار %s را در پیکربندی افزایش دهید.',
'You can upload a big SQL file via FTP and import it from server.' => 'شما می توانید فایل SQL حجیم را از طریق FTP بارگزاری و از روی سرور وارد نمایید.',
'You are offline.' => 'شما آفلاین می باشید.',
'Export' => 'استخراج',
'Output' => 'خروجی',
'open' => 'بازکردن',
'save' => 'ذخیره',
'Format' => 'حذف',
'Data' => 'داده',
'Database' => 'پایگاه داده',
'database' => 'پایگاه داده',
'Use' => 'استفاده',
'Select database' => 'انتخاب پایگاه داده',
'Invalid database.' => 'پایگاه داده نامعتبر.',
'Database has been dropped.' => 'پایگاه داده حذف شد.',
'Databases have been dropped.' => 'پایگاه های داده حذف شدند.',
'Database has been created.' => 'پایگاه داده ایجاد شد.',
'Database has been renamed.' => 'نام پایگاه داده تغیر کرد.',
'Database has been altered.' => 'پایگاه داده ویرایش شد.',
'Alter database' => 'ویرایش پایگاه داده',
'Create database' => 'ایجاد پایگاه داده',
'Database schema' => 'ساختار پایگاه داده',
// link to current database schema layout
'Permanent link' => 'ارتباط دائم',
// thousands separator - must contain single byte
',' => ' ',
'0123456789' => '۰۱۲۳۴۵۶۷۸۹',
'Engine' => 'موتور',
'Collation' => 'تطبیق',
'Data Length' => 'طول داده',
'Index Length' => 'طول ایندکس',
'Data Free' => 'داده اختیاری',
'Rows' => 'سطرها',
'%d in total' => ' به طور کل %d ',
'Analyze' => 'تحلیل',
'Optimize' => 'بهینه سازی',
'Vacuum' => 'پاک سازی',
'Check' => 'بررسی',
'Repair' => 'تعمیر',
'Truncate' => 'کوتاه کردن',
'Tables have been truncated.' => 'جدولها بریده شدند.',
'Move to other database' => 'انتقال به یک پایگاه داده دیگر',
'Move' => 'انتقال',
'Tables have been moved.' => 'جدولها انتقال داده شدند.',
'Copy' => 'کپی کردن',
'Tables have been copied.' => 'جدولها کپی شدند.',
'Routines' => 'روالها',
'Routine has been called, %d row(s) affected.' => array('روال فراخوانی شد %d سطر متاثر شد.', 'روال فراخوانی شد %d سطر متاثر شد.'),
'Call' => 'صدا زدن',
'Parameter name' => 'نام پارامتر',
'Create procedure' => 'ایجاد زیربرنامه',
'Create function' => 'ایجاد تابع',
'Routine has been dropped.' => 'روال حذف شد.',
'Routine has been altered.' => 'روال ویرایش شد.',
'Routine has been created.' => 'روال ایجاد شد.',
'Alter function' => 'ویرایش تابع',
'Alter procedure' => 'ویرایش زیربرنامه',
'Return type' => 'برگرداندن نوع',
'Events' => 'رویدادها',
'Event has been dropped.' => 'رویداد حذف شد.',
'Event has been altered.' => 'رویداد ویرایش شد.',
'Event has been created.' => 'رویداد ایجاد شد.',
'Alter event' => 'ویرایش رویداد',
'Create event' => 'ایجاد رویداد',
'At given time' => 'زمان معین',
'Every' => 'همه',
'Schedule' => 'زمانبندی',
'Start' => 'آغاز',
'End' => 'پایان',
'On completion preserve' => 'تکمیل حفاظت فعال است',
'Tables' => 'جدولها',
'Tables and views' => 'جدولها و نمایه ها',
'Table' => 'جدول',
'No tables.' => 'جدولی وجود ندارد',
'Alter table' => 'ویرایش جدول',
'Create table' => 'ایجاد جدول',
'Table has been dropped.' => 'جدول حذف شد.',
'Tables have been dropped.' => 'جدولها حذف شدند.',
'Tables have been optimized.' => 'جدولها بهینه شدند.',
'Table has been altered.' => 'جدول ویرایش شد.',
'Table has been created.' => 'جدول ایجاد شد.',
'Table name' => 'نام جدول',
'Show structure' => 'نمایش ساختار',
'engine' => 'موتور',
'collation' => 'تطبیق',
'Column name' => 'نام ستون',
'Type' => 'نوع',
'Length' => 'طول',
'Auto Increment' => 'افزایش خودکار',
'Options' => 'اختیارات',
'Comment' => 'توضیح',
'Default value' => 'مقدار پیش فرض',
'Default values' => 'مقادیر پیش فرض',
'Drop' => 'حذف',
'Are you sure?' => 'مطمئن هستید؟',
'Size' => 'حجم',
'Compute' => 'محاسبه',
'Move up' => 'انتقال به بالا',
'Move down' => 'انتقال به پایین',
'Remove' => 'حذف',
'Maximum number of allowed fields exceeded. Please increase %s.' => 'حداکثر تعداد فیلدهای مجاز اشباع شد. لطفا %s را افزایش دهید.',
'Partition by' => 'بخشبندی توسط',
'Partitions' => 'بخشبندیها',
'Partition name' => 'نام بخش',
'Values' => 'مقادیر',
'View' => 'نمایش',
'Materialized view' => 'نمایه مادی',
'View has been dropped.' => 'نمایش حذف شد.',
'View has been altered.' => 'نمایش ویرایش شد.',
'View has been created.' => 'نمایش ایجاد شد.',
'Alter view' => 'حذف نمایش',
'Create view' => 'ایجاد نمایش',
'Indexes' => 'ایندکسها',
'Indexes have been altered.' => 'ایندکسها ویرایش شدند.',
'Alter indexes' => 'ویرایش ایندکسها',
'Add next' => 'افرودن بعدی',
'Index Type' => 'نوع ایندکس',
'Column (length)' => 'ستون (طول)',
'Foreign keys' => 'کلیدهای خارجی',
'Foreign key' => 'کلید خارجی',
'Foreign key has been dropped.' => 'کلید خارجی حذف شد.',
'Foreign key has been altered.' => 'کلید خارجی ویرایش شد.',
'Foreign key has been created.' => 'کلید خارجی ایجاد شد.',
'Target table' => 'جدول هدف',
'Change' => 'تغییر',
'Source' => 'منبع',
'Target' => 'هدف',
'Add column' => 'افزودن ستون',
'Alter' => 'ویرایش',
'Add foreign key' => 'افزودن کلید خارجی',
'ON DELETE' => 'ON DELETE',
'ON UPDATE' => 'ON UPDATE',
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'داده مبدا و مقصد ستونها بایستی شبیه هم باشند.',
'Triggers' => 'تریگرها',
'Add trigger' => 'افزودن تریگر',
'Trigger has been dropped.' => 'تریگر حذف شد.',
'Trigger has been altered.' => 'تریگر ویرایش شد.',
'Trigger has been created.' => 'تریگر ایجاد شد.',
'Alter trigger' => 'ویرایش تریگر',
'Create trigger' => 'ایجاد تریگر',
'Time' => 'زمان',
'Event' => 'رویداد',
'Name' => 'نام',
'select' => 'انتخاب',
'Select' => 'انتخاب',
'Select data' => 'انتخاب داده',
'Functions' => 'توابع',
'Aggregation' => 'تجمع',
'Search' => 'جستجو',
'anywhere' => 'هرکجا',
'Search data in tables' => 'جستجوی داده در جدول',
'Sort' => 'مرتب کردن',
'descending' => 'نزولی',
'Limit' => 'محدودیت',
'Limit rows' => 'محدودیت سطرها',
'Text length' => 'طول متن',
'Action' => 'عملیات',
'Full table scan' => 'اسکن کامل جدول',
'Unable to select the table' => 'قادر به انتخاب جدول نیستید',
'No rows.' => 'سطری وجود ندارد',
'%d / ' => '%d / ',
'%d row(s)' => array('%d سطر', '%d سطر'),
'Page' => 'صفحه',
'last' => 'آخری',
'Load more data' => 'بارگزاری اطلاعات بیشتر',
'Loading' => 'در حال بارگزاری',
'Whole result' => 'همه نتایج',
'%d byte(s)' => array('%d بایت', '%d بایت'),
'Import' => 'وارد کردن',
'%d row(s) have been imported.' => array('%d سطر وارد شد.', '%d سطر وارد شد.'),
'File must be in UTF-8 encoding.' => 'فرمت فایل باید UTF-8 باشید.',
// in-place editing in select
'Modify' => 'ویرایش',
'Ctrl+click on a value to modify it.' => 'برای ویرایش بر روی مقدار ctrl+click کنید.',
'Use edit link to modify this value.' => 'از لینک ویرایش برای ویرایش این مقدار استفاده کنید.',
// %s can contain auto-increment value
'Item%s has been inserted.' => '%s آیتم درج شد.',
'Item has been deleted.' => 'آیتم حذف شد.',
'Item has been updated.' => 'آیتم بروز رسانی شد.',
'%d item(s) have been affected.' => array('%d آیتم متاثر شد.', '%d آیتم متاثر شد.'),
'New item' => 'آیتم جدید',
'original' => 'اصلی',
// label for value '' in enum data type
'empty' => 'خالی',
'edit' => 'ویرایش',
'Edit' => 'ویرایش',
'Insert' => 'درج',
'Save' => 'ذخیره',
'Save and continue edit' => 'ذخیره و ادامه ویرایش',
'Save and insert next' => 'ذخیره و درج بعدی',
'Selected' => 'انتخاب شده',
'Clone' => 'تکثیر',
'Delete' => 'حذف',
'You have no privileges to update this table.' => 'شما اختیار ویرایش این جدول را ندارید.',
'E-mail' => 'پست الکترونیک',
'From' => 'فرستنده',
'Subject' => 'موضوع',
'Attachments' => 'پیوست ها',
'Send' => 'ارسال',
'%d e-mail(s) have been sent.' => array('%d ایمیل ارسال شد.', '%d ایمیل ارسال شد.'),
// data type descriptions
'Numbers' => 'اعداد',
'Date and time' => 'تاریخ و زمان',
'Strings' => 'رشته ها',
'Binary' => 'دودویی',
'Lists' => 'لیستها',
'Network' => 'شبکه',
'Geometry' => 'هندسه',
'Relations' => 'رابطه ها',
'Editor' => 'ویرایشگر',
// date format in Editor: $1 yyyy, $2 yy, $3 mm, $4 m, $5 dd, $6 d
'$1-$3-$5' => '$1-$3-$5',
// hint for date format - use language equivalents for day, month and year shortcuts
'[yyyy]-mm-dd' => '[yyyy]-mm-dd',
// hint for time format - use language equivalents for hour, minute and second shortcuts
'HH:MM:SS' => 'HH:MM:SS',
'now' => 'اکنون',
'yes' => 'بله',
'no' => 'خیر',
// general SQLite error in create, drop or rename database
'File exists.' => 'فایل موجود است.',
'Please use one of the extensions %s.' => 'لطفا یکی از پسوندها را انتخاب نمائید %s.',
// PostgreSQL and MS SQL schema support
'Alter schema' => 'ویرایش ساختار',
'Create schema' => 'ایجاد ساختار',
'Schema has been dropped.' => 'ساختار حذف شد.',
'Schema has been created.' => 'ساختار ایجاد شد.',
'Schema has been altered.' => 'ساختار ویرایش شد.',
'Schema' => 'ساختار',
'Invalid schema.' => 'ساختار نامعتبر.',
// PostgreSQL sequences support
'Sequences' => 'صف ها',
'Create sequence' => 'ایجاد صف',
'Sequence has been dropped.' => 'صف حذف شد.',
'Sequence has been created.' => 'صف ایجاد شد.',
'Sequence has been altered.' => 'صف ویرایش شد.',
'Alter sequence' => 'ویرایش صف',
// PostgreSQL user types support
'User types' => 'انواع کاربر',
'Create type' => 'ایجاد نوع',
'Type has been dropped.' => 'نوع حذف شد.',
'Type has been created.' => 'نوع ایجاد شد.',
'Alter type' => 'ویرایش نوع',
'Drop %s?' => null,
'as a regular expression' => null,
'overwrite' => null,
'DB' => null,
'Copy to clipboard' => null,
'ATTACH queries are not supported.' => null,
'Warnings' => null,
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null,
'There is a space in the input password which might be the cause.' => null,
'If you did not send this request from Adminer then close this page.' => null,
'Saving' => null,
'Unknown error.' => null,
'Database does not support password.' => null,
'Disable %s or enable %s or %s extensions.' => null,
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'A newer version of AdminerEvo is available, download it now!' => null,
);

View file

@ -1,355 +0,0 @@
<?php
$translations = array(
// label for database system selection (MySQL, SQLite, ...)
'System' => 'Järjestelmä',
'Server' => 'Palvelin',
'Username' => 'Käyttäjänimi',
'Password' => 'Salasana',
'Permanent login' => 'Haluan pysyä kirjautuneena',
'Login' => 'Kirjaudu',
'Logout' => 'Kirjaudu ulos',
'Logged as: %s' => 'Olet kirjautunut käyttäjänä: %s',
'Logout successful.' => 'Uloskirjautuminen onnistui.',
'Invalid server or credentials.' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array('Liian monta epäonnistunutta sisäänkirjautumisyritystä, kokeile uudestaan %d minuutin kuluttua.', 'Liian monta epäonnistunutta sisäänkirjautumisyritystä, kokeile uudestaan %d minuutin kuluttua.'),
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Master-salasana ei ole enää voimassa. <a href="https://www.adminer.org/en/extension/"%s>Toteuta</a> %s-metodi sen tekemiseksi pysyväksi.',
'Language' => 'Kieli',
'Invalid CSRF token. Send the form again.' => 'Virheellinen CSRF-vastamerkki. Lähetä lomake uudelleen.',
'If you did not send this request from Adminer then close this page.' => 'Jollet lähettänyt tämä pyyntö Adminerista, sulje tämä sivu.',
'No extension' => 'Ei laajennusta',
'None of the supported PHP extensions (%s) are available.' => 'Mitään tuetuista PHP-laajennuksista (%s) ei ole käytettävissä.',
'Session support must be enabled.' => 'Istuntotuki on oltava päällä.',
'Session expired, please login again.' => 'Istunto vanhentunut, kirjaudu uudelleen.',
'%s version: %s through PHP extension %s' => '%s versio: %s PHP-laajennuksella %s',
'Refresh' => 'Virkistä',
// text direction - 'ltr' or 'rtl'
'ltr' => 'ltr',
'Privileges' => 'Oikeudet',
'Create user' => 'Luo käyttäjä',
'User has been dropped.' => 'Käyttäjä poistettiin.',
'User has been altered.' => 'Käyttäjää muutettiin.',
'User has been created.' => 'Käyttäjä luotiin.',
'Hashed' => 'Hashed',
'Column' => 'Sarake',
'Routine' => 'Rutiini',
'Grant' => 'Myönnä',
'Revoke' => 'Kiellä',
'Process list' => 'Prosessilista',
'%d process(es) have been killed.' => array('%d prosessi lopetettu.', '%d prosessia lopetettu..'),
'Kill' => 'Lopeta',
'Variables' => 'Muuttujat',
'Status' => 'Tila',
'SQL command' => 'SQL-komento',
'%d query(s) executed OK.' => array('%d kysely onnistui.', '%d kyselyä onnistui.'),
'Query executed OK, %d row(s) affected.' => array('Kysely onnistui, kohdistui %d riviin.', 'Kysely onnistui, kohdistui %d riviin.'),
'No commands to execute.' => 'Ei komentoja suoritettavana.',
'Error in query' => 'Virhe kyselyssä',
'Execute' => 'Suorita',
'Stop on error' => 'Pysähdy virheeseen',
'Show only errors' => 'Näytä vain virheet',
// sprintf() format for time of the command
'%.3f s' => '%.3f s',
'History' => 'Historia',
'Clear' => 'Tyhjennä',
'Edit all' => 'Muokkaa kaikkia',
'File upload' => 'Tiedoston lataus palvelimelle',
'From server' => 'Verkkopalvelimella Adminer-kansiossa oleva tiedosto',
'Webserver file %s' => 'Verkkopalvelintiedosto %s',
'Run file' => 'Suorita tämä',
'File does not exist.' => 'Tiedostoa ei ole.',
'File uploads are disabled.' => 'Tiedostojen lataaminen palvelimelle on estetty.',
'Unable to upload a file.' => 'Tiedostoa ei voida ladata palvelimelle.',
'Maximum allowed file size is %sB.' => 'Suurin sallittu tiedostokoko on %sB.',
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'Liian suuri POST-datamäärä. Pienennä dataa tai kasvata arvoa %s konfigurointitiedostossa.',
'You can upload a big SQL file via FTP and import it from server.' => 'Voit ladata suuren SQL-tiedoston FTP:n kautta ja tuoda sen sitten palvelimelta.',
'You are offline.' => 'Olet offline-tilassa.',
'Export' => 'Vienti',
'Output' => 'Tulos',
'open' => 'avaa',
'save' => 'tallenna',
'Saving' => 'Tallennetaan',
'Format' => 'Muoto',
'Data' => 'Data',
'Database' => 'Tietokanta',
'database' => 'tietokanta',
'Use' => 'Käytä',
'Select database' => 'Valitse tietokanta',
'Invalid database.' => 'Tietokanta ei kelpaa.',
'Database has been dropped.' => 'Tietokanta on poistettu.',
'Databases have been dropped.' => 'Tietokannat on poistettu.',
'Database has been created.' => 'Tietokanta on luotu.',
'Database has been renamed.' => 'Tietokanta on nimetty uudelleen.',
'Database has been altered.' => 'Tietokantaa on muutettu.',
'Alter database' => 'Muuta tietokantaa',
'Create database' => 'Luo tietokanta',
'Database schema' => 'Tietokantakaava',
// link to current database schema layout
'Permanent link' => 'Pysyvä linkki',
// thousands separator - must contain single byte
',' => ',',
'0123456789' => '0123456789',
'Engine' => 'Moottori',
'Collation' => 'Kollaatio',
'Data Length' => 'Datan pituus',
'Index Length' => 'Indeksin pituus',
'Data Free' => 'Vapaa tila',
'Rows' => 'Riviä',
'%d in total' => '%d kaikkiaan',
'Analyze' => 'Analysoi',
'Optimize' => 'Optimoi',
'Vacuum' => 'Siivoa',
'Check' => 'Tarkista',
'Repair' => 'Korjaa',
'Truncate' => 'Tyhjennä',
'Tables have been truncated.' => 'Taulujen sisältö on tyhjennetty.',
'Move to other database' => 'Siirrä toiseen tietokantaan',
'Move' => 'Siirrä',
'Tables have been moved.' => 'Taulut on siirretty.',
'Copy' => 'Kopioi',
'Tables have been copied.' => 'Taulut on kopioitu.',
'Routines' => 'Rutiinit',
'Routine has been called, %d row(s) affected.' => array('Rutiini kutsuttu, kohdistui %d riviin.', 'Rutiini kutsuttu, kohdistui %d riviin.'),
'Call' => 'Kutsua',
'Parameter name' => 'Parametrin nimi',
'Create procedure' => 'Luo proseduuri',
'Create function' => 'Luo funktio',
'Routine has been dropped.' => 'Rutiini on poistettu.',
'Routine has been altered.' => 'Rutiinia on muutettu.',
'Routine has been created.' => 'Rutiini on luotu.',
'Alter function' => 'Muuta funktiota',
'Alter procedure' => 'Muuta proseduuria',
'Return type' => 'Palautustyyppi',
'Events' => 'Tapahtumat',
'Event has been dropped.' => 'Tapahtuma on poistettu.',
'Event has been altered.' => 'Tapahtumaa on muutettu.',
'Event has been created.' => 'Tapahtuma on luotu.',
'Alter event' => 'Muuta tapahtumaa',
'Create event' => 'Luo tapahtuma',
'At given time' => 'Tiettynä aikana',
'Every' => 'Joka',
'Schedule' => 'Aikataulu',
'Start' => 'Aloitus',
'End' => 'Lopetus',
'On completion preserve' => 'Säilytä, kun valmis',
'Tables' => 'Taulut',
'Tables and views' => 'Taulut ja näkymät',
'Table' => 'Taulu',
'No tables.' => 'Ei tauluja.',
'Alter table' => 'Muuta taulua',
'Create table' => 'Luo taulu',
'Table has been dropped.' => 'Taulu on poistettu.',
'Tables have been dropped.' => 'Tauluja on poistettu.',
'Tables have been optimized.' => 'Taulut on optimoitu.',
'Table has been altered.' => 'Taulua on muutettu.',
'Table has been created.' => 'Taulu on luotu.',
'Table name' => 'Taulun nimi',
'Show structure' => 'Näytä rakenne',
'engine' => 'moottori',
'collation' => 'kollaatio',
'Column name' => 'Sarakkeen nimi',
'Type' => 'Tyyppi',
'Length' => 'Pituus',
'Auto Increment' => 'Automaattinen lisäys',
'Options' => 'Asetukset',
'Comment' => 'Kommentit',
'Default value' => 'Oletusarvo',
'Default values' => 'Oletusarvot',
'Drop' => 'Poista',
'Are you sure?' => 'Oletko varma?',
'Size' => 'Koko',
'Compute' => 'Laske',
'Move up' => 'Siirrä ylös',
'Move down' => 'Siirrä alas',
'Remove' => 'Poista',
'Maximum number of allowed fields exceeded. Please increase %s.' => 'Kenttien sallittu enimmäismäärä ylitetty. Kasvata arvoa %s.',
'Partition by' => 'Osioi arvolla',
'Partitions' => 'Osiot',
'Partition name' => 'Osion nimi',
'Values' => 'Arvot',
'View' => 'Näkymä',
'Materialized view' => 'Materialisoitunut näkymä',
'View has been dropped.' => 'Näkymä on poistettu.',
'View has been altered.' => 'Näkymää on muutettu.',
'View has been created.' => 'Näkymä on luotu.',
'Alter view' => 'Muuta näkymää',
'Create view' => 'Luo näkymä',
'Indexes' => 'Indeksit',
'Indexes have been altered.' => 'Indeksejä on muutettu.',
'Alter indexes' => 'Muuta indeksejä',
'Add next' => 'Lisää seuraava',
'Index Type' => 'Indeksityyppi',
'Column (length)' => 'Sarake (pituus)',
'Foreign keys' => 'Vieraat avaimet',
'Foreign key' => 'Vieras avain',
'Foreign key has been dropped.' => 'Vieras avain on poistettu.',
'Foreign key has been altered.' => 'Vierasta avainta on muutettu.',
'Foreign key has been created.' => 'Vieras avain on luotu.',
'Target table' => 'Kohdetaulu',
'Change' => 'Muuta',
'Source' => 'Lähde',
'Target' => 'Kohde',
'Add column' => 'Lisää sarake',
'Alter' => 'Muuta',
'Add foreign key' => 'Lisää vieras avain',
'ON DELETE' => 'ON DELETE',
'ON UPDATE' => 'ON UPDATE',
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'Lähde- ja kohdesarakkeiden tulee olla samaa tietotyyppiä, kohdesarakkeisiin tulee olla indeksi ja dataa, johon viitataan, täytyy olla.',
'Triggers' => 'Liipaisimet',
'Add trigger' => 'Lisää liipaisin',
'Trigger has been dropped.' => 'Liipaisin on poistettu.',
'Trigger has been altered.' => 'Liipaisinta on muutettu.',
'Trigger has been created.' => 'Liipaisin on luotu.',
'Alter trigger' => 'Muuta liipaisinta',
'Create trigger' => 'Luo liipaisin',
'Time' => 'Aika',
'Event' => 'Tapahtuma',
'Name' => 'Nimi',
'select' => 'valitse',
'Select' => 'Valitse',
'Select data' => 'Valitse data',
'Functions' => 'Funktiot',
'Aggregation' => 'Aggregaatiot',
'Search' => 'Hae',
'anywhere' => 'kaikkialta',
'Search data in tables' => 'Hae dataa tauluista',
'Sort' => 'Lajittele',
'descending' => 'alenevasti',
'Limit' => 'Raja',
'Limit rows' => 'Rajoita rivimäärää',
'Text length' => 'Tekstin pituus',
'Action' => 'Toimenpide',
'Full table scan' => 'Koko taulun läpikäynti',
'Unable to select the table' => 'Taulua ei voitu valita',
'No rows.' => 'Ei rivejä.',
'%d / ' => '%d / ',
'%d row(s)' => array('%d rivi', '%d riviä'),
'Page' => 'Sivu',
'last' => 'viimeinen',
'Load more data' => 'Lataa lisää dataa',
'Loading' => 'Ladataan',
'Whole result' => 'Koko tulos',
'%d byte(s)' => array('%d tavu', '%d tavua'),
'Import' => 'Tuonti',
'%d row(s) have been imported.' => array('%d rivi tuotiin.', '%d riviä tuotiin.'),
'File must be in UTF-8 encoding.' => 'Tiedoston täytyy olla UTF-8-muodossa.',
// in-place editing in select
'Modify' => 'Muuta',
'Ctrl+click on a value to modify it.' => 'Ctrl+napsauta arvoa muuttaaksesi.',
'Use edit link to modify this value.' => 'Käytä muokkaa-linkkiä muuttaaksesi tätä arvoa.',
// %s can contain auto-increment value
'Item%s has been inserted.' => 'Tietue%s lisättiin.',
'Item has been deleted.' => 'Tietue poistettiin.',
'Item has been updated.' => 'Tietue päivitettiin.',
'%d item(s) have been affected.' => array('Kohdistui %d tietueeseen.', 'Kohdistui %d tietueeseen.'),
'New item' => 'Uusi tietue',
'original' => 'alkuperäinen',
// label for value '' in enum data type
'empty' => 'tyhjä',
'edit' => 'muokkaa',
'Edit' => 'Muokkaa',
'Insert' => 'Lisää',
'Save' => 'Tallenna',
'Save and continue edit' => 'Tallenna ja jatka muokkaamista',
'Save and insert next' => 'Tallenna ja lisää seuraava',
'Selected' => 'Valitut',
'Clone' => 'Kloonaa',
'Delete' => 'Poista',
'You have no privileges to update this table.' => 'Sinulla ei ole oikeutta päivittää tätä taulua.',
'E-mail' => 'S-posti',
'From' => 'Lähettäjä',
'Subject' => 'Aihe',
'Attachments' => 'Liitteet',
'Send' => 'Lähetä',
'%d e-mail(s) have been sent.' => array('% sähköpostiviestiä lähetetty.', '% sähköpostiviestiä lähetetty.'),
// data type descriptions
'Numbers' => 'Numerot',
'Date and time' => 'Päiväys ja aika',
'Strings' => 'Merkkijonot',
'Binary' => 'Binäärinen',
'Lists' => 'Luettelot',
'Network' => 'Verkko',
'Geometry' => 'Geometria',
'Relations' => 'Suhteet',
'Editor' => 'Editori',
// date format in Editor: $1 yyyy, $2 yy, $3 mm, $4 m, $5 dd, $6 d
'$1-$3-$5' => '$5.$3.$1',
// hint for date format - use language equivalents for day, month and year shortcuts
'[yyyy]-mm-dd' => 'pp.kk.[vvvv]',
// hint for time format - use language equivalents for hour, minute and second shortcuts
'HH:MM:SS' => 'HH:MM:SS',
'now' => 'nyt',
'yes' => 'kyllä',
'no' => 'ei',
// general SQLite error in create, drop or rename database
'File exists.' => 'Tiedosto on olemassa.',
'Please use one of the extensions %s.' => 'Käytä jotain %s-laajennuksista.',
// PostgreSQL and MS SQL schema support
'Alter schema' => 'Muuta kaavaa',
'Create schema' => 'Luo kaava',
'Schema has been dropped.' => 'Kaava poistettiin.',
'Schema has been created.' => 'Kaava luotiin.',
'Schema has been altered.' => 'Kaavaa muutettiin.',
'Schema' => 'Kaava',
'Invalid schema.' => 'Kaava ei kelpaa.',
// PostgreSQL sequences support
'Sequences' => 'Sekvenssit',
'Create sequence' => 'Luo sekvenssi',
'Sequence has been dropped.' => 'Sekvenssi on poistettu.',
'Sequence has been created.' => 'Sekvenssi on luotu.',
'Sequence has been altered.' => 'Sekvenssiä on muutettu.',
'Alter sequence' => 'Muuta sekvenssiä',
// PostgreSQL user types support
'User types' => 'Käyttäjän tyypit',
'Create type' => 'Luo tyyppi',
'Type has been dropped.' => 'Tyyppi poistettiin.',
'Type has been created.' => 'Tyyppi luotiin.',
'Alter type' => 'Muuta tyyppiä',
'Drop %s?' => 'Poistetaanko %s?',
'overwrite' => 'kirjoittaen päälle',
'DB' => 'TK',
'ATTACH queries are not supported.' => 'ATTACH-komennolla tehtyjä kyselyjä ei tueta.',
'Warnings' => 'Varoitukset',
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Adminer ei tue pääsyä tietokantaan ilman salasanaa, katso tarkemmin <a href="https://www.adminer.org/en/password/"%s>täältä</a>.',
'The action will be performed after successful login with the same credentials.' => 'Toiminto suoritetaan sen jälkeen, kun on onnistuttu kirjautumaan samoilla käyttäjätunnuksilla uudestaan.',
'Connecting to privileged ports is not allowed.' => 'Yhteydet etuoikeutettuihin portteihin eivät ole sallittuja.',
'There is a space in the input password which might be the cause.' => 'Syynä voi olla syötetyssä salasanassa oleva välilyönti.',
'Unknown error.' => 'Tuntematon virhe.',
'Database does not support password.' => 'Tietokanta ei tue salasanaa.',
'Disable %s or enable %s or %s extensions.' => 'Poista käytöstä %s tai ota käyttöön laajennus %s tai %s.',
'as a regular expression' => null,
'Copy to clipboard' => null,
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'A newer version of AdminerEvo is available, download it now!' => null,
);

View file

@ -1,310 +0,0 @@
<?php
$translations = array(
'Login' => 'Authentification',
'Logout successful.' => 'Au revoir !',
'Invalid server or credentials.' => null,
'Server' => 'Serveur',
'Username' => 'Utilisateur',
'Password' => 'Mot de passe',
'Select database' => 'Sélectionner la base de données',
'Invalid database.' => 'Base de données invalide.',
'Table has been dropped.' => 'La table a été effacée.',
'Table has been altered.' => 'La table a été modifiée.',
'Table has been created.' => 'La table a été créée.',
'Alter table' => 'Modifier la table',
'Create table' => 'Créer une table',
'Table name' => 'Nom de la table',
'engine' => 'moteur',
'collation' => 'interclassement',
'Column name' => 'Nom de la colonne',
'Type' => 'Type',
'Length' => 'Longueur',
'Auto Increment' => 'Incrément automatique',
'Options' => 'Options',
'Save' => 'Enregistrer',
'Drop' => 'Supprimer',
'Database has been created.' => 'La base de données a été créée.',
'Database has been renamed.' => 'La base de données a été renommée.',
'Database has been altered.' => 'La base de données a été modifiée.',
'Alter database' => 'Modifier la base de données',
'Create database' => 'Créer une base de données',
'SQL command' => 'Requête SQL',
'Logout' => 'Déconnexion',
'database' => 'base de données',
'Use' => 'Utiliser',
'No tables.' => 'Aucune table.',
'select' => 'select',
'Item has been deleted.' => 'L\'élément a été supprimé.',
'Item has been updated.' => 'L\'élément a été modifié.',
'Edit' => 'Modifier',
'Insert' => 'Insérer',
'Save and insert next' => 'Enr. et insérer prochain',
'Delete' => 'Effacer',
'Database' => 'Base de données',
'Routines' => 'Routines',
'Indexes have been altered.' => 'Index modifiés.',
'Indexes' => 'Index',
'Alter indexes' => 'Modifier les index',
'Add next' => 'Ajouter le prochain',
'Language' => 'Langue',
'Select' => 'Sélectionner',
'New item' => 'Nouvel élément',
'Search' => 'Rechercher',
'Sort' => 'Trier',
'descending' => 'décroissant',
'Limit' => 'Limite',
'No rows.' => 'Aucun résultat.',
'Action' => 'Action',
'edit' => 'modifier',
'Page' => 'Page',
'Query executed OK, %d row(s) affected.' => array('Requête exécutée avec succès, %d ligne modifiée.', 'Requête exécutée avec succès, %d lignes modifiées.'),
'Error in query' => 'Erreur dans la requête',
'Execute' => 'Exécuter',
'Table' => 'Table',
'Foreign keys' => 'Clés étrangères',
'Triggers' => 'Déclencheurs',
'View' => 'Vue',
'Unable to select the table' => 'Impossible de sélectionner la table',
'Invalid CSRF token. Send the form again.' => 'Token CSRF invalide. Veuillez renvoyer le formulaire.',
'Comment' => 'Commentaire',
'Default values' => 'Valeurs par défaut',
'%d byte(s)' => array('%d octet', '%d octets'),
'No commands to execute.' => 'Aucune commande à exécuter.',
'Unable to upload a file.' => 'Impossible d\'importer le fichier.',
'File upload' => 'Importer un fichier',
'File uploads are disabled.' => 'L\'importation de fichier est désactivée.',
'Routine has been called, %d row(s) affected.' => array('La routine a été exécutée, %d ligne modifiée.', 'La routine a été exécutée, %d lignes modifiées.'),
'Call' => 'Appeler',
'No extension' => 'Extension introuvable',
'None of the supported PHP extensions (%s) are available.' => 'Aucune des extensions PHP supportées (%s) n\'est disponible.',
'Session support must be enabled.' => 'Veuillez activer les sessions.',
'Session expired, please login again.' => 'Session expirée, veuillez vous authentifier à nouveau.',
'Text length' => 'Longueur du texte',
'Foreign key has been dropped.' => 'La clé étrangère a été effacée.',
'Foreign key has been altered.' => 'La clé étrangère a été modifiée.',
'Foreign key has been created.' => 'La clé étrangère a été créée.',
'Foreign key' => 'Clé étrangère',
'Target table' => 'Table visée',
'Change' => 'Modifier',
'Source' => 'Source',
'Target' => 'Cible',
'Add column' => 'Ajouter une colonne',
'Alter' => 'Modifier',
'Add foreign key' => 'Ajouter une clé étrangère',
'ON DELETE' => 'ON DELETE',
'ON UPDATE' => 'ON UPDATE',
'Index Type' => 'Type d\'index',
'Column (length)' => 'Colonne (longueur)',
'View has been dropped.' => 'La vue a été effacée.',
'View has been altered.' => 'La vue a été modifiée.',
'View has been created.' => 'La vue a été créée.',
'Alter view' => 'Modifier une vue',
'Create view' => 'Créer une vue',
'Name' => 'Nom',
'Process list' => 'Liste des processus',
'%d process(es) have been killed.' => array('%d processus a été arrêté.', '%d processus ont été arrêtés.'),
'Kill' => 'Arrêter',
'Parameter name' => 'Nom du paramètre',
'Database schema' => 'Schéma de la base de données',
'Create procedure' => 'Créer une procédure',
'Create function' => 'Créer une fonction',
'Routine has been dropped.' => 'La routine a été supprimée.',
'Routine has been altered.' => 'La routine a été modifiée.',
'Routine has been created.' => 'La routine a été créée.',
'Alter function' => 'Modifier la fonction',
'Alter procedure' => 'Modifier la procédure',
'Return type' => 'Type de retour',
'Add trigger' => 'Ajouter un déclencheur',
'Trigger has been dropped.' => 'Le déclencheur a été supprimé.',
'Trigger has been altered.' => 'Le déclencheur a été modifié.',
'Trigger has been created.' => 'Le déclencheur a été créé.',
'Alter trigger' => 'Modifier un déclencheur',
'Create trigger' => 'Ajouter un déclencheur',
'Time' => 'Temps',
'Event' => 'Évènement',
'%d row(s)' => array('%d ligne', '%d lignes'),
'Remove' => 'Effacer',
'Are you sure?' => 'Êtes-vous certain(e) ?',
'Privileges' => 'Privilèges',
'Create user' => 'Créer un utilisateur',
'User has been dropped.' => 'L\'utilisateur a été effacé.',
'User has been altered.' => 'L\'utilisateur a été modifié.',
'User has been created.' => 'L\'utilisateur a été créé.',
'Hashed' => 'Haché',
'Column' => 'Colonne',
'Routine' => 'Routine',
'Grant' => 'Grant',
'Revoke' => 'Revoke',
'%s version: %s through PHP extension %s' => 'Version de %s : %s via l\'extension PHP %s',
'Logged as: %s' => 'Authentifié en tant que : %s',
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'Données POST trop grandes. Réduisez la taille des données ou augmentez la valeur de %s dans la configuration de PHP.',
'Move up' => 'Déplacer vers le haut',
'Move down' => 'Déplacer vers le bas',
'Export' => 'Exporter',
'Tables' => 'Tables',
'Data' => 'Données',
'Output' => 'Sortie',
'open' => 'ouvrir',
'save' => 'enregistrer',
'Format' => 'Format',
'Functions' => 'Fonctions',
'Aggregation' => 'Agrégation',
'Event has been dropped.' => 'L\'évènement a été supprimé.',
'Event has been altered.' => 'L\'évènement a été modifié.',
'Event has been created.' => 'L\'évènement a été créé.',
'Alter event' => 'Modifier un évènement',
'Create event' => 'Créer un évènement',
'Start' => 'Démarrer',
'End' => 'Terminer',
'Every' => 'Chaque',
'Status' => 'Statut',
'On completion preserve' => 'Conserver quand complété',
'Events' => 'Évènements',
'Schedule' => 'Horaire',
'At given time' => 'À un moment précis',
'Save and continue edit' => 'Enr. et continuer édition',
'original' => 'original',
'Tables have been truncated.' => 'Les tables ont été tronquées.',
'Tables have been moved.' => 'Les tables ont été déplacées.',
'Tables have been dropped.' => 'Les tables ont été effacées.',
'Tables and views' => 'Tables et vues',
'Engine' => 'Moteur',
'Collation' => 'Interclassement',
'Data Length' => 'Longueur des données',
'Index Length' => 'Longueur de l\'index',
'Data Free' => 'Espace inutilisé',
'Rows' => 'Lignes',
',' => ',',
'0123456789' => '0123456789',
'Analyze' => 'Analyser',
'Optimize' => 'Optimiser',
'Check' => 'Vérifier',
'Repair' => 'Réparer',
'Truncate' => 'Tronquer',
'Move to other database' => 'Déplacer vers une autre base de données',
'Move' => 'Déplacer',
'%d item(s) have been affected.' => array('%d élément a été modifié.', '%d éléments ont été modifiés.'),
'Whole result' => 'Résultat entier',
'Clone' => 'Cloner',
'Maximum number of allowed fields exceeded. Please increase %s.' => 'Le nombre maximum de champs est dépassé. Veuillez augmenter %s.',
'Partition by' => 'Partitionner par',
'Partitions' => 'Partitions',
'Partition name' => 'Nom de la partition',
'Values' => 'Valeurs',
'%d row(s) have been imported.' => array('%d ligne a été importée.', '%d lignes ont été importées.'),
'anywhere' => 'n\'importe où',
'Import' => 'Importer',
'Stop on error' => 'Arrêter en cas d\'erreur',
'%.3f s' => '%.3f s',
'$1-$3-$5' => '$5/$3/$1',
'[yyyy]-mm-dd' => 'jj/mm/[aaaa]',
'History' => 'Historique',
'Variables' => 'Variables',
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'Les colonnes de source et de destination doivent être du même type, il doit y avoir un index sur les colonnes de destination et les données référencées doivent exister.',
'Relations' => 'Relations',
'Run file' => 'Exécuter le fichier',
'Clear' => 'Effacer',
'Maximum allowed file size is %sB.' => 'La taille maximale des fichiers est de %sB.',
'Numbers' => 'Nombres',
'Date and time' => 'Date et heure',
'Strings' => 'Chaînes',
'Binary' => 'Binaires',
'Lists' => 'Listes',
'Editor' => 'Éditeur',
'E-mail' => 'Courriel',
'From' => 'De',
'Subject' => 'Sujet',
'Send' => 'Envoyer',
'%d e-mail(s) have been sent.' => array('%d message a été envoyé.', '%d messages ont été envoyés.'),
'Webserver file %s' => 'Fichier %s du serveur Web',
'File does not exist.' => 'Le fichier est introuvable.',
'%d in total' => '%d au total',
'Permanent login' => 'Authentification permanente',
'Databases have been dropped.' => 'Les bases de données ont été supprimées.',
'Database has been dropped.' => 'La base de données a été supprimée.',
'Search data in tables' => 'Rechercher dans les tables',
'Schema' => 'Schéma',
'Alter schema' => 'Modifier le schéma',
'Create schema' => 'Créer un schéma',
'Schema has been dropped.' => 'Le schéma a été supprimé.',
'Schema has been created.' => 'Le schéma a été créé.',
'Schema has been altered.' => 'Le schéma a été modifié.',
'Sequences' => 'Séquences',
'Create sequence' => 'Créer une séquence',
'Alter sequence' => 'Modifier la séquence',
'Sequence has been dropped.' => 'La séquence a été supprimée.',
'Sequence has been created.' => 'La séquence a été créée.',
'Sequence has been altered.' => 'La séquence a été modifiée.',
'User types' => 'Types utilisateur',
'Create type' => 'Créer un type',
'Alter type' => 'Modifier le type',
'Type has been dropped.' => 'Le type a été supprimé.',
'Type has been created.' => 'Le type a été créé.',
'Ctrl+click on a value to modify it.' => 'Ctrl+cliquez sur une valeur pour la modifier.',
'Use edit link to modify this value.' => 'Utilisez le lien "modifier" pour modifier cette valeur.',
'last' => 'dernière',
'From server' => 'Depuis le serveur',
'System' => 'Système',
'Select data' => 'Afficher les données',
'Show structure' => 'Afficher la structure',
'empty' => 'vide',
'Network' => 'Réseau',
'Geometry' => 'Géométrie',
'File exists.' => 'Le fichier existe.',
'Attachments' => 'Pièces jointes',
'Item%s has been inserted.' => 'L\'élément%s a été inséré.',
'now' => 'maintenant',
'%d query(s) executed OK.' => array('%d requête exécutée avec succès.', '%d requêtes exécutées avec succès.'),
'Show only errors' => 'Montrer seulement les erreurs',
'Refresh' => 'Rafraîchir',
'Invalid schema.' => 'Schéma invalide.',
'Please use one of the extensions %s.' => 'Veuillez utiliser l\'une des extensions %s.',
'ltr' => 'ltr',
'Tables have been copied.' => 'Les tables ont été copiées.',
'Copy' => 'Copier',
'Permanent link' => 'Lien permanent',
'Edit all' => 'Tout modifier',
'HH:MM:SS' => 'HH:MM:SS',
'Selected' => 'Sélectionnée(s)',
'Modify' => 'Modification',
'Load more data' => 'Charger plus de données',
'Loading' => 'Chargement',
'Tables have been optimized.' => 'Les tables ont bien été optimisées.',
'Vacuum' => 'Vide',
'File must be in UTF-8 encoding.' => 'Les fichiers doivent être encodés en UTF-8.',
'Full table scan' => 'Scan de toute la table',
'Too many unsuccessful logins, try again in %d minute(s).' => array('Trop de connexions échouées, essayez à nouveau dans %d minute.', 'Trop de connexions échouées, essayez à nouveau dans %d minutes.'),
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Le mot de passe a expiré. <a href="https://www.adminer.org/en/extension/"%s>Implémentez</a> la méthode %s afin de le rendre permanent.',
'You can upload a big SQL file via FTP and import it from server.' => 'Vous pouvez uploader un gros fichier SQL par FTP et ensuite l\'importer depuis le serveur.',
'Size' => 'Taille',
'Compute' => 'Calcul',
'You have no privileges to update this table.' => 'Vous n\'avez pas les droits pour mettre à jour cette table.',
'Saving' => 'Enregistrement',
'yes' => 'oui',
'no' => 'non',
'Materialized view' => 'Vue matérialisée',
'%d / ' => '%d / ',
'Limit rows' => 'Limiter les lignes',
'Default value' => 'Valeur par défaut',
'If you did not send this request from Adminer then close this page.' => 'Si vous n\'avez pas envoyé cette requête depuis Adminer, alors fermez cette page.',
'You are offline.' => 'Vous êtes hors ligne.',
'Drop %s?' => 'Supprimer %s?',
'as a regular expression' => 'sous forme d\'expression régulière',
'overwrite' => 'écraser',
'DB' => 'BD',
'Copy to clipboard' => 'Copier dans le presse-papiers',
'ATTACH queries are not supported.' => 'Requêtes ATTACH ne sont pas supportées.',
'Warnings' => 'Avertissements',
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Adminer ne supporte pas l\'accès aux bases de données sans mot de passe, <a href="https://www.adminer.org/en/password/"%s>plus d\'information</a>.',
'The action will be performed after successful login with the same credentials.' => 'Cette action sera exécutée après s\'être connecté avec les mêmes données de connexion.',
'Connecting to privileged ports is not allowed.' => 'La connexion aux ports privilégiés n\'est pas autorisée.',
'There is a space in the input password which might be the cause.' => 'Il y a un espace dans le mot de passe entré qui pourrait en être la cause.',
'Unknown error.' => 'Erreur inconnue',
'Database does not support password.' => 'La base de données ne support pas les mots de passe',
'Disable %s or enable %s or %s extensions.' => 'Désactiver %s ou activer %s or %s extensions.',
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'A newer version of AdminerEvo is available, download it now!' => null,
);

View file

@ -1,310 +0,0 @@
<?php
$translations = array(
'Login' => 'Conectar',
'Logout successful.' => 'Pechouse a sesión con éxito.',
'Invalid server or credentials.' => null,
'Server' => 'Servidor',
'Username' => 'Usuario',
'Password' => 'Contrasinal',
'Select database' => 'Seleccionar Base de datos',
'Invalid database.' => 'Base de datos incorrecta.',
'Table has been dropped.' => 'Eliminouse a táboa.',
'Table has been altered.' => 'Modificouse a táboa.',
'Table has been created.' => 'Creouse a táboa.',
'Alter table' => 'Modificar táboa',
'Create table' => 'Crear táboa',
'Table name' => 'Nome da táboa',
'engine' => 'motor',
'collation' => 'xogo de caracteres (collation)',
'Column name' => 'Nome da columna',
'Type' => 'Tipo',
'Length' => 'Lonxitude',
'Auto Increment' => 'Incremento automático',
'Options' => 'Opcións',
'Save' => 'Gardar',
'Drop' => 'Eliminar',
'Database has been dropped.' => 'Eliminouse a base de datos.',
'Database has been created.' => 'Creouse a base de datos.',
'Database has been renamed.' => 'Renomeouse a base de datos.',
'Database has been altered.' => 'Modificouse a base de datos.',
'Alter database' => 'Modificar Base de datos',
'Create database' => 'Crear Base de datos',
'SQL command' => 'Comando SQL',
'Logout' => 'Pechar sesión',
'database' => 'base de datos',
'Use' => 'Usar',
'No tables.' => 'Nengunha táboa.',
'select' => 'selecciona',
'Item has been deleted.' => 'Eliminouse o elemento.',
'Item has been updated.' => 'Modificouse o elemento.',
'Item%s has been inserted.' => 'Inseríuse o elemento%s.',
'Edit' => 'Editar',
'Insert' => 'Inserir',
'Save and insert next' => 'Guardar e inserir seguinte',
'Delete' => 'Borrar',
'Database' => 'Base de datos',
'Routines' => 'Rutinas',
'Indexes have been altered.' => 'Alteráronse os índices.',
'Indexes' => 'Índices',
'Alter indexes' => 'Modificar índices',
'Add next' => 'Engadir seguinte',
'Language' => 'Lingua',
'Select' => 'Seleccionar',
'New item' => 'Novo elemento',
'Search' => 'Buscar',
'Sort' => 'Ordenar',
'descending' => 'descendente',
'Limit' => 'Límite',
'No rows.' => 'Nengún resultado.',
'Action' => 'Acción',
'edit' => 'editar',
'Page' => 'Páxina',
'Query executed OK, %d row(s) affected.' => array('Consulta executada, %d fila afectada.', 'Consulta executada, %d filas afectadas.'),
'Error in query' => 'Erro na consulta',
'Execute' => 'Executar',
'Table' => 'Táboa',
'Foreign keys' => 'Chaves externas',
'Triggers' => 'Disparadores',
'View' => 'Vista',
'Unable to select the table' => 'No é posible seleccionar a táboa',
'Invalid CSRF token. Send the form again.' => 'Token CSRF inválido. Envíe de novo os datos do formulario.',
'Comment' => 'Comentario',
'Default values' => 'Valores predeterminados',
'%d byte(s)' => array('%d byte', '%d bytes'),
'No commands to execute.' => 'Non hai comandos para executar.',
'Unable to upload a file.' => 'Non é posible importar o ficheiro.',
'File upload' => 'Importar ficheiro',
'File uploads are disabled.' => 'Importación de ficheiros deshablilitada.',
'Routine has been called, %d row(s) affected.' => array('Chamouse á rutina, %d fila afectada.', 'Chamouse á rutina, %d filas afectadas.'),
'Call' => 'Chamar',
'No extension' => 'Non ten extensión',
'None of the supported PHP extensions (%s) are available.' => 'Ningunha das extensións PHP soportadas (%s) está dispoñible.',
'Session support must be enabled.' => 'As sesións deben estar habilitadas.',
'Session expired, please login again.' => 'Caducou a sesión, por favor acceda de novo.',
'Text length' => 'Lonxitud do texto',
'Foreign key has been dropped.' => 'Eliminouse a chave externa.',
'Foreign key has been altered.' => 'Modificouse a chave externa.',
'Foreign key has been created.' => 'Creouse a chave externa.',
'Foreign key' => 'Chave externa',
'Target table' => 'táboa de destino',
'Change' => 'Cambiar',
'Source' => 'Orixe',
'Target' => 'Destino',
'Add column' => 'Engadir columna',
'Alter' => 'Modificar',
'Add foreign key' => 'Engadir chave externa',
'ON DELETE' => 'AO BORRAR (ON DELETE)',
'ON UPDATE' => 'AO ACTUALIZAR (ON UPDATE)',
'Index Type' => 'Tipo de índice',
'Column (length)' => 'Columna (lonxitude)',
'View has been dropped.' => 'Eliminouse a vista.',
'View has been altered.' => 'Modificouse a vista.',
'View has been created.' => 'Creouse a vista.',
'Alter view' => 'Modificar vista',
'Create view' => 'Crear vista',
'Name' => 'Nome',
'Process list' => 'Lista de procesos',
'%d process(es) have been killed.' => array('%d proceso foi detido.', '%d procesos foron detidos.'),
'Kill' => 'Deter',
'Parameter name' => 'Nome de Parámetro',
'Database schema' => 'Esquema de base de datos',
'Create procedure' => 'Crear procedemento',
'Create function' => 'Crear función',
'Routine has been dropped.' => 'Eliminouse o procedemento.',
'Routine has been altered.' => 'Alterouse o procedemento.',
'Routine has been created.' => 'Creouse o procedemento.',
'Alter function' => 'Modificar Función',
'Alter procedure' => 'Modificar procedemento',
'Return type' => 'Tipo de valor devolto',
'Add trigger' => 'Engadir disparador',
'Trigger has been dropped.' => 'Eliminouse o disparador.',
'Trigger has been altered.' => 'Modificouse o disparador.',
'Trigger has been created.' => 'Creouse o disparador.',
'Alter trigger' => 'Modificar Disparador',
'Create trigger' => 'Crear Disparador',
'Time' => 'Tempo',
'Event' => 'Evento',
'%s version: %s through PHP extension %s' => 'Versión %s: %s a través da extensión de PHP %s',
'%d row(s)' => array('%d fila', '%d filas'),
'Remove' => 'Eliminar',
'Are you sure?' => 'Está seguro?',
'Privileges' => 'Privilexios',
'Create user' => 'Crear Usuario',
'User has been dropped.' => 'Eliminouse o usuario.',
'User has been altered.' => 'Modificouse o usuario.',
'User has been created.' => 'Creouse o usuario.',
'Hashed' => 'Hashed',
'Column' => 'Columna',
'Routine' => 'Rutina',
'Grant' => 'Conceder',
'Revoke' => 'Revocar',
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'Datos POST demasiado grandes. Reduza os datos ou aumente a directiva de configuración %s.',
'Logged as: %s' => 'Conectado como: %s',
'Move up' => 'Mover arriba',
'Move down' => 'Mover abaixo',
'Functions' => 'Funcións',
'Aggregation' => 'Agregados',
'Export' => 'Exportar',
'Output' => 'Salida',
'open' => 'abrir',
'save' => 'gardar',
'Format' => 'Formato',
'Tables' => 'Táboas',
'Data' => 'Datos',
'Event has been dropped.' => 'Eliminouse o evento.',
'Event has been altered.' => 'Modificouse o evento.',
'Event has been created.' => 'Creouse o evento.',
'Alter event' => 'Modificar Evento',
'Create event' => 'Crear Evento',
'At given time' => 'No tempo indicado',
'Every' => 'Cada',
'Events' => 'Eventos',
'Schedule' => 'Axenda',
'Start' => 'Inicio',
'End' => 'Fin',
'Status' => 'Estado',
'On completion preserve' => 'Ao completar manter',
'Tables and views' => 'táboas e vistas',
'Data Length' => 'Lonxitude de datos',
'Index Length' => 'Lonxitude de índice',
'Data Free' => 'Espazo dispoñible',
'Collation' => 'Xogo de caracteres (collation)',
'Analyze' => 'Analizar',
'Optimize' => 'Optimizar',
'Check' => 'Comprobar',
'Repair' => 'Reparar',
'Truncate' => 'Baleirar',
'Tables have been truncated.' => 'Baleiráronse as táboas.',
'Rows' => 'Filas',
',' => ' ',
'0123456789' => '0123456789',
'Tables have been moved.' => 'Movéronse as táboas.',
'Move to other database' => 'Mover a outra base de datos',
'Move' => 'Mover',
'Engine' => 'Motor',
'Save and continue edit' => 'Gardar se seguir editando',
'original' => 'orixinal',
'Tables have been dropped.' => 'Elimináronse as táboas.',
'%d item(s) have been affected.' => array('%d elemento afectado.', '%d elementos afectados.'),
'Whole result' => 'Resultado completo',
'Clone' => 'Clonar',
'Maximum number of allowed fields exceeded. Please increase %s.' => 'Excedida o número máximo de campos permitidos. Por favor aumente %s.',
'Partition by' => 'Particionar por',
'Partitions' => 'Particións',
'Partition name' => 'Nome da Partición',
'Values' => 'Valores',
'%d row(s) have been imported.' => array('%d fila importada.', '%d filas importadas.'),
'anywhere' => 'onde sexa',
'Import' => 'Importar',
'Stop on error' => 'Parar en caso de erro',
'%.3f s' => '%.3f s',
'$1-$3-$5' => '$5/$3/$1',
'[yyyy]-mm-dd' => 'dd/mm/[aaaa]',
'History' => 'Histórico',
'Variables' => 'Variables',
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'As columnas de orixe e destino deben ser do mesmo tipo, debe existir un índice nas columnas de destino e os datos referenciados deben existir.',
'Relations' => 'Relacins',
'Run file' => 'Executar ficheiro',
'Clear' => 'Baleirar',
'Maximum allowed file size is %sB.' => 'O tamaño máximo de ficheiro permitido é de %sB.',
'Numbers' => 'Números',
'Date and time' => 'Data e hora',
'Strings' => 'Cadea',
'Binary' => 'Binario',
'Lists' => 'Listas',
'Editor' => 'Editor',
'E-mail' => 'Email',
'From' => 'De',
'Subject' => 'Asunto',
'Send' => 'Enviar',
'%d e-mail(s) have been sent.' => array('%d email enviado.', '%d emails enviados.'),
'Webserver file %s' => 'Ficheiro de servidor web %s',
'File does not exist.' => 'O ficheiro non existe.',
'%d in total' => '%d en total',
'Permanent login' => 'Permanecer conectado',
'Databases have been dropped.' => 'Elimináronse as bases de datos.',
'Search data in tables' => 'Buscar datos en táboas',
'Schema' => 'Esquema',
'Alter schema' => 'Modificar esquema',
'Create schema' => 'Crear esquema',
'Schema has been dropped.' => 'Eliminouse o esquema.',
'Schema has been created.' => 'Creouse o esquema.',
'Schema has been altered.' => 'Modificouse o esquema.',
'Sequences' => 'Secuencias',
'Create sequence' => 'Crear secuencias',
'Alter sequence' => 'Modificar secuencia',
'Sequence has been dropped.' => 'Eliminouse a secuencia.',
'Sequence has been created.' => 'Creouse a secuencia.',
'Sequence has been altered.' => 'Modificaouse a secuencia.',
'User types' => 'Tipos definidos polo usuario',
'Create type' => 'Crear tipo',
'Alter type' => 'Modificar tipo',
'Type has been dropped.' => 'Eliminouse o tipo.',
'Type has been created.' => 'Creouse o tipo.',
'Ctrl+click on a value to modify it.' => 'Ctrl+clic sobre o valor para editalo.',
'Use edit link to modify this value.' => 'Use a ligazón de edición para modificar este valor.',
'last' => 'último',
'From server' => 'Desde o servidor',
'System' => 'Sistema',
'Select data' => 'Seleccionar datos',
'Show structure' => 'Amosar estructura',
'empty' => 'baleiro',
'Network' => 'Rede',
'Geometry' => 'Xeometría',
'File exists.' => 'O ficheiro xa existe.',
'Attachments' => 'Adxuntos',
'%d query(s) executed OK.' => array('%d consulta executada correctamente.', '%d consultas executadas correctamente.'),
'Show only errors' => 'Amosar só erros',
'Refresh' => 'Refrescar',
'Invalid schema.' => 'Esquema inválido.',
'Please use one of the extensions %s.' => 'Por favor use unha das extensións %s.',
'now' => 'agora',
'ltr' => 'ltr',
'Tables have been copied.' => 'Copiáronse as táboas.',
'Copy' => 'Copiar',
'Permanent link' => 'Ligazón permanente',
'Edit all' => 'Editar todo',
'HH:MM:SS' => 'HH:MM:SS',
'Tables have been optimized.' => 'Optimizáronse as táboas',
'Materialized view' => 'Vista materializada',
'Vacuum' => 'Baleirar',
'Selected' => 'Selección',
'File must be in UTF-8 encoding.' => 'O ficheiro ten que estar codificado con UTF-8',
'Modify' => 'Modificar',
'Loading' => 'Cargando',
'Load more data' => 'Cargar máis datos',
'%d / ' => array('%d / ','%d / '),
'Limit rows' => 'Limitar filas',
'Default value' => 'Valor por defecto',
'Full table scan' => 'Escaneo completo da táboa',
'Too many unsuccessful logins, try again in %d minute(s).' => array('Demasiados intentos de conexión, intentao de novo en %d minuto', 'Demasiados intentos de conexión, intentao de novo en %d minutos'),
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'O contrasinal principal caducou. <a href="https://www.adminer.org/en/extension/"%s>Implementa</a> o método %s para facelo permanente.',
'If you did not send this request from Adminer then close this page.' => 'Se non enviaches esta petición dende o Adminer entón pecha esta páxina',
'You can upload a big SQL file via FTP and import it from server.' => 'Podes subir un ficheiro SQL de gran tamaño vía FTP e importalo dende o servidor',
'Size' => 'Tamaño',
'Compute' => 'Calcular',
'You are offline.' => 'Non tes conexión',
'You have no privileges to update this table.' => 'Non tes privilexios para actualizar esta táboa',
'Saving' => 'Gardando',
'yes' => 'si',
'no' => 'non',
'Drop %s?' => null,
'as a regular expression' => null,
'overwrite' => null,
'DB' => null,
'Copy to clipboard' => null,
'ATTACH queries are not supported.' => null,
'Warnings' => null,
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null,
'There is a space in the input password which might be the cause.' => null,
'Unknown error.' => null,
'Database does not support password.' => null,
'Disable %s or enable %s or %s extensions.' => null,
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'A newer version of AdminerEvo is available, download it now!' => null,
);

View file

@ -1,310 +0,0 @@
<?php
$translations = array(
'Login' => 'התחברות',
'Logout successful.' => 'ההתחברות הצליחה',
'Invalid server or credentials.' => null,
'Server' => 'שרת',
'Username' => 'שם משתמש',
'Password' => 'סיסמה',
'Select database' => 'בחר מסד נתונים',
'Invalid database.' => 'מסד נתונים שגוי',
'Table has been dropped.' => 'הטבלה הושלכה',
'Table has been altered.' => 'הטבלה שונתה',
'Table has been created.' => 'הטבלה נוצרה',
'Alter table' => 'שנה טבלה',
'Create table' => 'צור טבלה',
'Table name' => 'שם הטבלה',
'engine' => 'מנוע',
'collation' => 'קולקציה',
'Column name' => 'שם עמודה',
'Type' => 'סוג',
'Length' => 'אורך',
'Auto Increment' => 'הגדלה אוטומטית',
'Options' => 'אפשרויות',
'Save' => 'שמור',
'Drop' => 'השלך',
'Database has been created.' => 'מסד הנתונים נוצר',
'Database has been renamed.' => 'שם מסד הנתונים שונה',
'Database has been altered.' => 'מסד הנתונים שונה',
'Alter database' => 'שנה מסד נתונים',
'Create database' => 'צור מסד נתונים',
'SQL command' => 'שאילתת SQL',
'Logout' => 'התנתק',
'database' => 'מסד נתונים',
'Use' => 'השתמש',
'No tables.' => 'אין טבלאות',
'select' => 'בחר',
'Item has been deleted.' => 'הפריט נמחק',
'Item has been updated.' => 'הפריט עודכן',
'Edit' => 'ערוך',
'Insert' => 'הכנס',
'Save and insert next' => 'שמור והמשך להכניס',
'Delete' => 'מחק',
'Database' => 'מסד נתונים',
'Routines' => 'רוטינות',
'Indexes have been altered.' => 'האינדקסים שונו',
'Indexes' => 'אינדקסים',
'Alter indexes' => 'שנה אינדקסים',
'Add next' => 'הוסף הבא',
'Language' => 'שפה',
'Select' => 'בחר',
'New item' => 'פריט חדש',
'Search' => 'חפש',
'Sort' => 'מיין',
'descending' => 'סדר הפוך',
'Limit' => 'הגבל',
'No rows.' => 'אין שורות',
'Action' => 'פעולות',
'edit' => 'ערוך',
'Page' => 'עמוד',
'Query executed OK, %d row(s) affected.' => 'השאילתה בוצעה כהלכה, %d שורות הושפעו',
'Error in query' => 'שגיאה בשאילתה',
'Execute' => 'הרץ',
'Table' => 'טבלה',
'Foreign keys' => 'מפתחות זרים',
'Triggers' => 'מפעילים',
'View' => 'הצג',
'Unable to select the table' => 'בחירת הטבלה נכשלה',
'Invalid CSRF token. Send the form again.' => 'כשל באבטחת נתונים, שלח טופס שוב',
'Comment' => 'הערה',
'Default values' => 'ערכי ברירת מחדל',
'%d byte(s)' => '%d בתים',
'No commands to execute.' => 'לא נמצאו פקודות להרצה',
'Unable to upload a file.' => 'העלאת הקובץ נכשלה',
'File upload' => 'העלה קובץ',
'File uploads are disabled.' => 'העלאת קבצים מבוטלת',
'Routine has been called, %d row(s) affected.' => 'הרוטינה נקראה, %d שורות הושפעו',
'Call' => 'קרא',
'No extension' => 'אין תוסף',
'None of the supported PHP extensions (%s) are available.' => 'שום תוסף PHP (%s) זמין',
'Session support must be enabled.' => 'חובה להפעיל תמיכה בסשן',
'Session expired, please login again.' => 'תם זמן ההפעלה, אנא התחבר שוב',
'Text length' => 'אורך הטקסט',
'Foreign key has been dropped.' => 'המפתח הזר הושלך',
'Foreign key has been altered.' => 'המפתח הזר שונה',
'Foreign key has been created.' => 'המפתח הזר נוצר',
'Foreign key' => 'מפתח זר',
'Target table' => 'טבלת יעד',
'Change' => 'שנה',
'Source' => 'מקור',
'Target' => 'יעד',
'Add column' => 'הוסף עמודה',
'Alter' => 'שנה',
'Add foreign key' => 'הוסף מפתח זר',
'ON DELETE' => 'בעת מחיקה',
'ON UPDATE' => 'בעת עידכון',
'Index Type' => 'סוג אינדקס',
'Column (length)' => 'עמודה (אורך)',
'View has been dropped.' => 'התצוגה הושלכה',
'View has been altered.' => 'התצוגה שונתה',
'View has been created.' => 'התצוגה נוצרה',
'Alter view' => 'שנה תצוגה',
'Create view' => 'צור תצוגה',
'Name' => 'שם',
'Process list' => 'רשימת תהליכים',
'%d process(es) have been killed.' => '%d תהליכים חוסלו',
'Kill' => 'חסל',
'Parameter name' => 'שם הפרמטר',
'Database schema' => 'סכמת מסד נתונים',
'Create procedure' => 'צור פרוצדורה',
'Create function' => 'צור פונקציה',
'Routine has been dropped.' => 'הרוטינה הושלכה',
'Routine has been altered.' => 'הרוטינה שונתה',
'Routine has been created.' => 'הרוטינה נוצרה',
'Alter function' => 'שנה פונקציה',
'Alter procedure' => 'שנה פרוצדורה',
'Return type' => 'סוג ערך מוחזר',
'Add trigger' => 'הוסף טריגר',
'Trigger has been dropped.' => 'הטריגר הושלך',
'Trigger has been altered.' => 'הטריגר שונה',
'Trigger has been created.' => 'הטריגר נוצר',
'Alter trigger' => 'שנה טריגר',
'Create trigger' => 'צור טריגר',
'Time' => 'זמן',
'Event' => 'אירוע',
'%d row(s)' => '%d שורות',
'Remove' => 'הסר',
'Are you sure?' => 'האם אתה בטוח?',
'Privileges' => 'פריווילגיות',
'Create user' => 'צור משתמש',
'User has been dropped.' => 'המשתמש הושלך',
'User has been altered.' => 'המשתמש שונה',
'User has been created.' => 'המשתמש נוצר',
'Hashed' => 'הצפנה',
'Column' => 'עמודה',
'Routine' => 'רוטינה',
'Grant' => 'הענק',
'Revoke' => 'שלול',
'%s version: %s through PHP extension %s' => '%s גרסה: %s דרך תוסף PHP %s',
'Logged as: %s' => 'מחובר כ: %s',
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'מידע גדול מידי נשלח ב-POST. הקטן את את המידע הוא הגדלת את הגדרות ה-%s',
'Move up' => 'הזז למעלה',
'Move down' => 'הזז למטה',
'Export' => 'יצא',
'Tables' => 'טבלאות',
'Data' => 'נתונים',
'Output' => 'פלט',
'open' => 'פתח',
'save' => 'שמור',
'Format' => 'פורמט',
'Functions' => 'פונקציות',
'Aggregation' => 'צבירה',
'Event has been dropped.' => 'האירוע הושלך',
'Event has been altered.' => 'האירוע שונה',
'Event has been created.' => 'האירוע נוצר',
'Alter event' => 'שנה אירוע',
'Create event' => 'צור אירוע',
'Start' => 'התחלה',
'End' => 'סיום',
'Every' => 'כל',
'Status' => 'סטטוס',
'On completion preserve' => 'בעת סיום שמור',
'Events' => 'אירועים',
'Schedule' => 'תזמן',
'At given time' => 'לפי זמן נתון',
'Save and continue edit' => 'שמור והמשך לערוך',
'original' => 'מקורי',
'Tables have been truncated.' => 'הטבלה קוצרה',
'Tables have been moved.' => 'הטבלה הועברה',
'Tables have been dropped.' => 'הטבלה הושלכה',
'Tables and views' => 'טבלאות ותצוגות',
'Engine' => 'מנוע',
'Collation' => 'קולקציה',
'Data Length' => 'אורך נתונים',
'Index Length' => 'אורך אינדקס',
'Data Free' => 'נתונים משוחררים',
'Rows' => 'שורות',
',' => ',',
'0123456789' => '0123456789',
'Analyze' => 'נתח',
'Optimize' => 'יעל',
'Check' => 'בדוק',
'Repair' => 'תקן',
'Truncate' => 'קצר',
'Move to other database' => 'העבר למסד נתונים אחר',
'Move' => 'העבר',
'%d item(s) have been affected.' => '%d פריטים הושפעו',
'Whole result' => 'כל התוצאות',
'Clone' => 'שכפל',
'Maximum number of allowed fields exceeded. Please increase %s.' => 'הגעת למספר השדות המרבי. בבקשה הגדל את %s',
'Partition by' => 'מחיצות ע"י',
'Partitions' => 'מחיצות',
'Partition name' => 'שם מחיצה',
'Values' => 'ערכים',
'%d row(s) have been imported.' => '%d שורות יובאו',
'anywhere' => 'בכל מקום',
'Import' => 'יבא',
'Stop on error' => 'עצור בעת שגיאה',
'%.3f s' => '%.3f s',
'$1-$3-$5' => '$1-$3-$5',
'[yyyy]-mm-dd' => '[yyyy]-mm-dd',
'History' => 'היסטוריה',
'Variables' => 'משתנים',
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'על עמודות המקור והיעד להיות מאותו טיפוס נתונים, חובה שיהיה אינדקס בעמודת היעד ושהמידע המתאים יהיה קיים',
'Relations' => 'הקשרים',
'Run file' => 'הרץ קובץ',
'Clear' => 'נקה',
'Maximum allowed file size is %sB.' => 'גודל מקסימלאי להעלאה: %sB',
'Numbers' => 'מספרים',
'Date and time' => 'תאריך ושעה',
'Strings' => 'מחרוזות',
'Binary' => 'בינארי',
'Lists' => 'רשימות',
'Editor' => 'עורך',
'E-mail' => 'דוא"ל',
'From' => 'מ:',
'Subject' => 'נושא',
'Send' => 'שלח',
'%d e-mail(s) have been sent.' => '%d הודעות דוא"ל נשלחו',
'Webserver file %s' => 'קובץ השרת %s',
'File does not exist.' => 'הקובץ אינו קיים',
'%d in total' => '%d בסך הכל',
'Permanent login' => 'התחבר לצמיתות',
'Databases have been dropped.' => 'מסד הנתונים הושלך',
'Database has been dropped.' => 'מסד הנתונים הושלך',
'Search data in tables' => 'חפש מידע בטבלאות',
'Schema' => 'סכמה',
'Alter schema' => 'שנה סכמה',
'Create schema' => 'צור סכמה',
'Schema has been dropped.' => 'הסכמה הושלכה',
'Schema has been created.' => 'הסכמה נוצרה',
'Schema has been altered.' => 'הסכמה שונתה',
'Sequences' => 'סדרות',
'Create sequence' => 'צור סדרה',
'Alter sequence' => 'שנה סדרה',
'Sequence has been dropped.' => 'הסדרה הושלכה',
'Sequence has been created.' => 'הסדרה נוצרה',
'Sequence has been altered.' => 'הסדרה שונתה',
'User types' => 'סוגי משתמשים',
'Create type' => 'צור סוג',
'Alter type' => 'שנה סוג',
'Type has been dropped.' => 'הסוג הושלך',
'Type has been created.' => 'הסוג נוצר',
'Use edit link to modify this value.' => 'השתמש בקישור העריכה בשביל לשנות את הערך',
'last' => 'אחרון',
'From server' => 'משרת',
'System' => 'מערכת',
'Select data' => 'בחר נתונים',
'Show structure' => 'הראה מבנה',
'empty' => 'ריק',
'Network' => 'רשת',
'Geometry' => 'גיאומטריה',
'File exists.' => 'קובץ קיים',
'Attachments' => 'קבצים מצורפים',
'Item%s has been inserted.' => 'הפריט %s הוזן בהצלחה',
'now' => 'כעת',
'%d query(s) executed OK.' => '%d שאילתות בוצעו בהצלחה',
'Show only errors' => 'הראה שגיאות בלבד',
'Refresh' => 'רענן',
'Invalid schema.' => 'סכמה שגויה',
'Please use one of the extensions %s.' => 'בבקשה השתמש באחד מהתוספים %s',
'ltr' => 'rtl',
'Tables have been copied.' => 'הטבלה הועתקה',
'Copy' => 'העתק',
'Permanent link' => 'קישור סופי',
'Edit all' => 'ערוך הכל',
'HH:MM:SS' => 'HH:MM:SS',
'Tables have been optimized.' => 'הטבלאות עברו אופטימיזציה',
'Materialized view' => 'תצוגת מימוש ',
'Vacuum' => 'וואקום',
'Selected' => 'נבחרים',
'Ctrl+click on a value to modify it.' => 'לחץ ctrl + לחיצת עכבר לערוך ערך זה',
'File must be in UTF-8 encoding.' => 'על הקובץ להיות בקידוד utf-8',
'Modify' => 'ערוך',
'Loading' => 'טוען',
'Load more data' => 'טען נתונים נוספים',
'ATTACH queries are not supported.' => 'שאילתת ATTACH אינה נתמכת',
'%d / ' => '%d / ',
'Limit rows' => 'הגבל שורות',
'Default value' => 'ערך ברירת מחדל',
'Full table scan' => 'סריקה טבלה מלאה',
'Too many unsuccessful logins, try again in %d minute(s).' => 'יותר מידי נסיונות כניסה נכשלו, אנא נסה עוד %d דקות',
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'סיסמת המאסטר פגה <a href="https://www.adminer.org/en/extension/"%s>התקן תוסף</a> על מנת להפוך את זה לתמידי',
'If you did not send this request from Adminer then close this page.' => 'אם לא אתה שלחת בקשה ל-Adminer הינך יכול לסגור חלון זה',
'You can upload a big SQL file via FTP and import it from server.' => 'ניתן לעלות קבצים ב-FTP ואז למשוך אותם מהשרת',
'Size' => 'גודל',
'Compute' => 'חישוב',
'You are offline.' => 'הינך לא מקוון',
'You have no privileges to update this table.' => 'אין לך ההרשאות המתאימות לעדכן טבלה זו',
'Saving' => 'שומר',
'yes' => 'כן',
'no' => 'לא',
'Drop %s?' => null,
'as a regular expression' => null,
'overwrite' => null,
'DB' => null,
'Copy to clipboard' => null,
'Warnings' => null,
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null,
'There is a space in the input password which might be the cause.' => null,
'Unknown error.' => null,
'Database does not support password.' => null,
'Disable %s or enable %s or %s extensions.' => null,
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'A newer version of AdminerEvo is available, download it now!' => null,
);

View file

@ -1,310 +0,0 @@
<?php
$translations = array(
'Login' => 'Belépés',
'Logout successful.' => 'Sikeres kilépés.',
'Invalid server or credentials.' => null,
'Server' => 'Szerver',
'Username' => 'Felhasználó',
'Password' => 'Jelszó',
'Select database' => 'Adatbázis kiválasztása',
'Invalid database.' => 'Érvénytelen adatbázis.',
'Table has been dropped.' => 'A tábla eldobva.',
'Table has been altered.' => 'A tábla módosult.',
'Table has been created.' => 'A tábla létrejött.',
'Alter table' => 'Tábla módosítása',
'Create table' => 'Tábla létrehozása',
'Table name' => 'Tábla név',
'engine' => 'motor',
'collation' => 'egybevetés',
'Column name' => 'Oszlop neve',
'Type' => 'Típus',
'Length' => 'Hossz',
'Auto Increment' => 'Automatikus növelés',
'Options' => 'Opciók',
'Save' => 'Mentés',
'Drop' => 'Eldob',
'Database has been dropped.' => 'Az adatbázis eldobva.',
'Database has been created.' => 'Az adatbázis létrejött.',
'Database has been renamed.' => 'Az adadtbázis átnevezve.',
'Database has been altered.' => 'Az adatbázis módosult.',
'Alter database' => 'Adatbázis módosítása',
'Create database' => 'Adatbázis létrehozása',
'SQL command' => 'SQL parancs',
'Logout' => 'Kilépés',
'database' => 'adatbázis',
'Use' => 'Használ',
'No tables.' => 'Nincs tábla.',
'select' => 'kiválasztás',
'Item has been deleted.' => 'A tétel törölve.',
'Item has been updated.' => 'A tétel frissítve.',
'Item%s has been inserted.' => '%s tétel beszúrva.',
'Edit' => 'Szerkeszt',
'Insert' => 'Beszúr',
'Save and insert next' => 'Mentés és újat beszúr',
'Delete' => 'Törlés',
'Database' => 'Adatbázis',
'Routines' => 'Rutinok',
'Indexes have been altered.' => 'Az indexek megváltoztak.',
'Indexes' => 'Indexek',
'Alter indexes' => 'Index módosítása',
'Add next' => 'Következő hozzáadása',
'Language' => 'Nyelv',
'Select' => 'Kiválasztás',
'New item' => 'Új tétel',
'Search' => 'Keresés',
'Sort' => 'Sorba rendezés',
'descending' => 'csökkenő',
'Limit' => 'korlát',
'No rows.' => 'Nincs megjeleníthető eredmény.',
'Action' => 'Művelet',
'edit' => 'szerkeszt',
'Page' => 'oldal',
'Query executed OK, %d row(s) affected.' => array('Lekérdezés sikeresen végrehajtva, %d sor érintett.', 'Lekérdezés sikeresen végrehajtva, %d sor érintett.', 'Lekérdezés sikeresen végrehajtva, %d sor érintett.'),
'Error in query' => 'Hiba a lekérdezésben',
'Execute' => 'Végrehajt',
'Table' => 'Tábla',
'Foreign keys' => 'Idegen kulcs',
'Triggers' => 'Trigger',
'View' => 'Nézet',
'Unable to select the table' => 'Nem tudom kiválasztani a táblát',
'Invalid CSRF token. Send the form again.' => 'Érvénytelen CSRF azonosító. Küldd újra az űrlapot.',
'Comment' => 'Megjegyzés',
'Default values' => 'Alapértelmezett értékek',
'%d byte(s)' => array('%d bájt', '%d bájt', '%d bájt'),
'No commands to execute.' => 'Nincs végrehajtható parancs.',
'Unable to upload a file.' => 'Nem tudom feltölteni a fájlt.',
'File upload' => 'Fájl feltöltése',
'File uploads are disabled.' => 'A fájl feltöltés le van tiltva.',
'Routine has been called, %d row(s) affected.' => array('Rutin meghívva, %d sor érintett.', 'Rutin meghívva, %d sor érintett.', 'Rutin meghívva, %d sor érintett.'),
'Call' => 'Meghív',
'No extension' => 'Nincs kiterjesztés',
'None of the supported PHP extensions (%s) are available.' => 'Nincs egy elérhető támogatott PHP kiterjesztés (%s) sem.',
'Session support must be enabled.' => 'A munkameneteknek (session) engedélyezve kell lennie.',
'Session expired, please login again.' => 'Munkamenet lejárt, jelentkezz be újra.',
'Text length' => 'Szöveg hossz',
'Foreign key has been dropped.' => 'Idegen kulcs eldobva.',
'Foreign key has been altered.' => 'Idegen kulcs módosult.',
'Foreign key has been created.' => 'Idegen kulcs létrejött.',
'Foreign key' => 'Idegen kulcs',
'Target table' => 'Cél tábla',
'Change' => 'Változtat',
'Source' => 'Forrás',
'Target' => 'Cél',
'Add column' => 'Oszlop hozzáadása',
'Alter' => 'Módosítás',
'Add foreign key' => 'Idegen kulcs hozzadása',
'ON DELETE' => 'törléskor',
'ON UPDATE' => 'frissítéskor',
'Index Type' => 'Index típusa',
'Column (length)' => 'Oszop (méret)',
'View has been dropped.' => 'A nézet eldobva.',
'View has been altered.' => 'A nézet módosult.',
'View has been created.' => 'A nézet létrejött.',
'Alter view' => 'Nézet módosítása',
'Create view' => 'Nézet létrehozása',
'Name' => 'Név',
'Process list' => 'Folyamatok',
'%d process(es) have been killed.' => array('%d folyamat leállítva.', '%d folyamat leállítva.', '%d folyamat leállítva.'),
'Kill' => 'Leállít',
'Parameter name' => 'Paraméter neve',
'Database schema' => 'Adatbázis séma',
'Create procedure' => 'Eljárás létrehozása',
'Create function' => 'Funkció létrehozása',
'Routine has been dropped.' => 'A rutin eldobva.',
'Routine has been altered.' => 'A rutin módosult.',
'Routine has been created.' => 'A rutin létrejött.',
'Alter function' => 'Funkció módosítása',
'Alter procedure' => 'Eljárás módosítása',
'Return type' => 'Visszatérési érték',
'Add trigger' => 'Trigger hozzáadása',
'Trigger has been dropped.' => 'A trigger eldobva.',
'Trigger has been altered.' => 'A trigger módosult.',
'Trigger has been created.' => 'A trigger létrejött.',
'Alter trigger' => 'Trigger módosítása',
'Create trigger' => 'Trigger létrehozása',
'Time' => 'Idő',
'Event' => 'Esemény',
'%s version: %s through PHP extension %s' => '%s verzió: %s, PHP: %s',
'%d row(s)' => array('%d sor', '%d sor', '%d sor'),
'Remove' => 'Eltávolítás',
'Are you sure?' => 'Biztos benne?',
'Privileges' => 'Privilégiumok',
'Create user' => 'Felhasználó hozzáadása',
'User has been dropped.' => 'A felhasználó eldobva.',
'User has been altered.' => 'A felhasználó módosult.',
'User has been created.' => 'A felhasználó létrejött.',
'Hashed' => 'Hashed',
'Column' => 'Oszlop',
'Routine' => 'Rutin',
'Grant' => 'Engedélyezés',
'Revoke' => 'Visszavonás',
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'Túl sok a POST adat! Csökkentsd az adat méretét, vagy növeld a %s beállítást.',
'Logged as: %s' => 'Belépve: %s',
'Move up' => 'Felfelé',
'Move down' => 'Lefelé',
'Functions' => 'Funkciók',
'Aggregation' => 'Aggregálás',
'Export' => 'Export',
'Output' => 'Kimenet',
'open' => 'megnyit',
'save' => 'ment',
'Format' => 'Formátum',
'Tables' => 'Táblák',
'Data' => 'Adat',
'Event has been dropped.' => 'Az esemény eldobva.',
'Event has been altered.' => 'Az esemény módosult.',
'Event has been created.' => 'Az esemény létrejött.',
'Alter event' => 'Esemény módosítása',
'Create event' => 'Esemény létrehozása',
'At given time' => 'Megadott időben',
'Every' => 'Minden',
'Events' => 'Esemény',
'Schedule' => 'Ütemzés',
'Start' => 'Kezd',
'End' => 'Vége',
'Status' => 'Állapot',
'On completion preserve' => 'Befejezéskor megőrzi',
'Tables and views' => 'Táblák és nézetek',
'Data Length' => 'Méret',
'Index Length' => 'Index hossz',
'Data Free' => 'Adat szabad',
'Collation' => 'Egybevetés',
'Analyze' => 'Elemzés',
'Optimize' => 'Optimalizál',
'Check' => 'Ellenőrzés',
'Repair' => 'Javít',
'Truncate' => 'Felszabadít',
'Tables have been truncated.' => 'A tábla felszabadítva.',
'Rows' => 'Sorok',
',' => ' ',
'0123456789' => '0123456789',
'Tables have been moved.' => 'Táblák áthelyezve.',
'Move to other database' => 'Áthelyezés másik adatbázisba',
'Move' => 'Áthelyez',
'Engine' => 'Motor',
'Save and continue edit' => 'Mentés és szerkesztés folytatása',
'original' => 'eredeti',
'%d item(s) have been affected.' => array('%d tétel érintett.', '%d tétel érintett.', '%d tétel érintett.'),
'Whole result' => 'Összes eredményt mutatása',
'Tables have been dropped.' => 'Táblák eldobva.',
'Clone' => 'Klónoz',
'Partition by' => 'Particionálás ezzel',
'Partitions' => 'Particiók',
'Partition name' => 'Partició neve',
'Values' => 'Értékek',
'%d row(s) have been imported.' => array('%d sor importálva.', '%d sor importálva.', '%d sor importálva.'),
'Import' => 'Importálás',
'Show structure' => 'Struktúra',
'Select data' => 'Tartalom',
'Stop on error' => 'Hiba esetén megáll',
'Maximum number of allowed fields exceeded. Please increase %s.' => 'A maximális mezőszámot elérted. Növeld meg ezeket: %s.',
'anywhere' => 'bárhol',
'%.3f s' => '%.3f másodperc',
'$1-$3-$5' => '$6.$4.$1',
'[yyyy]-mm-dd' => '[yyyy].m.d',
'History' => 'Történet',
'Variables' => 'Változók',
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'A forrás és cél oszlopoknak azonos típusúak legyenek, a cél oszlopok indexeltek legyenek, és a hivatkozott adatnak léteznie kell.',
'E-mail' => 'E-mail',
'From' => 'Feladó',
'Subject' => 'Tárgy',
'Send' => 'Küldés',
'%d e-mail(s) have been sent.' => array('%d e-mail elküldve.', '%d e-mail elküldve.', '%d e-mail elküldve.'),
'Run file' => 'Fájl futtatása',
'Numbers' => 'Szám',
'Date and time' => 'Dátum és idő',
'Strings' => 'Szöveg',
'Binary' => 'Bináris',
'Lists' => 'Lista',
'Relations' => 'Reláció',
'Maximum allowed file size is %sB.' => 'A maximális fájlméret %s B.',
'Clear' => 'Törlés',
'Editor' => 'Szerkesztő',
'Webserver file %s' => 'Webszerver fájl %s',
'File does not exist.' => 'A fájl nem létezik.',
'Permanent login' => 'Emlékezz rám',
'%d in total' => 'összesen %d',
'Attachments' => 'Csatolmány',
'System' => 'Adatbázis',
'last' => 'utolsó',
'Network' => 'Hálózat',
'Geometry' => 'Geometria',
'Databases have been dropped.' => 'Adatbázis eldobva.',
'File exists.' => 'A fájl létezik.',
'Use edit link to modify this value.' => 'Használd a szerkesztés hivatkozást ezen érték módosításához.',
'Alter schema' => 'Séma módosítása',
'Create schema' => 'Séma létrehozása',
'Schema has been dropped.' => 'Séma eldobva.',
'Schema has been created.' => 'Séma létrejött.',
'Schema has been altered.' => 'Séma módosult.',
'Schema' => 'Séma',
'Sequences' => 'Sorozatok',
'Create sequence' => 'Sorozat létrehozása',
'Sequence has been dropped.' => 'Sorozat eldobva.',
'Sequence has been created.' => 'Sorozat létrejött.',
'Sequence has been altered.' => 'Sorozat módosult.',
'Alter sequence' => 'Sorozat módosítása',
'User types' => 'Felhasználói típus',
'Create type' => 'Típus létrehozása',
'Type has been dropped.' => 'Típus eldobva.',
'Type has been created.' => 'Típus létrehozva.',
'Alter type' => 'Típus módosítása',
'Search data in tables' => 'Keresés a táblákban',
'From server' => 'Szerverről',
'empty' => 'üres',
'now' => 'most',
'%d query(s) executed OK.' => '%d sikeres lekérdezés.',
'Show only errors' => 'Csak a hibák mutatása',
'Refresh' => 'Frissítés',
'Invalid schema.' => 'Érvénytelen séma.',
'Please use one of the extensions %s.' => 'Használja a(z) %s kiterjesztést.',
'ltr' => 'ltr',
'Tables have been copied.' => 'Táblák átmásolva.',
'Copy' => 'Másolás',
'Permanent link' => 'Hivatkozás',
'Edit all' => 'Összes szerkesztése',
'HH:MM:SS' => 'óó:pp:mm',
'Drop %s?' => null,
'Tables have been optimized.' => null,
'as a regular expression' => null,
'Materialized view' => null,
'Vacuum' => null,
'Selected' => null,
'overwrite' => null,
'DB' => null,
'Ctrl+click on a value to modify it.' => null,
'File must be in UTF-8 encoding.' => null,
'Modify' => null,
'Load more data' => null,
'Loading' => null,
'Copy to clipboard' => null,
'ATTACH queries are not supported.' => null,
'Warnings' => null,
'%d / ' => array(),
'Limit rows' => null,
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
'Default value' => null,
'Full table scan' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array(),
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null,
'There is a space in the input password which might be the cause.' => null,
'If you did not send this request from Adminer then close this page.' => null,
'You can upload a big SQL file via FTP and import it from server.' => null,
'Size' => null,
'Compute' => null,
'You are offline.' => null,
'You have no privileges to update this table.' => null,
'Saving' => null,
'Unknown error.' => null,
'Database does not support password.' => null,
'Disable %s or enable %s or %s extensions.' => null,
'yes' => null,
'no' => null,
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'A newer version of AdminerEvo is available, download it now!' => null,
);

View file

@ -1,355 +0,0 @@
<?php
$translations = array(
// label for database system selection (MySQL, SQLite, ...)
'System' => 'Sistem',
'Server' => 'Server',
'Username' => 'Pengguna',
'Password' => 'Sandi',
'Permanent login' => 'Masuk permanen',
'Login' => 'Masuk',
'Logout' => 'Keluar',
'Logged as: %s' => 'Masuk sebagai: %s',
'Logout successful.' => 'Berhasil keluar.',
'Invalid server or credentials.' => null,
'Language' => 'Bahasa',
'Invalid CSRF token. Send the form again.' => 'Token CSRF tidak sah. Kirim ulang formulir.',
'No extension' => 'Ekstensi tidak ada',
'None of the supported PHP extensions (%s) are available.' => 'Ekstensi PHP yang didukung (%s) tidak ada.',
'Session support must be enabled.' => 'Dukungan sesi harus aktif.',
'Session expired, please login again.' => 'Sesi habis, silakan masuk lagi.',
'%s version: %s through PHP extension %s' => 'Versi %s: %s dengan ekstensi PHP %s',
'Refresh' => 'Segarkan',
// text direction - 'ltr' or 'rtl'
'ltr' => 'ltr',
'Privileges' => 'Privilese',
'Create user' => 'Buat pengguna',
'User has been dropped.' => 'Pengguna berhasil dihapus.',
'User has been altered.' => 'Pengguna berhasil diubah.',
'User has been created.' => 'Pengguna berhasil dibuat.',
'Hashed' => 'Hashed*',
'Column' => 'Kolom',
'Routine' => 'Rutin',
'Grant' => 'Beri',
'Revoke' => 'Tarik',
'Process list' => 'Daftar proses',
'%d process(es) have been killed.' => '%d proses berhasil dihentikan.',
'Kill' => 'Hentikan',
'Variables' => 'Variabel',
'Status' => 'Status',
'SQL command' => 'Perintah SQL',
'%d query(s) executed OK.' => '%d kueri berhasil dijalankan.',
'Query executed OK, %d row(s) affected.' => 'Kueri berhasil, %d baris terpengaruh.',
'No commands to execute.' => 'Tidak ada perintah untuk dijalankan.',
'Error in query' => 'Galat dalam kueri',
'Execute' => 'Jalankan',
'Stop on error' => 'Hentikan jika galat',
'Show only errors' => 'Hanya tampilkan galat',
// sprintf() format for time of the command
'%.3f s' => '%.3f s',
'History' => 'Riwayat',
'Clear' => 'Bersihkan',
'Edit all' => 'Sunting semua',
'File upload' => 'Unggah berkas',
'From server' => 'Dari server',
'Webserver file %s' => 'Berkas server web %s',
'Run file' => 'Jalankan berkas',
'File does not exist.' => 'Berkas tidak ada.',
'File uploads are disabled.' => 'Pengunggahan berkas dimatikan.',
'Unable to upload a file.' => 'Tidak dapat mengunggah berkas.',
'Maximum allowed file size is %sB.' => 'Besar berkas yang diizinkan adalah %sB.',
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'Data POST terlalu besar. Kurangi data atau perbesar direktif konfigurasi %s.',
'Export' => 'Ekspor',
'Output' => 'Hasil',
'open' => 'buka',
'save' => 'simpan',
'Format' => 'Format',
'Data' => 'Data',
'Database' => 'Basis data',
'database' => 'basis data',
'Use' => 'Gunakan',
'Select database' => 'Pilih basis data',
'Invalid database.' => 'Basis data tidak sah.',
'Database has been dropped.' => 'Basis data berhasil dihapus.',
'Databases have been dropped.' => 'Basis data berhasil dihapus.',
'Database has been created.' => 'Basis data berhasil dibuat.',
'Database has been renamed.' => 'Basis data berhasil diganti namanya.',
'Database has been altered.' => 'Basis data berhasil diubah.',
'Alter database' => 'Ubah basis data',
'Create database' => 'Buat basis data',
'Database schema' => 'Skema basis data',
// link to current database schema layout
'Permanent link' => 'Pranala permanen',
// thousands separator - must contain single byte
',' => '.',
'0123456789' => '0123456789',
'Engine' => 'Mesin',
'Collation' => 'Kolasi',
'Data Length' => 'Panjang Data',
'Index Length' => 'Panjang Indeks',
'Data Free' => 'Data Bebas',
'Rows' => 'Baris',
'%d in total' => '%d total',
'Analyze' => 'Analisis',
'Optimize' => 'Optimalkan',
'Check' => 'Periksa',
'Repair' => 'Perbaiki',
'Truncate' => 'Kosongkan',
'Tables have been truncated.' => 'Tabel berhasil dikosongkan.',
'Move to other database' => 'Pindahkan ke basis data lain',
'Move' => 'Pindahkan',
'Tables have been moved.' => 'Tabel berhasil dipindahkan.',
'Copy' => 'Salin',
'Tables have been copied.' => 'Tabel berhasil disalin.',
'Routines' => 'Rutin',
'Routine has been called, %d row(s) affected.' => 'Rutin telah dipanggil, %d baris terpengaruh.',
'Call' => 'Panggilan',
'Parameter name' => 'Nama parameter',
'Create procedure' => 'Buat prosedur',
'Create function' => 'Buat fungsi',
'Routine has been dropped.' => 'Rutin berhasil dihapus.',
'Routine has been altered.' => 'Rutin berhasil diubah.',
'Routine has been created.' => 'Rutin berhasil dibuat.',
'Alter function' => 'Ubah fungsi',
'Alter procedure' => 'Ubah prosedur',
'Return type' => 'Jenis pengembalian',
'Events' => 'Even',
'Event has been dropped.' => 'Even berhasil dihapus.',
'Event has been altered.' => 'Even berhasil diubah.',
'Event has been created.' => 'Even berhasil dibuat.',
'Alter event' => 'Ubah even',
'Create event' => 'Buat even',
'At given time' => 'Pada waktu tertentu',
'Every' => 'Setiap',
'Schedule' => 'Jadwal',
'Start' => 'Mulai',
'End' => 'Selesai',
'On completion preserve' => 'Pertahankan saat selesai',
'Tables' => 'Tabel',
'Tables and views' => 'Tabel dan tampilan',
'Table' => 'Tabel',
'No tables.' => 'Tidak ada tabel.',
'Alter table' => 'Ubah tabel',
'Create table' => 'Buat tabel',
'Table has been dropped.' => 'Tabel berhasil dihapus.',
'Tables have been dropped.' => 'Tabel berhasil dihapus.',
'Tables have been optimized.' => 'Tabel berhasil dioptimalkan.',
'Table has been altered.' => 'Tabel berhasil diubah.',
'Table has been created.' => 'Tabel berhasil dibuat.',
'Table name' => 'Nama tabel',
'Show structure' => 'Lihat struktur',
'engine' => 'mesin',
'collation' => 'kolasi',
'Column name' => 'Nama kolom',
'Type' => 'Jenis',
'Length' => 'Panjang',
'Auto Increment' => 'Inkrementasi Otomatis',
'Options' => 'Opsi',
'Comment' => 'Komentar',
'Default values' => 'Nilai bawaan',
'Drop' => 'Hapus',
'Are you sure?' => 'Anda yakin?',
'Move up' => 'Naik',
'Move down' => 'Turun',
'Remove' => 'Hapus',
'Maximum number of allowed fields exceeded. Please increase %s.' => 'Sudah lebih dumlah ruas maksimum yang diizinkan. Harap naikkan %s.',
'Partition by' => 'Partisi menurut',
'Partitions' => 'Partisi',
'Partition name' => 'Nama partisi',
'Values' => 'Nilai',
'View' => 'Tampilan',
'View has been dropped.' => 'Tampilan berhasil dihapus.',
'View has been altered.' => 'Tampilan berhasil diubah.',
'View has been created.' => 'Tampilan berhasil dibuat.',
'Alter view' => 'Ubah tampilan',
'Create view' => 'Buat tampilan',
'Indexes' => 'Indeks',
'Indexes have been altered.' => 'Indeks berhasil diubah.',
'Alter indexes' => 'Ubah indeks',
'Add next' => 'Tambah setelahnya',
'Index Type' => 'Jenis Indeks',
'Column (length)' => 'Kolom (panjang)',
'Foreign keys' => 'Kunci asing',
'Foreign key' => 'Kunci asing',
'Foreign key has been dropped.' => 'Kunci asing berhasil dihapus.',
'Foreign key has been altered.' => 'Kunci asing berhasil diubah.',
'Foreign key has been created.' => 'Kunci asing berhasil dibuat.',
'Target table' => 'Tabel sasaran',
'Change' => 'Ubah',
'Source' => 'Sumber',
'Target' => 'Sasaran',
'Add column' => 'Tambah kolom',
'Alter' => 'Ubah',
'Add foreign key' => 'Tambah kunci asing',
'ON DELETE' => 'ON DELETE',
'ON UPDATE' => 'ON UPDATE',
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'Kolom sumber dan sasaran harus memiliki jenis data yang sama. Kolom sasaran harus memiliki indeks dan data rujukan harus ada.',
'Triggers' => 'Pemicu',
'Add trigger' => 'Tambah pemicu',
'Trigger has been dropped.' => 'Pemicu berhasil dihapus.',
'Trigger has been altered.' => 'Pemicu berhasil diubah.',
'Trigger has been created.' => 'Pemicu berhasil dibuat.',
'Alter trigger' => 'Ubah pemicu',
'Create trigger' => 'Buat pemicu',
'Time' => 'Waktu',
'Event' => 'Even',
'Name' => 'Nama',
'select' => 'pilih',
'Select' => 'Pilih',
'Select data' => 'Pilih data',
'Functions' => 'Fungsi',
'Aggregation' => 'Agregasi',
'Search' => 'Cari',
'anywhere' => 'di mana pun',
'Search data in tables' => 'Cari data dalam tabel',
'Sort' => 'Urutkan',
'descending' => 'menurun',
'Limit' => 'Batas',
'Text length' => 'Panjang teks',
'Action' => 'Tindakan',
'Full table scan' => 'Pindai tabel lengkap',
'Unable to select the table' => 'Gagal memilih tabel',
'No rows.' => 'Tidak ada baris.',
'%d row(s)' => '%d baris',
'Page' => 'Halaman',
'last' => 'terakhir',
'Whole result' => 'Seluruh hasil',
'%d byte(s)' => '%d bita',
'Import' => 'Impor',
'%d row(s) have been imported.' => '%d baris berhasil diimpor.',
// in-place editing in select
'Use edit link to modify this value.' => 'Gunakan pranala suntingan untuk mengubah nilai ini.',
// %s can contain auto-increment value
'Item%s has been inserted.' => 'Entri%s berhasil disisipkan.',
'Item has been deleted.' => 'Entri berhasil dihapus.',
'Item has been updated.' => 'Entri berhasil diperbarui.',
'%d item(s) have been affected.' => '%d entri terpengaruh.',
'New item' => 'Entri baru',
'original' => 'asli',
// label for value '' in enum data type
'empty' => 'kosong',
'edit' => 'sunting',
'Edit' => 'Sunting',
'Insert' => 'Sisipkan',
'Save' => 'Simpan',
'Save and continue edit' => 'Simpan dan lanjut menyunting',
'Save and insert next' => 'Simpan dan sisipkan berikutnya',
'Clone' => 'Gandakan',
'Delete' => 'Hapus',
'E-mail' => 'Surel',
'From' => 'Dari',
'Subject' => 'Judul',
'Attachments' => 'Lampiran',
'Send' => 'Kirim',
'%d e-mail(s) have been sent.' => '%d surel berhasil dikirim.',
// data type descriptions
'Numbers' => 'Angka',
'Date and time' => 'Tanggal dan waktu',
'Strings' => 'String',
'Binary' => 'Binari',
'Lists' => 'Daftar',
'Network' => 'Jaringan',
'Geometry' => 'Geometri',
'Relations' => 'Relasi',
'Editor' => 'Editor',
// date format in Editor: $1 yyyy, $2 yy, $3 mm, $4 m, $5 dd, $6 d
'$1-$3-$5' => '$1-$3-$5',
// hint for date format - use language equivalents for day, month and year shortcuts
'[yyyy]-mm-dd' => '[yyyy]-mm-dd',
// hint for time format - use language equivalents for hour, minute and second shortcuts
'HH:MM:SS' => 'HH:MM:SS',
'now' => 'now',
'yes' => 'yes',
'no' => 'no',
// general SQLite error in create, drop or rename database
'File exists.' => 'Berkas sudah ada.',
'Please use one of the extensions %s.' => 'Harap gunakan salah satu ekstensi %s.',
// PostgreSQL and MS SQL schema support
'Alter schema' => 'Ubah skema',
'Create schema' => 'Buat skema',
'Schema has been dropped.' => 'Skema berhasil dihapus.',
'Schema has been created.' => 'Skema berhasil dibuat.',
'Schema has been altered.' => 'Skema berhasil diubah.',
'Schema' => 'Skema',
'Invalid schema.' => 'Skema tidak sah.',
// PostgreSQL sequences support
'Sequences' => 'Deret',
'Create sequence' => 'Buat deret',
'Sequence has been dropped.' => 'Deret berhasil dihapus.',
'Sequence has been created.' => 'Deret berhasil dibuat.',
'Sequence has been altered.' => 'Deret berhasil diubah.',
'Alter sequence' => 'Ubah deret',
// PostgreSQL user types support
'User types' => 'Jenis pengguna',
'Create type' => 'Buat jenis',
'Type has been dropped.' => 'Jenis berhasil dihapus.',
'Type has been created.' => 'Jenis berhasil dibuat.',
'Alter type' => 'Ubah jenis',
'Drop %s?' => null,
'as a regular expression' => null,
'Materialized view' => null,
'Vacuum' => null,
'Selected' => null,
'overwrite' => null,
'DB' => null,
'Ctrl+click on a value to modify it.' => null,
'File must be in UTF-8 encoding.' => null,
'Modify' => null,
'Load more data' => null,
'Loading' => null,
'Copy to clipboard' => null,
'ATTACH queries are not supported.' => null,
'Warnings' => null,
'%d / ' => array(),
'Limit rows' => null,
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
'Default value' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array(),
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null,
'There is a space in the input password which might be the cause.' => null,
'If you did not send this request from Adminer then close this page.' => null,
'You can upload a big SQL file via FTP and import it from server.' => null,
'Size' => null,
'Compute' => null,
'You are offline.' => null,
'You have no privileges to update this table.' => null,
'Saving' => null,
'Unknown error.' => null,
'Database does not support password.' => null,
'Disable %s or enable %s or %s extensions.' => null,
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'A newer version of AdminerEvo is available, download it now!' => null,
);

View file

@ -1,310 +0,0 @@
<?php
$translations = array(
'Login' => 'Autenticazione',
'Logout successful.' => 'Uscita effettuata con successo.',
'Invalid server or credentials.' => 'Server o credenziali non valide.',
'Server' => 'Server',
'Username' => 'Utente',
'Password' => 'Password',
'Select database' => 'Seleziona database',
'Invalid database.' => 'Database non valido.',
'Table has been dropped.' => 'Tabella eliminata.',
'Table has been altered.' => 'Tabella modificata.',
'Table has been created.' => 'Tabella creata.',
'Alter table' => 'Modifica tabella',
'Create table' => 'Crea tabella',
'Table name' => 'Nome tabella',
'engine' => 'motore',
'collation' => 'collazione',
'Column name' => 'Nome colonna',
'Type' => 'Tipo',
'Length' => 'Lunghezza',
'Auto Increment' => 'Auto incremento',
'Options' => 'Opzioni',
'Save' => 'Salva',
'Drop' => 'Elimina',
'Database has been dropped.' => 'Database eliminato.',
'Database has been created.' => 'Database creato.',
'Database has been renamed.' => 'Database rinominato.',
'Database has been altered.' => 'Database modificato.',
'Alter database' => 'Modifica database',
'Create database' => 'Crea database',
'SQL command' => 'Comando SQL',
'Logout' => 'Esci',
'database' => 'database',
'Use' => 'Usa',
'No tables.' => 'No tabelle.',
'select' => 'seleziona',
'Item has been deleted.' => 'Elemento eliminato.',
'Item has been updated.' => 'Elemento aggiornato.',
'Item%s has been inserted.' => 'Elemento%s inserito.',
'Edit' => 'Modifica',
'Insert' => 'Inserisci',
'Save and insert next' => 'Salva e inserisci un altro',
'Delete' => 'Elimina',
'Database' => 'Database',
'Routines' => 'Routine',
'Indexes have been altered.' => 'Indici modificati.',
'Indexes' => 'Indici',
'Alter indexes' => 'Modifica indici',
'Add next' => 'Aggiungi altro',
'Language' => 'Lingua',
'Select' => 'Seleziona',
'New item' => 'Nuovo elemento',
'Search' => 'Cerca',
'Sort' => 'Ordina',
'descending' => 'discendente',
'Limit' => 'Limite',
'No rows.' => 'Nessuna riga.',
'Action' => 'Azione',
'edit' => 'modifica',
'Page' => 'Pagina',
'Query executed OK, %d row(s) affected.' => array('Esecuzione della query OK, %d riga interessata.', 'Esecuzione della query OK, %d righe interessate.'),
'Error in query' => 'Errore nella query',
'Execute' => 'Esegui',
'Table' => 'Tabella',
'Foreign keys' => 'Chiavi esterne',
'Triggers' => 'Trigger',
'View' => 'Vedi',
'Unable to select the table' => 'Selezione della tabella non riuscita',
'Invalid CSRF token. Send the form again.' => 'Token CSRF non valido. Reinvia la richiesta.',
'Comment' => 'Commento',
'Default values' => 'Valori predefiniti',
'%d byte(s)' => array('%d byte', '%d bytes'),
'No commands to execute.' => 'Nessun commando da eseguire.',
'Unable to upload a file.' => 'Caricamento del file non riuscito.',
'File upload' => 'Caricamento file',
'File uploads are disabled.' => 'Caricamento file disabilitato.',
'Routine has been called, %d row(s) affected.' => array('Routine chiamata, %d riga interessata.', 'Routine chiamata, %d righe interessate.'),
'Call' => 'Chiama',
'No extension' => 'Estensioni non presenti',
'None of the supported PHP extensions (%s) are available.' => 'Nessuna delle estensioni PHP supportate (%s) disponibile.',
'Session support must be enabled.' => 'Le sessioni devono essere abilitate.',
'Session expired, please login again.' => 'Sessione scaduta, autenticarsi di nuovo.',
'Text length' => 'Lunghezza testo',
'Foreign key has been dropped.' => 'Foreign key eliminata.',
'Foreign key has been altered.' => 'Foreign key modificata.',
'Foreign key has been created.' => 'Foreign key creata.',
'Foreign key' => 'Foreign key',
'Target table' => 'Tabella obiettivo',
'Change' => 'Cambia',
'Source' => 'Sorgente',
'Target' => 'Obiettivo',
'Add column' => 'Aggiungi colonna',
'Alter' => 'Modifica',
'Add foreign key' => 'Aggiungi foreign key',
'ON DELETE' => 'ON DELETE',
'ON UPDATE' => 'ON UPDATE',
'Index Type' => 'Tipo indice',
'Column (length)' => 'Colonna (lunghezza)',
'View has been dropped.' => 'Vista eliminata.',
'View has been altered.' => 'Vista modificata.',
'View has been created.' => 'Vista creata.',
'Alter view' => 'Modifica vista',
'Create view' => 'Crea vista',
'Name' => 'Nome',
'Process list' => 'Elenco processi',
'%d process(es) have been killed.' => array('%d processo interrotto.', '%d processi interrotti.'),
'Kill' => 'Interrompi',
'Parameter name' => 'Nome parametro',
'Database schema' => 'Schema database',
'Create procedure' => 'Crea procedura',
'Create function' => 'Crea funzione',
'Routine has been dropped.' => 'Routine eliminata.',
'Routine has been altered.' => 'Routine modificata.',
'Routine has been created.' => 'Routine creata.',
'Alter function' => 'Modifica funzione',
'Alter procedure' => 'Modifica procedura',
'Return type' => 'Return type',
'Add trigger' => 'Aggiungi trigger',
'Trigger has been dropped.' => 'Trigger eliminato.',
'Trigger has been altered.' => 'Trigger modificato.',
'Trigger has been created.' => 'Trigger creato.',
'Alter trigger' => 'Modifica trigger',
'Create trigger' => 'Crea trigger',
'Time' => 'Orario',
'Event' => 'Evento',
'%s version: %s through PHP extension %s' => 'Versione %s: %s via estensione PHP %s',
'%d row(s)' => array('%d riga', '%d righe'),
'Remove' => 'Rimuovi',
'Are you sure?' => 'Sicuro?',
'Privileges' => 'Privilegi',
'Create user' => 'Crea utente',
'User has been dropped.' => 'Utente eliminato.',
'User has been altered.' => 'Utente modificato.',
'User has been created.' => 'Utente creato.',
'Hashed' => 'Hashed',
'Column' => 'Colonna',
'Routine' => 'Routine',
'Grant' => 'Permetti',
'Revoke' => 'Revoca',
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'Troppi dati via POST. Ridurre i dati o aumentare la direttiva di configurazione %s.',
'Logged as: %s' => 'Autenticato come: %s',
'Move up' => 'Sposta su',
'Move down' => 'Sposta giu',
'Functions' => 'Funzioni',
'Aggregation' => 'Aggregazione',
'Export' => 'Esporta',
'Output' => 'Risultato',
'open' => 'apri',
'save' => 'salva',
'Format' => 'Formato',
'Tables' => 'Tabelle',
'Data' => 'Dati',
'Event has been dropped.' => 'Evento eliminato.',
'Event has been altered.' => 'Evento modificato.',
'Event has been created.' => 'Evento creato.',
'Alter event' => 'Modifica evento',
'Create event' => 'Crea evento',
'Start' => 'Inizio',
'End' => 'Fine',
'Every' => 'Ogni',
'Status' => 'Stato',
'On completion preserve' => 'Al termine preservare',
'Events' => 'Eventi',
'Schedule' => 'Pianifica',
'At given time' => 'A tempo prestabilito',
'Save and continue edit' => 'Salva e continua',
'original' => 'originale',
'Tables have been truncated.' => 'Le tabelle sono state svuotate.',
'Tables have been moved.' => 'Le tabelle sono state spostate.',
'Tables have been dropped.' => 'Le tabelle sono state eliminate.',
'Tables and views' => 'Tabelle e viste',
'Engine' => 'Motore',
'Collation' => 'Collazione',
'Data Length' => 'Lunghezza dato',
'Index Length' => 'Lunghezza indice',
'Data Free' => 'Dati liberi',
'Rows' => 'Righe',
',' => '.',
'0123456789' => '0123456789',
'Analyze' => 'Analizza',
'Optimize' => 'Ottimizza',
'Check' => 'Controlla',
'Repair' => 'Ripara',
'Truncate' => 'Svuota',
'Move to other database' => 'Sposta in altro database',
'Move' => 'Sposta',
'%d item(s) have been affected.' => array('Il risultato consiste in %d elemento.', 'Il risultato consiste in %d elementi.'),
'Whole result' => 'Intero risultato',
'Clone' => 'Clona',
'Maximum number of allowed fields exceeded. Please increase %s.' => 'Troppi campi. Per favore aumentare %s.',
'Partition by' => 'Partiziona per',
'Partitions' => 'Partizioni',
'Partition name' => 'Nome partizione',
'Values' => 'Valori',
'%d row(s) have been imported.' => array('%d riga importata.', '%d righe importate.'),
'anywhere' => 'ovunque',
'Import' => 'Importa',
'Stop on error' => 'Stop su errore',
'%.3f s' => '%.3f s',
'$1-$3-$5' => '$5/$3/$1',
'[yyyy]-mm-dd' => 'dd/mm/[yyyy]',
'History' => 'Storico',
'Variables' => 'Variabili',
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'Le colonne sorgente e destinazione devono essere dello stesso tipo e ci deve essere un indice sulla colonna di destinazione e sui dati referenziati.',
'Relations' => 'Relazioni',
'Run file' => 'Esegui file',
'Clear' => 'Pulisci',
'Maximum allowed file size is %sB.' => 'La dimensione massima del file è %sB.',
'Numbers' => 'Numeri',
'Date and time' => 'Data e ora',
'Strings' => 'Stringhe',
'Binary' => 'Binari',
'Lists' => 'Liste',
'Editor' => 'Editor',
'E-mail' => 'E-mail',
'From' => 'Da',
'Subject' => 'Oggetto',
'Send' => 'Invia',
'%d e-mail(s) have been sent.' => array('%d e-mail inviata.', '%d e-mail inviate.'),
'Webserver file %s' => 'Webserver file %s',
'File does not exist.' => 'Il file non esiste.',
'%d in total' => '%d in totale',
'Permanent login' => 'Login permanente',
'Databases have been dropped.' => 'Database eliminati.',
'Search data in tables' => 'Cerca nelle tabelle',
'Schema' => 'Schema',
'Alter schema' => 'Modifica schema',
'Create schema' => 'Crea schema',
'Schema has been dropped.' => 'Schema eliminato.',
'Schema has been created.' => 'Schema creato.',
'Schema has been altered.' => 'Schema modificato.',
'Sequences' => 'Sequenza',
'Create sequence' => 'Crea sequenza',
'Alter sequence' => 'Modifica sequenza',
'Sequence has been dropped.' => 'Sequenza eliminata.',
'Sequence has been created.' => 'Sequenza creata.',
'Sequence has been altered.' => 'Sequenza modificata.',
'User types' => 'Tipi definiti dall\'utente',
'Create type' => 'Crea tipo definito dall\'utente',
'Alter type' => 'Modifica tipo definito dall\'utente',
'Type has been dropped.' => 'Tipo definito dall\'utente eliminato.',
'Type has been created.' => 'Tipo definito dall\'utente creato.',
'Ctrl+click on a value to modify it.' => 'Fai Ctrl+click su un valore per modificarlo.',
'Use edit link to modify this value.' => 'Usa il link modifica per modificare questo valore.',
'last' => 'ultima',
'From server' => 'Dal server',
'System' => 'Sistema',
'Select data' => 'Visualizza dati',
'Show structure' => 'Visualizza struttura',
'empty' => 'vuoto',
'Network' => 'Rete',
'Geometry' => 'Geometria',
'File exists.' => 'Il file esiste già.',
'Attachments' => 'Allegati',
'%d query(s) executed OK.' => array('%d query eseguita con successo.', '%d query eseguite con successo.'),
'Show only errors' => 'Mostra solo gli errori',
'Refresh' => 'Aggiorna',
'Invalid schema.' => 'Schema non valido.',
'Please use one of the extensions %s.' => 'Usa una delle estensioni %s.',
'now' => 'adesso',
'ltr' => 'ltr',
'Tables have been copied.' => 'Le tabelle sono state copiate.',
'Copy' => 'Copia',
'Permanent link' => 'Link permanente',
'Edit all' => 'Modifica tutto',
'HH:MM:SS' => 'HH:MM:SS',
'Drop %s?' => 'Scartare %s?',
'Tables have been optimized.' => 'Le tabelle sono state ottimizzate',
'as a regular expression' => 'come espressione regolare',
'Materialized view' => 'Vista materializzata',
'Vacuum' => 'Aspira',
'Selected' => 'Selezionato',
'overwrite' => 'sovrascrivi',
'DB' => 'DB',
'File must be in UTF-8 encoding.' => 'Il file deve avere codifica UTF-8.',
'Modify' => 'Modifica',
'Load more data' => 'Carica piú dati',
'Loading' => 'Caricamento',
'Copy to clipboard' => 'Copiato nella clipboard',
'ATTACH queries are not supported.' => 'ATTACH queries non sono supportate.',
'Warnings' => 'Attenzione',
'%d / ' => array('%d / '),
'Limit rows' => 'Limite righe',
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Adminer non supporta accesso a databse senza password, <a href="https://www.adminer.org/it/password/"%s>piú informazioni</a>.',
'Default value' => 'Valore predefinito',
'Full table scan' => 'Analizza intera tabella',
'Too many unsuccessful logins, try again in %d minute(s).' => array('Troppi tentativi infruttuosi di login, si prega di riprovare in %d minuto.', 'Troppi tentativi infruttuosi di login, si prega di riprovare in %d minuti.'),
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'La password principale é scaduta. <a href="https://www.adminer.org/it/extension/"%s>Implementare</a> %s come metodo per renderla permanente.',
'The action will be performed after successful login with the same credentials.' => 'La azione verrá eseguita dopo un login valido con le stesse credenziali.',
'Connecting to privileged ports is not allowed.' => 'LA connessione a porte privilegiate non é permessa.',
'There is a space in the input password which might be the cause.' => 'Esiste uno spazio nella passoword inserita che potrebbe essere la causa.',
'If you did not send this request from Adminer then close this page.' => 'Se non hai inviato tu la richiesta tramite Adminer puoi chiudere la pagina.',
'You can upload a big SQL file via FTP and import it from server.' => 'Puoi caricare un grande file SQL tramite FTP ed impirtarlo dal server.',
'Size' => 'Taglia',
'Compute' => 'Elabora',
'You are offline.' => 'Sei disconnesso.',
'You have no privileges to update this table.' => 'Non hai i privilegi per aggiornare questa tabella.',
'Saving' => 'Salvataggio',
'Unknown error.' => 'Errore sconosciuto',
'Database does not support password.' => 'Il database non supporta password.',
'Disable %s or enable %s or %s extensions.' => 'Disabilita %s o abilita %s oppure %s estensioni.',
'yes' => 'si',
'no' => 'no',
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'A newer version of AdminerEvo is available, download it now!' => null,
);

View file

@ -1,310 +0,0 @@
<?php
$translations = array(
'Login' => 'ログイン',
'Logout successful.' => 'ログアウト',
'Invalid server or credentials.' => null,
'Server' => 'サーバ',
'Username' => 'ユーザ名',
'Password' => 'パスワード',
'Select database' => 'データベースを選択してください',
'Invalid database.' => '不正なデータベース',
'Table has been dropped.' => 'テーブルを削除しました',
'Table has been altered.' => 'テーブルを変更しました',
'Table has been created.' => 'テーブルを作成しました',
'Alter table' => 'テーブルの変更',
'Create table' => 'テーブルを作成',
'Table name' => 'テーブル名',
'engine' => 'エンジン',
'collation' => '照合順序',
'Column name' => '列名',
'Type' => '型',
'Length' => '長さ',
'Auto Increment' => '連番',
'Options' => '設定',
'Save' => '保存',
'Drop' => '削除',
'Database has been dropped.' => 'データベースを削除しました',
'Database has been created.' => 'データベースを作成しました',
'Database has been renamed.' => 'データベースの名前を変えました',
'Database has been altered.' => 'データベースを変更しました',
'Alter database' => 'データベースを変更',
'Create database' => 'データベースを作成',
'SQL command' => 'SQLコマンド',
'Logout' => 'ログアウト',
'database' => 'データベース',
'Use' => '使用',
'No tables.' => 'テーブルがありません。',
'select' => '選択',
'Item has been deleted.' => '項目を削除しました',
'Item has been updated.' => '項目を更新しました',
'Edit' => '編集',
'Insert' => '挿入',
'Save and insert next' => '保存/追加',
'Delete' => '削除',
'Database' => 'データベース',
'Routines' => 'ルーチン',
'Indexes have been altered.' => '索引を変更しました',
'Indexes' => '索引',
'Alter indexes' => '索引の変更',
'Add next' => '追加',
'Language' => '言語',
'Select' => '選択',
'New item' => '項目の作成',
'Search' => '検索',
'Sort' => 'ソート',
'descending' => '降順',
'Limit' => '制約',
'No rows.' => '行がありません',
'Action' => '動作',
'edit' => '編集',
'Page' => 'ページ',
'Query executed OK, %d row(s) affected.' => 'クエリーを実行しました。%d 行を変更しました',
'Error in query' => 'クエリーのエラー',
'Execute' => '実行',
'Table' => 'テーブル',
'Foreign keys' => '外部キー',
'Triggers' => 'トリガー',
'View' => 'ビュー',
'Unable to select the table' => 'テーブルを選択できません',
'Invalid CSRF token. Send the form again.' => '不正なCSRFトークン。再送信してください',
'Comment' => 'コメント',
'Default values' => '規定値',
'%d byte(s)' => '%d バイト',
'No commands to execute.' => '実行するコマンドがありません',
'Unable to upload a file.' => 'ファイルをアップロードできません',
'File upload' => 'ファイルをアップロード',
'File uploads are disabled.' => 'ファイルのアップロードが無効です',
'Routine has been called, %d row(s) affected.' => 'ルーチンを呼びました。%d 行を変更しました',
'Call' => '呼出し',
'No extension' => '拡張機能がありません',
'None of the supported PHP extensions (%s) are available.' => 'PHPの拡張機能%sがセットアップされていません',
'Session support must be enabled.' => 'セッションを有効にしてください',
'Session expired, please login again.' => 'セッションの期限切れ。ログインし直してください',
'Text length' => '文字列の長さ',
'Foreign key has been dropped.' => '外部キーを削除しました',
'Foreign key has been altered.' => '外部キーを変更しました',
'Foreign key has been created.' => '外部キーを作成しました',
'Foreign key' => '外キー',
'Target table' => 'テーブル',
'Change' => '変更',
'Source' => 'ソース',
'Target' => 'ターゲット',
'Add column' => '列を追加',
'Alter' => '変更',
'Add foreign key' => '外部キーを追加',
'ON DELETE' => 'ON DELETE',
'ON UPDATE' => 'ON UPDATE',
'Index Type' => '索引の型',
'Column (length)' => '列(長さ)',
'View has been dropped.' => 'ビューを削除しました',
'View has been altered.' => 'ビューを変更しました',
'View has been created.' => 'ビューを作成しました',
'Alter view' => 'ビューを変更',
'Create view' => 'ビューを作成',
'Name' => '名称',
'Process list' => 'プロセス一覧',
'%d process(es) have been killed.' => '%d プロセスを強制終了しました',
'Kill' => '強制終了',
'Parameter name' => '参数名',
'Database schema' => '構造',
'Create procedure' => 'プロシージャの作成',
'Create function' => '関数の作成',
'Routine has been dropped.' => 'ルーチンを作成',
'Routine has been altered.' => 'ルーチンを変更',
'Routine has been created.' => 'ルーチンを作成',
'Alter function' => '関数の変更',
'Alter procedure' => 'プロシージャの変更',
'Return type' => '戻り値の型',
'Add trigger' => 'トリガーの追加',
'Trigger has been dropped.' => 'トリガーを削除しました',
'Trigger has been altered.' => 'トリガーを変更しました',
'Trigger has been created.' => 'トリガーを追加しました',
'Alter trigger' => 'トリガーの変更',
'Create trigger' => 'トリガーの作成',
'Time' => '時間',
'Event' => 'イベント',
'%s version: %s through PHP extension %s' => '%sバージョン%s、 PHP拡張機能 %s',
'%d row(s)' => '%d 行',
'Remove' => '除外',
'Are you sure?' => '実行しますか?',
'Privileges' => '権限',
'Create user' => 'ユーザを作成',
'User has been dropped.' => 'ユーザを削除',
'User has been altered.' => 'ユーザを変更',
'User has been created.' => 'ユーザを作成',
'Hashed' => 'Hashed',
'Column' => '列',
'Routine' => 'ルーチン',
'Grant' => '権限の付与',
'Revoke' => '権限の取消し',
'Logged as: %s' => 'ログ:%s',
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'POSTデータが大きすぎます。データサイズを小さくするか %s 設定を大きくしてください',
'Move up' => '上',
'Move down' => '下',
'Export' => 'エクスポート',
'Tables' => 'テーブル',
'Data' => 'データ',
'Output' => '出力',
'open' => '開く',
'save' => '保存',
'Format' => '形式',
'Functions' => '関数',
'Aggregation' => '集合',
'Event has been dropped.' => '削除しました',
'Event has been altered.' => '変更しました',
'Event has been created.' => '作成しました',
'Alter event' => '変更',
'Create event' => '作成',
'Start' => '開始',
'End' => '終了',
'Every' => '毎回',
'Status' => '状態',
'On completion preserve' => '完成後に保存',
'Events' => 'イベント',
'Schedule' => 'スケジュール',
'At given time' => '指定時刻',
'Tables have been truncated.' => 'テーブルをtruncateしました',
'Tables have been moved.' => 'テーブルを移動しました',
'Tables and views' => 'テーブルとビュー',
'Engine' => 'エンジン',
'Collation' => '照合順序',
'Data Length' => 'データ長',
'Index Length' => '索引長',
'Data Free' => '空き',
'Rows' => '行数',
',' => ',',
'0123456789' => '0123456789',
'Analyze' => '分析',
'Optimize' => '最適化',
'Check' => 'チェック',
'Repair' => '修復',
'Truncate' => '空にする',
'Move to other database' => '別のデータベースへ移動',
'Move' => '移動',
'Save and continue edit' => '保存して継続',
'original' => '元',
'%d item(s) have been affected.' => '%d を更新しました',
'Whole result' => '全結果',
'Tables have been dropped.' => 'テーブルを削除しました',
'Clone' => 'クローン',
'Maximum number of allowed fields exceeded. Please increase %s.' => '定義可能な最大フィールド数を越えました。%s を増やしてください。',
'Partition by' => 'パーティション',
'Partitions' => 'パーティション',
'Partition name' => 'パーティション名',
'Values' => '値',
'%d row(s) have been imported.' => '%d 行をインポートしました',
'Show structure' => '構造',
'anywhere' => '任意',
'Import' => 'インポート',
'Stop on error' => 'エラーの場合は停止',
'Select data' => 'データ',
'%.3f s' => '%.3f 秒',
'$1-$3-$5' => '$1.$3.$5',
'[yyyy]-mm-dd' => '[yyyy].mm.dd',
'History' => '履歴',
'Variables' => '変数',
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'ソースとターゲットの列は同じデータ型でなければなりません。ターゲット列に索引があり、データが存在しなければなりません。',
'Relations' => '関係',
'Run file' => 'ファイルを実行',
'Clear' => '消去',
'Maximum allowed file size is %sB.' => '最大ファイルサイズ %sB',
'Numbers' => '数字',
'Date and time' => '日時',
'Strings' => '文字列',
'Binary' => 'バイナリ',
'Lists' => 'リスト',
'Editor' => 'エディタ',
'E-mail' => 'メール',
'From' => '差出人',
'Subject' => '題名',
'Send' => '送信',
'%d e-mail(s) have been sent.' => '%d メールを送信しました',
'Webserver file %s' => 'Webサーバファイル %s',
'File does not exist.' => 'ファイルは存在しません',
'%d in total' => '合計 %d',
'Permanent login' => '永続的にログイン',
'Databases have been dropped.' => 'データベースを削除しました',
'Search data in tables' => 'データを検索する',
'Schema' => 'スキーマ',
'Alter schema' => 'スキーマ変更',
'Create schema' => 'スキーマ追加',
'Schema has been dropped.' => 'スキーマを削除しました',
'Schema has been created.' => 'スキーマを追加しました',
'Schema has been altered.' => 'スキーマを変更しました',
'Sequences' => 'シーケンス',
'Create sequence' => 'シーケンス作成',
'Alter sequence' => 'シーケンス変更',
'Sequence has been dropped.' => 'シーケンスを削除しました',
'Sequence has been created.' => 'シーケンスを追加しました',
'Sequence has been altered.' => 'シーケンスを変更しました',
'User types' => 'ユーザー定義型',
'Create type' => 'ユーザー定義型作成',
'Alter type' => 'ユーザー定義型変更',
'Type has been dropped.' => 'ユーザー定義型を削除しました',
'Type has been created.' => 'ユーザー定義型を追加しました',
'Use edit link to modify this value.' => 'リンクを編集する',
'last' => '最終',
'From server' => 'サーバーから実行',
'System' => 'データベース種類',
'empty' => '空',
'Network' => 'ネットワーク型',
'Geometry' => 'ジオメトリ型',
'File exists.' => 'ファイルが既に存在します',
'Attachments' => '添付ファイル',
'Item%s has been inserted.' => '%s項目を挿入しました',
'now' => '現在の日時',
'%d query(s) executed OK.' => '%d クエリーを実行しました',
'Show only errors' => 'エラーのみ表示',
'Refresh' => 'リフレッシュ',
'Invalid schema.' => '無効なスキーマ',
'Please use one of the extensions %s.' => 'いずれかの拡張機能を使ってください %s',
'ltr' => 'ltr',
'Tables have been copied.' => 'テーブルをコピーしました',
'Copy' => 'コピー',
'Permanent link' => 'パーマネントリンク',
'Edit all' => 'すべて編集',
'HH:MM:SS' => '時:分:秒',
'Selected' => '選択済',
'Modify' => '修正',
'Load more data' => '続きを読み込み',
'Loading' => '読み込み中',
'Size' => 'サイズ',
'Compute' => '算出',
'Saving' => '保存中',
'yes' => 'はい',
'no' => 'いいえ',
'Default value' => '既定値',
'Drop %s?' => null,
'Tables have been optimized.' => null,
'as a regular expression' => null,
'Materialized view' => null,
'Vacuum' => null,
'overwrite' => null,
'DB' => null,
'Ctrl+click on a value to modify it.' => null,
'File must be in UTF-8 encoding.' => null,
'Copy to clipboard' => null,
'ATTACH queries are not supported.' => null,
'Warnings' => null,
'%d / ' => array(),
'Limit rows' => null,
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
'Full table scan' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array(),
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null,
'There is a space in the input password which might be the cause.' => null,
'If you did not send this request from Adminer then close this page.' => null,
'You can upload a big SQL file via FTP and import it from server.' => null,
'You are offline.' => null,
'You have no privileges to update this table.' => null,
'Unknown error.' => null,
'Database does not support password.' => null,
'Disable %s or enable %s or %s extensions.' => null,
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'A newer version of AdminerEvo is available, download it now!' => null,
);

View file

@ -1,310 +0,0 @@
<?php
$translations = array(
'Login' => 'შესვლა',
'Logout successful.' => 'გამოხვედით სისტემიდან.',
'Invalid server or credentials.' => null,
'Server' => 'სერვერი',
'Username' => 'მომხმარებელი',
'Password' => 'პაროლი',
'Select database' => 'ბაზა',
'Invalid database.' => 'არასწორი ბაზა.',
'Table has been dropped.' => 'ცხრილი წაიშალა.',
'Table has been altered.' => 'ცხრილი შეიცვალა.',
'Table has been created.' => 'ცხრილი შეიქმნა.',
'Alter table' => 'ცხრილის შეცვლა',
'Create table' => 'ცხრილის შექმნა',
'Table name' => 'სახელი',
'engine' => 'სახეობა',
'collation' => 'კოდირება',
'Column name' => 'ველი',
'Type' => 'სახეობა',
'Length' => 'სიგრძე',
'Auto Increment' => 'ავტომატურად გაზრდა',
'Options' => 'მოქმედება',
'Save' => 'შენახვა',
'Drop' => 'წაშლა',
'Database has been dropped.' => 'ბაზა წაიშალა.',
'Database has been created.' => 'ბაზა შეიქმნა.',
'Database has been renamed.' => 'ბაზას გადაერქვა.',
'Database has been altered.' => 'ბაზა შეიცვალა.',
'Alter database' => 'ბაზის შეცვლა',
'Create database' => 'ბაზის შექმნა',
'SQL command' => 'SQL-ბრძანება',
'Logout' => 'გასვლა',
'database' => 'ბაზა',
'Use' => 'არჩევა',
'No tables.' => 'ბაზაში ცხრილი არაა.',
'select' => 'არჩევა',
'Item has been deleted.' => 'ჩანაწერი წაიშალა.',
'Item has been updated.' => 'ჩანაწერი განახლდა.',
'Item%s has been inserted.' => 'ჩანაწერი%s ჩაჯდა.',
'Edit' => 'შეცვლა',
'Insert' => 'ჩასმა',
'Save and insert next' => 'შენახვა და სხვის ჩასმა',
'Delete' => 'წაშლა',
'Database' => 'ბაზა',
'Indexes have been altered.' => 'შეიცვალა ინდექსები.',
'Indexes' => 'ინდექსები',
'Alter indexes' => 'ინდექსის შეცვლა',
'Add next' => 'კიდევ დამატება',
'Language' => 'ენა',
'Select' => 'არჩევა',
'New item' => 'ახალი ჩანაწერი',
'Search' => 'ძებნა',
'Sort' => 'დალაგება',
'descending' => 'კლებადობით',
'Limit' => 'ზღვარი',
'No rows.' => 'ჩანაწერი არაა.',
'Action' => 'მოქმედება',
'edit' => 'რედაქტირება',
'Page' => 'გვერდი',
'Query executed OK, %d row(s) affected.' => 'მოთხოვდა შესრულდა, შეიცვალა %d ჩანაწერი.',
'Error in query' => 'შეცდომა მოთხოვნაში',
'Execute' => 'შესრულება',
'Table' => 'ცხრილი',
'Foreign keys' => 'გარე გასაღები',
'Triggers' => 'ტრიგერები',
'View' => 'ნახვა',
'Unable to select the table' => 'ცხრილიდან ინფორმაცია ვერ მოვიპოვე',
'Invalid CSRF token. Send the form again.' => 'უმოქმედო CSRF-ტოკენი. ფორმის კიდევ ერთხელ გაგზავნა.',
'Comment' => 'კომენტარები',
'Default values' => 'სტანდარტული მნიშვნელობა',
'%d byte(s)' => '%d ბაიტი',
'No commands to execute.' => 'შესასრულებელი ბრძანება არაა.',
'Unable to upload a file.' => 'ფაილი არ აიტვირთა სერვერზე.',
'File upload' => 'ფაილის ატვირთვა სერვერზე',
'File uploads are disabled.' => 'ფაილის სერვერზე ატვირთვა გათიშულია.',
'Routine has been called, %d row(s) affected.' => 'გამოძახებულია პროცედურა, შეიცვალა %d ჩანაწერი.',
'Call' => 'გამოძახეება',
'No extension' => 'გაფართოება არაა',
'None of the supported PHP extensions (%s) are available.' => 'არც ერთი მხარდაჭერილი გაფართოება არ მოიძებნა (%s).',
'Session support must be enabled.' => 'ჩართული უნდა იყოს სესია.',
'Session expired, please login again.' => 'სესიის მოქმედების დრო ამოიწურა, გაიარეთ ხელახალი ავტორიზაცია.',
'Text length' => 'ტექსტის სიგრძე',
'Foreign key has been dropped.' => 'გარე გასაღები წაიშალა.',
'Foreign key has been altered.' => 'გარე გასაღები შეიცვალა.',
'Foreign key has been created.' => 'გარე გასაღები შეიქმნა.',
'Foreign key' => 'გარე გასაღები',
'Change' => 'შეცვლა',
'Source' => 'წყარო',
'Target' => 'სამიზნე',
'Add column' => 'ველის დამატება',
'Alter' => 'შეცვლა',
'Add foreign key' => 'გარე გასაღები დამატება',
'ON DELETE' => 'წაშლისას',
'ON UPDATE' => 'განახლებისას',
'Index Type' => 'ინდექსის სახეობა',
'Column (length)' => 'ველი (სიგრძე)',
'View has been dropped.' => 'წარმოდგენა წაიშალა.',
'View has been altered.' => 'წარმოდგენა შეიცვალა.',
'View has been created.' => 'წარმოდგენა შეიქმნა.',
'Alter view' => 'წარმოდგენის შეცვლა',
'Create view' => 'წარმოდგენის შექმნა',
'Name' => 'სახელი',
'Process list' => 'პროცესების სია',
'%d process(es) have been killed.' => 'გაითიშა %d პროცესი.',
'Kill' => 'დასრულება',
'Parameter name' => 'პარამეტრი',
'Database schema' => 'ბაზის სქემა',
'Create procedure' => 'პროცედურის შექმნა',
'Create function' => 'ფუნქციის შექმნა',
'Routine has been dropped.' => 'პროცედურა წაიშალა.',
'Routine has been altered.' => 'პროცედურა შეიცვალა.',
'Routine has been created.' => 'პროცედურა შეიქმნა.',
'Alter function' => 'ფუნქციის შეცვლა',
'Alter procedure' => 'პროცედურის შეცვლა',
'Return type' => 'დაბრუნების სახეობა',
'Add trigger' => 'ტრიგერის დამატება',
'Trigger has been dropped.' => 'ტრიგერი წაიშალა.',
'Trigger has been altered.' => 'ტრიგერი შეიცვალა.',
'Trigger has been created.' => 'ტრიგერი შეიქმნა.',
'Alter trigger' => 'ტრიგერის შეცვლა',
'Create trigger' => 'ტრიგერის შექმნა',
'Time' => 'დრო',
'Event' => 'ღონისძიება',
'%s version: %s through PHP extension %s' => 'ვერსია %s: %s PHP-გაფართოება %s',
'%d row(s)' => '%d რიგი',
'Remove' => 'წაშლა',
'Are you sure?' => 'ნამდვილად?',
'Privileges' => 'უფლებამოსილება',
'Create user' => 'მომხმარებლის შექმან',
'User has been dropped.' => 'მომხმარებელი წაიშალა.',
'User has been altered.' => 'მომხმარებელი შეიცვალა.',
'User has been created.' => 'მომხმარებელი შეიქმნა.',
'Hashed' => 'ჰეშირებული',
'Column' => 'ველი',
'Routine' => 'პროცედურა',
'Grant' => 'დაშვება',
'Revoke' => 'შეზღუდვა',
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'POST ინფორმაცია ძალიან დიდია. შეამცირეთ ზომა ან გაზარდეს POST ინფორმაციის ზომა პარამეტრებიდან %s.',
'Logged as: %s' => 'შესული ხართ როგორც: %s',
'Move up' => 'ზემოთ ატანა',
'Move down' => 'ქვემოთ ჩატანა',
'Functions' => 'ფუნქციები',
'Aggregation' => 'აგრეგაცია',
'Export' => 'ექსპორტი',
'Output' => 'გამომავალი ინფორმაცია',
'open' => 'გახსნა',
'save' => 'შენახვა',
'Format' => 'ფორმატი',
'Tables' => 'ცხრილები',
'Data' => 'ინფორმაცია',
'Event has been dropped.' => 'ღონისძიება წაიშალა.',
'Event has been altered.' => 'ღონისძიება შეიცვალა.',
'Event has been created.' => 'ღონისძიება შეიქმნა.',
'Alter event' => 'ღონისძიების შეცვლა',
'Create event' => 'ღონისძიების შექმნა',
'At given time' => 'მოცემულ დროში',
'Every' => 'ყოველ',
'Events' => 'ღონისძიება',
'Schedule' => 'განრიგი',
'Start' => 'დასაწყისი',
'End' => 'დასასრული',
'Status' => 'მდგომარეობა',
'On completion preserve' => 'შენახვა დასრულებისას',
'Tables and views' => 'ცხრილები და წარმოდგენები',
'Data Length' => 'ინფორმაციის მოცულობა',
'Index Length' => 'ინდექსების მოცულობა',
'Data Free' => 'თავისუფალი სივრცე',
'Collation' => 'კოდირება',
'Analyze' => 'ანალიზი',
'Optimize' => 'ოპტიმიზაცია',
'Check' => 'შემოწმება',
'Repair' => 'გასწორება',
'Truncate' => 'გასუფთავება',
'Tables have been truncated.' => 'ცხრილი გასუფთავდა.',
'Rows' => 'რიგი',
',' => ' ',
'0123456789' => '0123456789',
'Tables have been moved.' => 'ცხრილი გადაადგილდა.',
'Move to other database' => 'გადატანა სხვა ბაზაში',
'Move' => 'გადატანა',
'Engine' => 'ძრავი',
'Save and continue edit' => 'შენახვა და ცვლილების გაგრძელება',
'original' => 'საწყისი',
'%d item(s) have been affected.' => 'შეიცვალა %d ჩანაწერი.',
'Whole result' => 'სრული შედეგი',
'Tables have been dropped.' => 'ცხრილები წაიშალა.',
'Clone' => 'კლონირება',
'Partition by' => 'დაყოფა',
'Partitions' => 'დანაყოფები',
'Partition name' => 'დანაყოფის სახელი',
'Values' => 'პარამეტრები',
'%d row(s) have been imported.' => 'დაიმპორტდა %d რიგი.',
'Import' => 'იმპორტი',
'Stop on error' => 'გაჩერება შეცდომისას',
'Maximum number of allowed fields exceeded. Please increase %s.' => 'მიღწეულია დაშვებული ველების მაქსიმალური რაოდენობა, გაზარდეთ %s.',
'anywhere' => 'ნებისმიერ ადგილას',
'%.3f s' => '%.3f s',
'$1-$3-$5' => '$5.$3.$1',
'[yyyy]-mm-dd' => 'დდ.თთ.[წწწწ]',
'History' => 'ისტორია',
'Variables' => 'ცვლადები',
'Relations' => 'ურთიერთობა',
'Run file' => 'ფაილის გაშვება',
'Clear' => 'გასუფთავება',
'Maximum allowed file size is %sB.' => 'ფაილის მაქსიმალური ზომა - %sB.',
'Numbers' => 'ციფრები',
'Date and time' => 'დრო და თარიღი',
'Binary' => 'ორობითი',
'Lists' => 'სია',
'Editor' => 'რედაქტორი',
'E-mail' => 'ელ. ფოსტა',
'From' => 'ავტორი:',
'Subject' => 'თემა',
'Send' => 'გაგზავნა',
'%d e-mail(s) have been sent.' => 'გაიგზავნა %d წერილი.',
'Webserver file %s' => 'ფაილი %s ვებსერვერზე',
'File does not exist.' => 'ასეთი ფაილი არ არსებობს.',
'%d in total' => 'სულ %d',
'Permanent login' => 'სისტემაში დარჩენა',
'Databases have been dropped.' => 'ბაზა წაიშალა.',
'Search data in tables' => 'ცხრილებში ძებნა',
'Schema' => 'სქემა',
'Alter schema' => 'სქემის შეცვლა',
'Create schema' => 'ახალი სქემა',
'Schema has been dropped.' => 'სქემა წაიშალა.',
'Schema has been created.' => 'შეიქმნა ახალი სქემა.',
'Schema has been altered.' => 'სქემა შეიცვალა.',
'Sequences' => 'მიმდევრობა',
'Create sequence' => 'მიმდევრობის შექმნა',
'Alter sequence' => 'მიმდევრობის შეცვლა',
'Sequence has been dropped.' => 'მიმდევრობა წაიშალა.',
'Sequence has been created.' => 'მიმდევრობა შეიქმნა.',
'Sequence has been altered.' => 'მიმდევრობა შეიცვალა.',
'User types' => 'მომხმარებლის სახეობა',
'Create type' => 'სახეობის შექმნა',
'Alter type' => 'სახეობის შეცვლა',
'Type has been dropped.' => 'სახეობა წაიშალა.',
'Type has been created.' => 'სახეობა შეიქმნა.',
'Ctrl+click on a value to modify it.' => 'შესაცვლელად გამოიყენეთ Ctrl+თაგვის ღილაკი.',
'Use edit link to modify this value.' => 'ამ მნიშვნელობის შესაცვლელად გამოიყენეთ ბმული «შეცვლა».',
'last' => 'ბოლო',
'From server' => 'სერვერიდან',
'System' => 'სისტემა',
'Select data' => 'არჩევა',
'Show structure' => 'სტრუქტურის ჩვენება',
'empty' => 'ცარიელი',
'Network' => 'ქსელი',
'Geometry' => 'გეომეტრია',
'File exists.' => 'ფაილი უკვე არსებობს.',
'Attachments' => 'მიმაგრებული ფაილები',
'%d query(s) executed OK.' => '%d მოთხოვნა შესრულდა.',
'Show only errors' => 'მხოლოდ შეცდომები',
'Refresh' => 'განახლება',
'Invalid schema.' => 'არასწორი სქემა.',
'Please use one of the extensions %s.' => 'გამოიყენეთ ერთ-ერთი გაფართოება %s.',
'now' => 'ახლა',
'ltr' => 'ltr',
'Tables have been copied.' => 'ცხრილი დაკოპირდა.',
'Copy' => 'კოპირება',
'Permanent link' => 'მუდმივი ბმული',
'Edit all' => 'ყველას შეცვლა',
'HH:MM:SS' => 'სთ:წთ:წმ',
'Tables have been optimized.' => 'ცხრილებს გაუკეთდა ოპტიმიზაცია.',
'Materialized view' => 'მატერიალური ხედი',
'Vacuum' => 'ვაკუუმი',
'Selected' => 'არჩეული',
'File must be in UTF-8 encoding.' => 'ფაილი უნდა იყოს კოდირებაში UTF-8.',
'Modify' => 'შეცვლა',
'Loading' => 'ჩატვირთვა',
'Load more data' => 'მეტი ინფორმაციის ჩატვირთვა',
'ATTACH queries are not supported.' => 'ATTACH-მოთხოვნები არაა მხარდაჭერილი.',
'%d / ' => '%d / ',
'Limit rows' => 'რიგების შეზღუდვა',
'Default value' => 'სტანდარტული მნიშვნელობა',
'Full table scan' => 'სრული ცხრილის ანალიზი',
'Too many unsuccessful logins, try again in %d minute(s).' => 'ძალიან ბევრჯერ შეგეშალათ მომხმარებელი და პაროლი. სცადეთ %d წუთში.',
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'ძირითად პაროლს ვადა გაუვიდა. <a href="https://www.adminer.org/en/extension/"%s>გამოიყენეთ</a> მეთოდი %s, რათა ის მუდმივი გახადოთ.',
'If you did not send this request from Adminer then close this page.' => 'ეს მოთხოვნა თქვენ თუ არ გაგიგზავნაით Adminer-იდან, დახურეთ ეს ფანჯარა..',
'You can upload a big SQL file via FTP and import it from server.' => 'დიდი ფაილი უნდა ატვირტოთ FTP-თი და შემდეგ გაუკეთოთ იმპორტი სერვერიდან.',
'Size' => 'ზომა',
'Compute' => 'გამოთვლა',
'You are offline.' => 'არ გაგივლიათ ავტორიზაცია.',
'You have no privileges to update this table.' => 'ამ ცხრილის განახლების უფლება არ გაქვთ.',
'Saving' => 'შენახვა',
'yes' => 'კი',
'no' => 'არა',
'Routines' => 'რუტინები',
'Target table' => 'მიზნობრივი ცხრილი',
'Strings' => 'ველები',
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'საწყისი და მიზნობრივი ველები უნდა იყოს ერთიდაიგივე სახეობის, მიზნობრივ ველზე უნდა იყოს ინდექსი და უნდა არსებობდეს შესაბამისი ინფორმაცია.',
'Drop %s?' => 'წაიშალოს %s?',
'Warnings' => 'გაფრთხილება',
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'უპაროლო წვდომა ბაზასთან არაა დაშვებული Adminer-ში, მეტი ინფორმაციისთვის ეწვიეთ <a href="https://www.adminer.org/en/password/"%s>ბმულს</a>.',
'DB' => 'ბაზა',
'The action will be performed after successful login with the same credentials.' => 'მოქმედება შესრულდება იგივე მომხმარებლით წარმატებული ავტორიზაციის შემდეგ.',
'Connecting to privileged ports is not allowed.' => 'პრივილეგირებულ პორტთან წვდომა დაუშვებელია.',
'There is a space in the input password which might be the cause.' => 'პაროლში არის გამოტოვება, შეიძლება ეს ქმნის პრობლემას.',
'Unknown error.' => 'უცნობი შეცდომა.',
'Database does not support password.' => 'ბაზაში არაა მხარდაჭერილი პაროლი.',
'Disable %s or enable %s or %s extensions.' => 'გათიშეთ %s ან ჩართეთ %s ან %s გაფართოება.',
'as a regular expression' => null,
'overwrite' => null,
'Copy to clipboard' => null,
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'A newer version of AdminerEvo is available, download it now!' => null,
);

View file

@ -1,310 +0,0 @@
<?php
$translations = array(
'$1-$3-$5' => '$1-$3-$5',
'%.3f s' => '%.3f 초',
'%d byte(s)' => '%d 바이트',
'%d e-mail(s) have been sent.' => '%d개 메일을 보냈습니다.',
'%d in total' => '총 %d개',
'%d item(s) have been affected.' => '%d개 항목을 갱신했습니다.',
'%d process(es) have been killed.' => '%d개 프로세스를 강제 종료하였습니다.',
'%d query(s) executed OK.' => '%d개 쿼리를 잘 실행했습니다.',
'%d row(s) have been imported.' => '%d개 행을 가져 왔습니다.',
'%d row(s)' => '%d개 행',
'%s version: %s through PHP extension %s' => '%s 버전 %s, PHP 확장 %s',
',' => ',',
'0123456789' => '0123456789',
'[yyyy]-mm-dd' => '[yyyy]-mm-dd',
'Action' => '실행',
'Add column' => '열 추가',
'Add foreign key' => '외부 키를 추가',
'Add next' => '다음 추가',
'Add trigger' => '트리거 추가',
'Aggregation' => '집합',
'Alter database' => '데이터베이스 변경',
'Alter event' => '이벤트 변경',
'Alter function' => '함수 변경',
'Alter indexes' => '색인 변경',
'Alter procedure' => '시저 변경',
'Alter schema' => '스키마 변경',
'Alter sequence' => '순서 변경',
'Alter table' => '테이블 변경',
'Alter trigger' => '트리거 변경',
'Alter type' => '형 변경',
'Alter view' => '보기 변경',
'Alter' => '변경',
'Analyze' => '분석',
'anywhere' => '모든',
'Are you sure?' => '실행 하시겠습니까?',
'At given time' => '지정 시간',
'Attachments' => '첨부 파일',
'Auto Increment' => '자동 증가',
'Binary' => '이진',
'Call' => '호출',
'Change' => '변경',
'Check' => '확인',
'Clear' => '삭제',
'Clone' => '복제',
'collation' => '정렬',
'Collation' => '정렬',
'Column (length)' => '열 (길이)',
'Column name' => '열 이름',
'Column' => '열',
'Comment' => '주석',
'Compute' => '계산하기',
'Copy' => '복사',
'Create database' => '데이터베이스 만들기',
'Create event' => '만들기',
'Create function' => '함수 만들기',
'Create procedure' => '시저 만들기',
'Create schema' => '스키마 추가',
'Create sequence' => '시퀀스 만들기',
'Create table' => '테이블 만들기',
'Create trigger' => '트리거 만들기',
'Create type' => '사용자 정의 형식 만들기',
'Create user' => '사용자 만들기',
'Create view' => '뷰 만들기',
'Data Free' => '데이터 여유',
'Data Length' => '데이터 길이',
'Data' => '데이터',
'Database has been altered.' => '데이터베이스를 변경했습니다.',
'Database has been created.' => '데이터베이스를 만들었습니다.',
'Database has been dropped.' => '데이터베이스를 삭제했습니다.',
'Database has been renamed.' => '데이터베이스의 이름을 바꾸었습니다.',
'Database schema' => '데이터베이스 구조',
'database' => '데이터베이스',
'Database' => '데이터베이스',
'Databases have been dropped.' => '데이터베이스를 삭제했습니다.',
'Date and time' => '시간',
'Default values' => '기본값',
'Delete' => '삭제',
'descending' => '역순',
'Drop' => '삭제',
'E-mail' => '메일',
'Edit all' => '모두 편집',
'Edit' => '편집',
'edit' => '편집',
'Editor' => '에디터',
'empty' => '비어있음',
'End' => '종료',
'engine' => '엔진',
'Engine' => '엔진',
'Error in query' => '쿼리의 오류',
'Event has been altered.' => '변경했습니다.',
'Event has been created.' => '만들었습니다.',
'Event has been dropped.' => '삭제했습니다.',
'Event' => '이벤트',
'Events' => '이벤트',
'Every' => '매 번',
'Execute' => '실행',
'Export' => '내보내기',
'File does not exist.' => '파일이 존재하지 않습니다.',
'File exists.' => '파일이 이미 있습니다.',
'File upload' => '파일 올리기',
'File uploads are disabled.' => '파일 업로드가 잘못되었습니다.',
'Foreign key has been altered.' => '외부 키를 변경했습니다.',
'Foreign key has been created.' => '외부 키를 만들었습니다.',
'Foreign key has been dropped.' => '외부 키를 제거했습니다.',
'Foreign key' => '외부 키',
'Foreign keys' => '외부 키',
'Format' => '형식',
'From server' => '서버에서 실행',
'From' => '보낸 사람',
'Functions' => '함수',
'Geometry' => '기하 형',
'Grant' => '권한 부여',
'Hashed' => 'Hashed',
'HH:MM:SS' => '시:분:초',
'History' => '이력',
'Import' => '가져 오기',
'Index Length' => '색인 길이',
'Index Type' => '색인 형',
'Indexes have been altered.' => '색인을 변경했습니다.',
'Indexes' => '색인',
'Insert' => '삽입',
'Invalid server or credentials.' => null,
'Invalid CSRF token. Send the form again.' => '잘못된 CSRF 토큰입니다. 다시 보내주십시오.',
'Invalid database.' => '잘못된 데이터베이스입니다.',
'Invalid schema.' => '잘못된 스키마입니다.',
'Item has been deleted.' => '항목을 삭제했습니다.',
'Item has been updated.' => '항목을 갱신했습니다.',
'Item%s has been inserted.' => '%s 항목을 삽입했습니다.',
'Kill' => '강제 종료',
'Language' => '언어',
'last' => '마지막',
'Length' => '길이',
'Limit rows' => '행 제약',
'Limit' => '제약',
'Lists' => '목록',
'Load more data' => '더 많은 데이터 부르기',
'Loading' => '부르는 중',
'Logged as: %s' => '다음으로 로그인했습니다: %s',
'Login' => '로그인',
'Logout successful.' => '로그아웃을 성공했습니다.',
'Logout' => '로그아웃',
'ltr' => 'ltr',
'Maximum allowed file size is %sB.' => '파일의 최대 크기 %sB',
'Maximum number of allowed fields exceeded. Please increase %s.' => '정의 가능한 최대 필드 수를 초과했습니다. %s(을)를 늘리십시오.',
'Modify' => '수정',
'Move down' => '아래로',
'Move to other database' => '다른 데이터베이스로 이동',
'Move up' => '위로',
'Move' => '이동',
'Name' => '이름',
'Network' => '네트워크 형',
'New item' => '항목 만들기',
'No commands to execute.' => '실행할 수 있는 명령이 없습니다.',
'No extension' => '확장이 없습니다.',
'No rows.' => '행이 없습니다.',
'No tables.' => '테이블이 없습니다.',
'None of the supported PHP extensions (%s) are available.' => 'PHP 확장(%s)이 설치되어 있지 않습니다.',
'now' => '현재 시간',
'Numbers' => '숫자',
'On completion preserve' => '완성 후 저장',
'ON DELETE' => '지울 때',
'ON UPDATE' => '업데이트할 때',
'open' => '열',
'Optimize' => '최적화',
'Options' => '설정',
'original' => '원본',
'Output' => '출력',
'overwrite' => '덮어쓰기',
'Page' => '페이지',
'Parameter name' => '매개변수 이름',
'Partition by' => '파티션',
'Partition name' => '파티션 이름',
'Partitions' => '파티션',
'Password' => '비밀번호',
'Permanent link' => '영구적으로 링크',
'Permanent login' => '영구적으로 로그인',
'Please use one of the extensions %s.' => '확장 %s 중 하나를 사용하십시오.',
'Privileges' => '권한',
'Process list' => '프로세스 목록',
'Query executed OK, %d row(s) affected.' => '쿼리를 잘 실행했습니다. %d행을 변경했습니다.',
'Refresh' => '새로 고침',
'Relations' => '관계',
'Remove' => '제거',
'Repair' => '복구',
'Return type' => '반환 형식',
'Revoke' => '권한 취소',
'Routine has been altered.' => '루틴을 변경했습니다.',
'Routine has been called, %d row(s) affected.' => '루틴을 호출했습니다. %d 행을 변경했습니다.',
'Routine has been created.' => '루틴을 추가했습니다.',
'Routine has been dropped.' => '루틴을 제거했습니다.',
'Routine' => '루틴',
'Routines' => '루틴',
'Rows' => '행',
'Run file' => '파일을 실행',
'Save and continue edit' => '저장하고 계속 편집하기',
'Save and insert next' => '저장하고 다음에 추가',
'Save' => '저장',
'save' => '저장',
'Schedule' => '예약',
'Schema has been altered.' => '스키마를 변경했습니다.',
'Schema has been created.' => '스키마를 추가했습니다.',
'Schema has been dropped.' => '스키마를 삭제했습니다.',
'Schema' => '스키마',
'Search data in tables' => '테이블 내 데이터 검색',
'Search' => '검색',
'Select data' => '데이터를 선택하십시오.',
'Select database' => '데이터베이스를 선택하십시오.',
'Select' => '선택',
'select' => '선택',
'Selected' => '선택됨',
'Send' => '보내기',
'Sequence has been altered.' => '시퀀스를 변경했습니다.',
'Sequence has been created.' => '시퀀스를 추가했습니다.',
'Sequence has been dropped.' => '시퀀스를 제거했습니다.',
'Sequences' => '시퀀스',
'Server' => '서버',
'Session expired, please login again.' => '세션이 만료되었습니다. 다시 로그인하십시오.',
'Session support must be enabled.' => '세션 지원을 사용해야만 합니다.',
'Show only errors' => '오류 만 표시',
'Show structure' => '구조 표시',
'Size' => '크기',
'Sort' => '정렬',
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => '원본과 대상 열은 동일한 데이터 형식이어야만 합니다. 목표 열에 색인과 데이터가 존재해야만 합니다.',
'Source' => '소스',
'SQL command' => 'SQL 명령',
'Start' => '시작',
'Status' => '상태',
'Stop on error' => '오류의 경우 중지',
'Strings' => '문자열',
'Subject' => '제목',
'System' => '데이터베이스 형식',
'Table has been altered.' => '테이블을 변경했습니다.',
'Table has been created.' => '테이블을 만들었습니다.',
'Table has been dropped.' => '테이블을 삭제했습니다.',
'Table name' => '테이블 이름',
'Table' => '테이블',
'Tables and views' => '테이블과 뷰',
'Tables have been copied.' => '테이블을 복사했습니다',
'Tables have been dropped.' => '테이블을 삭제했습니다.',
'Tables have been moved.' => '테이블을 옮겼습니다.',
'Tables have been truncated.' => '테이블의 데이터 내용만 지웠습니다.',
'Tables' => '테이블',
'Target table' => '테이블',
'Target' => '타겟',
'Text length' => '문자열의 길이',
'Time' => '시간',
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'POST 데이터가 너무 큽니다. 데이터 크기를 줄이거나 %s 설정을 늘리십시오.',
'Trigger has been altered.' => '트리거를 변경했습니다.',
'Trigger has been created.' => '트리거를 추가했습니다.',
'Trigger has been dropped.' => '트리거를 제거했습니다.',
'Triggers' => '트리거',
'Truncate' => '데이터 내용만 지우기',
'Type has been created.' => '유형을 추가했습니다.',
'Type has been dropped.' => '유형을 삭제했습니다.',
'Type' => '형',
'Unable to select the table' => '테이블을 선택할 수 없습니다.',
'Unable to upload a file.' => '파일을 업로드 할 수 없습니다.',
'Use edit link to modify this value.' => '이 값을 수정하려면 편집 링크를 사용하십시오.',
'Use' => '사용',
'User has been altered.' => '사용자를 변경했습니다.',
'User has been created.' => '사용자를 만들었습니다.',
'User has been dropped.' => '사용자를 제거했습니다.',
'Username' => '사용자이름',
'Vacuum' => '청소',
'Values' => '값',
'Variables' => '변수',
'View has been altered.' => '보기를 변경했습니다.',
'View has been created.' => '보기를 만들었습니다.',
'View has been dropped.' => '보기를 삭제했습니다.',
'View' => '보기',
'Warnings' => '경고',
'Webserver file %s' => '웹서버 파일 %s',
'Whole result' => '모든 결과',
'yes' => '네',
'You are offline.' => '오프라인입니다.',
'You can upload a big SQL file via FTP and import it from server.' => '큰 SQL 파일은 FTP를 통하여 업로드하여 서버에서 가져올 수 있습니다.',
'You have no privileges to update this table.' => '이 테이블을 업데이트할 권한이 없습니다.',
'Drop %s?' => null,
'Tables have been optimized.' => null,
'as a regular expression' => null,
'Materialized view' => null,
'User types' => null,
'DB' => null,
'Ctrl+click on a value to modify it.' => null,
'File must be in UTF-8 encoding.' => null,
'Copy to clipboard' => null,
'ATTACH queries are not supported.' => null,
'%d / ' => array(),
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
'Default value' => null,
'Full table scan' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array(),
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null,
'There is a space in the input password which might be the cause.' => null,
'If you did not send this request from Adminer then close this page.' => null,
'Saving' => null,
'Unknown error.' => null,
'Database does not support password.' => null,
'Disable %s or enable %s or %s extensions.' => null,
'no' => null,
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'A newer version of AdminerEvo is available, download it now!' => null,
);

View file

@ -1,355 +0,0 @@
<?php
$translations = array(
// label for database system selection (MySQL, SQLite, ...)
'System' => 'Sistema',
'Server' => 'Serveris',
'Username' => 'Vartotojas',
'Password' => 'Slaptažodis',
'Permanent login' => 'Pastovus prisijungimas',
'Login' => 'Prisijungti',
'Logout' => 'Atsijungti',
'Logged as: %s' => 'Prisijungęs kaip: %s',
'Logout successful.' => 'Jūs atsijungėte nuo sistemos.',
'Invalid server or credentials.' => null,
'Language' => 'Kalba',
'Invalid CSRF token. Send the form again.' => 'Neteisingas CSRF tokenas. Bandykite siųsti formos duomenis dar kartą.',
'No extension' => 'Nėra plėtiio',
'None of the supported PHP extensions (%s) are available.' => 'Nėra nei vieno iš palaikomų PHP plėtinių (%s).',
'Session support must be enabled.' => 'Sesijų palaikymas turi būti įjungtas.',
'Session expired, please login again.' => 'Sesijos galiojimas baigėsi. Prisijunkite iš naujo.',
'%s version: %s through PHP extension %s' => '%s versija: %s per PHP plėtinį %s',
'Refresh' => 'Atnaujinti',
// text direction - 'ltr' or 'rtl'
'ltr' => 'ltr',
'Privileges' => 'Privilegijos',
'Create user' => 'Sukurti vartotoją',
'User has been dropped.' => 'Vartotojas ištrintas.',
'User has been altered.' => 'Vartotojo duomenys pakeisti.',
'User has been created.' => 'Vartotojas sukurtas.',
'Hashed' => 'Šifruotas',
'Column' => 'Stulpelis',
'Routine' => 'Procedūra',
'Grant' => 'Suteikti',
'Revoke' => 'Atšaukti',
'Process list' => 'Procesų sąrašas',
'%d process(es) have been killed.' => array('%d procesas nutrauktas.', '%d procesai nutraukti.', '%d procesų nutraukta.'),
'Kill' => 'Nutraukti',
'Variables' => 'Kintamieji',
'Status' => 'Būsena',
'SQL command' => 'SQL užklausa',
'%d query(s) executed OK.' => array('%d užklausa įvykdyta.', '%d užklausos įvykdytos.', '%d užklausų įvykdyta.'),
'Query executed OK, %d row(s) affected.' => array('Užklausa įvykdyta. Pakeistas %d įrašas.', 'Užklausa įvykdyta. Pakeisti %d įrašai.', 'Užklausa įvykdyta. Pakeista %d įrašų.'),
'No commands to execute.' => 'Nėra vykdomų užklausų.',
'Error in query' => 'Klaida užklausoje',
'Execute' => 'Vykdyti',
'Stop on error' => 'Sustabdyti esant klaidai',
'Show only errors' => 'Rodyti tik klaidas',
// sprintf() format for time of the command
'%.3f s' => '%.3f s',
'History' => 'Istorija',
'Clear' => 'Išvalyti',
'Edit all' => 'Redaguoti visus',
'File upload' => 'Failo įkėlimas',
'From server' => 'Iš serverio',
'Webserver file %s' => 'Failas %s iš serverio',
'Run file' => 'Vykdyti failą',
'File does not exist.' => 'Failas neegzistuoja.',
'File uploads are disabled.' => 'Failų įkėlimas išjungtas.',
'Unable to upload a file.' => 'Nepavyko įkelti failo.',
'Maximum allowed file size is %sB.' => 'Maksimalus failo dydis - %sB.',
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'Per daug POST duomenų. Sumažinkite duomenų kiekį arba padidinkite konfigūracijos nustatymą %s.',
'Export' => 'Eksportas',
'Output' => 'Išvestis',
'open' => 'atidaryti',
'save' => 'išsaugoti',
'Format' => 'Formatas',
'Data' => 'Duomenys',
'Database' => 'Duomenų bazė',
'database' => 'duomenų bazė',
'Use' => 'Naudoti',
'Select database' => 'Pasirinkti duomenų bazę',
'Invalid database.' => 'Neteisinga duomenų bazė.',
'Database has been dropped.' => 'Duomenų bazė panaikinta.',
'Databases have been dropped.' => 'Duomenų bazės panaikintos.',
'Database has been created.' => 'Duomenų bazė sukurta.',
'Database has been renamed.' => 'Duomenų bazė pervadinta.',
'Database has been altered.' => 'Duomenų bazė pakeista.',
'Alter database' => 'Redaguoti duomenų bazę',
'Create database' => 'Sukurti duomenų bazę',
'Database schema' => 'Duomenų bazės schema',
// link to current database schema layout
'Permanent link' => 'Pastovi nuoroda',
// thousands separator - must contain single byte
',' => ' ',
'0123456789' => '0123456789',
'Engine' => 'Variklis',
'Collation' => 'Lyginimas',
'Data Length' => 'Duomenų ilgis',
'Index Length' => 'Indekso ilgis',
'Data Free' => 'Laisvos vietos',
'Rows' => 'Įrašai',
'%d in total' => '%d iš viso',
'Analyze' => 'Analizuoti',
'Optimize' => 'Optimizuoti',
'Check' => 'Patikrinti',
'Repair' => 'Pataisyti',
'Truncate' => 'Tuštinti',
'Tables have been truncated.' => 'Lentelės buvo ištuštintos.',
'Move to other database' => 'Perkelti į kitą duomenų bazę',
'Move' => 'Perkelti',
'Tables have been moved.' => 'Lentelės perkeltos.',
'Copy' => 'Kopijuoti',
'Tables have been copied.' => 'Lentelės nukopijuotos.',
'Routines' => 'Procedūros',
'Routine has been called, %d row(s) affected.' => array('Procedūra įvykdyta. %d įrašas pakeistas.', 'Procedūra įvykdyta. %d įrašai pakeisti.', 'Procedūra įvykdyta. %d įrašų pakeista.'),
'Call' => 'Vykdyti',
'Parameter name' => 'Parametro pavadinimas',
'Create procedure' => 'Sukurti procedūrą',
'Create function' => 'Sukurti funkciją',
'Routine has been dropped.' => 'Procedūra pašalinta.',
'Routine has been altered.' => 'Procedūra pakeista.',
'Routine has been created.' => 'Procedūra sukurta.',
'Alter function' => 'Keisti funkciją',
'Alter procedure' => 'Keiskti procedūrą',
'Return type' => 'Grąžinimo tipas',
'Events' => 'Įvykiai',
'Event has been dropped.' => 'Įvykis pašalintas.',
'Event has been altered.' => 'Įvykis pakeistas.',
'Event has been created.' => 'Įvykis sukurtas.',
'Alter event' => 'Redaguoti įvykį',
'Create event' => 'Sukurti įvykį',
'At given time' => 'Nurodytu laiku',
'Every' => 'Kas',
'Schedule' => 'Grafikas',
'Start' => 'Pradžia',
'End' => 'Pabaiga',
'On completion preserve' => 'Įvykdžius išsaugoti',
'Tables' => 'Lentelės',
'Tables and views' => 'Lentelės ir vaizdai',
'Table' => 'Lentelė',
'No tables.' => 'Nėra lentelių.',
'Alter table' => 'Redaguoti lentelę',
'Create table' => 'Sukurti lentelę',
'Table has been dropped.' => 'Lentelė pašalinta.',
'Tables have been dropped.' => 'Lentelės pašalintos.',
'Table has been altered.' => 'Lentelė pakeista.',
'Table has been created.' => 'Lentelė sukurta.',
'Table name' => 'Lentelės pavadinimas',
'Show structure' => 'Rodyti struktūrą',
'engine' => 'variklis',
'collation' => 'palyginimas',
'Column name' => 'Stulpelio pavadinimas',
'Type' => 'Tipas',
'Length' => 'Ilgis',
'Auto Increment' => 'Auto Increment',
'Options' => 'Nustatymai',
'Comment' => 'Komentaras',
'Default values' => 'Reikšmės pagal nutylėjimą',
'Drop' => 'Pašalinti',
'Are you sure?' => 'Tikrai?',
'Move up' => 'Perkelti į viršų',
'Move down' => 'Perkelti žemyn',
'Remove' => 'Pašalinti',
'Maximum number of allowed fields exceeded. Please increase %s.' => 'Viršytas maksimalus leidžiamų stulpelių kiekis. Padidinkite %s.',
'Partition by' => 'Skirstyti pagal',
'Partitions' => 'Skirsniai',
'Partition name' => 'Skirsnio pavadinimas',
'Values' => 'Reikšmės',
'View' => 'Vaizdas',
'View has been dropped.' => 'Vaizdas pašalintas.',
'View has been altered.' => 'Vaizdas pakeistas.',
'View has been created.' => 'Vaizdas sukurtas.',
'Alter view' => 'Redaguoti vaizdą',
'Create view' => 'Sukurti vaizdą',
'Indexes' => 'Indeksai',
'Indexes have been altered.' => 'Indeksai pakeisti.',
'Alter indexes' => 'Redaguoti indeksus',
'Add next' => 'Pridėti kitą',
'Index Type' => 'Indekso tipas',
'Column (length)' => 'Stulpelis (ilgis)',
'Foreign keys' => 'Išoriniai raktai',
'Foreign key' => 'Išorinis raktas',
'Foreign key has been dropped.' => 'Išorinis raktas pašalintas.',
'Foreign key has been altered.' => 'Išorinis raktas pakeistas.',
'Foreign key has been created.' => 'Išorinis raktas sukurtas.',
'Target table' => 'Tikslinė lentelė',
'Change' => 'Pakeisti',
'Source' => 'Šaltinis',
'Target' => 'Tikslas',
'Add column' => 'Pridėti stulpelį',
'Alter' => 'Redaguoti',
'Add foreign key' => 'Pridėti išorinį raktą',
'ON DELETE' => 'Ištrinant',
'ON UPDATE' => 'Atnaujinant',
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'Šaltinio ir tikslinis stulpelis turi būti to paties tipo, tiksliniame stulpelyje turi būti naudojamas indeksas ir duomenys turi egzistuoti.',
'Triggers' => 'Trigeriai',
'Add trigger' => 'Pridėti trigerį',
'Trigger has been dropped.' => 'Trigeris pašalintas.',
'Trigger has been altered.' => 'Trigeris pakeistas.',
'Trigger has been created.' => 'Trigeris sukurtas.',
'Alter trigger' => 'Keisti trigerį',
'Create trigger' => 'Sukurti trigerį',
'Time' => 'Laikas',
'Event' => 'Įvykis',
'Name' => 'Pavadinimas',
'select' => 'atrinkti',
'Select' => 'Atrinkti',
'Select data' => 'Atrinkti duomenis',
'Functions' => 'Funkcijos',
'Aggregation' => 'Agregacija',
'Search' => 'Ieškoti',
'anywhere' => 'visur',
'Search data in tables' => 'Ieškoti duomenų lentelėse',
'Sort' => 'Rikiuoti',
'descending' => 'mažėjimo tvarka',
'Limit' => 'Limitas',
'Text length' => 'Teksto ilgis',
'Action' => 'Veiksmas',
'Unable to select the table' => 'Neįmanoma atrinkti lentelės',
'No rows.' => 'Nėra įrašų.',
'%d row(s)' => array('%d įrašas', '%d įrašai', '%d įrašų'),
'Page' => 'Puslapis',
'last' => 'paskutinis',
'Whole result' => 'Visas rezultatas',
'%d byte(s)' => array('%d baitas', '%d baigai', '%d baitų'),
'Import' => 'Importas',
'%d row(s) have been imported.' => array('%d įrašas įkelta.', '%d įrašai įkelti.', '%d įrašų įkelta.'),
// in-place editing in select
'Use edit link to modify this value.' => 'Norėdami redaguoti reikšmę naudokite redagavimo nuorodą.',
// %s can contain auto-increment value
'Item%s has been inserted.' => 'Įrašas%s sukurtas.',
'Item has been deleted.' => 'Įrašas ištrintas.',
'Item has been updated.' => 'Įrašas pakeistas.',
'%d item(s) have been affected.' => array('Pakeistas %d įrašas.', 'Pakeisti %d įrašai.', 'Pakeistas %d įrašų.'),
'New item' => 'Naujas įrašas',
'original' => 'originalas',
// label for value '' in enum data type
'empty' => 'tuščia',
'edit' => 'redaguoti',
'Edit' => 'Redaguoti',
'Insert' => 'Įrašyti',
'Save' => 'Išsaugoti',
'Save and continue edit' => 'Išsaugoti ir tęsti redagavimą',
'Save and insert next' => 'Išsaugoti ir įrašyti kitą',
'Clone' => 'Klonuoti',
'Delete' => 'Trinti',
'E-mail' => 'El. paštas',
'From' => 'Nuo',
'Subject' => 'Antraštė',
'Attachments' => 'Priedai',
'Send' => 'Siųsti',
'%d e-mail(s) have been sent.' => array('Išsiųstas %d laiškas.', 'Išsiųsti %d laiškai.', 'Išsiųsta %d laiškų.'),
// data type descriptions
'Numbers' => 'Skaičiai',
'Date and time' => 'Data ir laikas',
'Strings' => 'Tekstas',
'Binary' => 'Dvejetainis',
'Lists' => 'Sąrašai',
'Network' => 'Tinklas',
'Geometry' => 'Geometrija',
'Relations' => 'Ryšiai',
'Editor' => 'Redaktorius',
// date format in Editor: $1 yyyy, $2 yy, $3 mm, $4 m, $5 dd, $6 d
'$1-$3-$5' => '$1-$3-$5',
// hint for date format - use language equivalents for day, month and year shortcuts
'[yyyy]-mm-dd' => '[yyyy]-mm-dd',
// hint for time format - use language equivalents for hour, minute and second shortcuts
'HH:MM:SS' => 'HH:MM:SS',
'now' => 'dabar',
// general SQLite error in create, drop or rename database
'File exists.' => 'Failas egzistuoja.',
'Please use one of the extensions %s.' => 'Naudokite vieną iš plėtinių %s.',
// PostgreSQL and MS SQL schema support
'Alter schema' => 'Keisti schemą',
'Create schema' => 'Sukurti schemą',
'Schema has been dropped.' => 'Schema pašalinta.',
'Schema has been created.' => 'Schema sukurta.',
'Schema has been altered.' => 'Schema pakeista.',
'Schema' => 'Schema',
'Invalid schema.' => 'Neteisinga schema.',
// PostgreSQL sequences support
'Sequences' => 'Sekos',
'Create sequence' => 'Sukurti seką',
'Sequence has been dropped.' => 'Seka pašalinta.',
'Sequence has been created.' => 'Seka sukurta.',
'Sequence has been altered.' => 'Seka pakeista.',
'Alter sequence' => 'Keisti seką',
// PostgreSQL user types support
'User types' => 'Vartotojų tipai',
'Create type' => 'Sukurti tipą',
'Type has been dropped.' => 'Tipas pašalintas.',
'Type has been created.' => 'Tipas sukurtas.',
'Alter type' => 'Keisti tipą',
'Drop %s?' => null,
'Tables have been optimized.' => null,
'as a regular expression' => null,
'Materialized view' => null,
'Vacuum' => null,
'Selected' => null,
'overwrite' => null,
'DB' => null,
'Ctrl+click on a value to modify it.' => null,
'File must be in UTF-8 encoding.' => null,
'Modify' => null,
'Load more data' => null,
'Loading' => null,
'Copy to clipboard' => null,
'ATTACH queries are not supported.' => null,
'Warnings' => null,
'%d / ' => array(),
'Limit rows' => null,
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
'Default value' => null,
'Full table scan' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array(),
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null,
'There is a space in the input password which might be the cause.' => null,
'If you did not send this request from Adminer then close this page.' => null,
'You can upload a big SQL file via FTP and import it from server.' => null,
'Size' => null,
'Compute' => null,
'You are offline.' => null,
'You have no privileges to update this table.' => null,
'Saving' => null,
'Unknown error.' => null,
'Database does not support password.' => null,
'Disable %s or enable %s or %s extensions.' => null,
'yes' => null,
'no' => null,
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'A newer version of AdminerEvo is available, download it now!' => null,
);

View file

@ -1,311 +0,0 @@
<?php
$translations = array(
'Login' => 'Ieiet',
'Logout successful.' => 'Jūs veiksmīgi izgājāt no sistēmas.',
'Invalid server or credentials.' => null,
'Server' => 'Serveris',
'Username' => 'Lietotājs',
'Password' => 'Parole',
'Select database' => 'Izvēlēties datubāzi',
'Invalid database.' => 'Nederīga datubāze.',
'Table has been dropped.' => 'Tabula dzēsta.',
'Table has been altered.' => 'Tabula mainīta.',
'Table has been created.' => 'Tabula izveidota.',
'Alter table' => 'Mainīt tabulu',
'Create table' => 'Izveidot tabulu',
'Table name' => 'Tabulas nosaukums',
'engine' => 'Tabulas tips',
'collation' => 'Kolācija',
'Column name' => 'Lauka nosaukums',
'Type' => 'Tips',
'Length' => 'Garums',
'Auto Increment' => 'Auto inkrements',
'Options' => 'Opcijas',
'Save' => 'Saglabāt',
'Drop' => 'Dzēst',
'Database has been dropped.' => 'Datubāze tika nodzēsta.',
'Database has been created.' => 'Datubāze tika izveidota.',
'Database has been renamed.' => 'Datubāze tika pārsaukta.',
'Database has been altered.' => 'Datubāze tika mainīta.',
'Alter database' => 'Mainīt datubāzi',
'Create database' => 'Izveidot datubāzi',
'SQL command' => 'SQL pieprasījums',
'Logout' => 'Iziet',
'database' => 'datubāze',
'Use' => 'Lietot',
'No tables.' => 'Datubāzē nav tabulu.',
'select' => 'izvēlēties',
'Item has been deleted.' => 'Ieraksts dzests.',
'Item has been updated.' => 'Ieraksts atjaunots.',
'Item%s has been inserted.' => 'Ieraksti tika ievietoti.',
'Edit' => 'Rediģēt',
'Insert' => 'Ievietot',
'Save and insert next' => 'Saglabāt un ievietot nākamo',
'Delete' => 'Dzēst',
'Database' => 'Datubāze',
'Routines' => 'Procedūras un funkcijas',
'Indexes have been altered.' => 'Indeksi mainīti.',
'Indexes' => 'Indeksi',
'Alter indexes' => 'Izmainīt indeksus',
'Add next' => 'Pievienot vēl',
'Language' => 'Valoda',
'Select' => 'Izvēlēties',
'New item' => 'Jauns ieraksts',
'Search' => 'Meklēšana',
'Sort' => 'Kārtošana',
'descending' => 'dilstoši',
'Limit' => 'Limits',
'No rows.' => 'Nav rindu.',
'Action' => 'Darbība',
'edit' => 'rediģēt',
'Page' => 'Lapa',
'Query executed OK, %d row(s) affected.' => array('Pieprasījums pabeigts, izmainīts %d ieraksts.', 'Pieprasījums pabeigts, izmainīti %d ieraksti.', 'Pieprasījums pabeigts, izmainīti %d ieraksti.'),
'Error in query' => 'Kļūda pieprasījumā',
'Execute' => 'Izpidīt',
'Table' => 'Tabula',
'Foreign keys' => 'Ārejā atslēgas',
'Triggers' => 'Trigeri',
'View' => 'Skats',
'Unable to select the table' => 'Tabula nav pieejama',
'Invalid CSRF token. Send the form again.' => 'Nederīgs CSRF žetons. Nosūtiet formu vēl vienu reizi.',
'Comment' => 'Komentārs',
'Default values' => 'Noklusētā vērtība',
'%d byte(s)' => array('%d baits', '%d baiti', '%d baiti'),
'No commands to execute.' => 'Nav izpildāmu komandu.',
'Unable to upload a file.' => 'Neizdevās ielādēt failu uz servera.',
'File upload' => 'Augšupielāde',
'File uploads are disabled.' => 'Augšupielādes aizliegtas.',
'Routine has been called, %d row(s) affected.' => array('Procedūra izsaukta, izmainīts %d ieraksts.', 'Procedūra izsaukta, izmainīti %d ieraksti.', 'Procedūra izsaukta, izmainīti %d ieraksti.'),
'Call' => 'Izsaukt',
'No extension' => 'Nav paplašinājuma',
'None of the supported PHP extensions (%s) are available.' => 'Neviens PHP no atbalstītajiem paplašinājumiem (%s) nav pieejams.',
'Session support must be enabled.' => 'Sesiju atbalstam jābūt ieslēgtam.',
'Session expired, please login again.' => 'Sesijas laiks ir beidzies, piesakies no jauna sistēmā.',
'Text length' => 'Teksta garums',
'Foreign key has been dropped.' => 'Ārejā atslēga dzēsta.',
'Foreign key has been altered.' => 'Ārejā atslēga izmainīta.',
'Foreign key has been created.' => 'Ārejā atslēga izveidota.',
'Foreign key' => 'Ārejā atslēga',
'Target table' => 'Mērķa tabula',
'Change' => 'Mainīt',
'Source' => 'Avots',
'Target' => 'Mērķis',
'Add column' => 'Pievienot lauku',
'Alter' => 'Izmainīt',
'Add foreign key' => 'Pievienot ārējo atslēgu',
'ON DELETE' => 'Pie dzēšanas',
'ON UPDATE' => 'Pie atjaunošanas',
'Index Type' => 'Indeksa tips',
'Column (length)' => 'Lauks (garums)',
'View has been dropped.' => 'Skats dzēsts.',
'View has been altered.' => 'Skats izmainīts.',
'View has been created.' => 'Skats izveidots.',
'Alter view' => 'Izmainīt skatu',
'Create view' => 'Izveidot skatu',
'Name' => 'Nosaukums',
'Process list' => 'Procesu saraksts',
'%d process(es) have been killed.' => array('Pabeigts %d process.', 'Pabeigti %d procesi.', 'Pabeigti %d procesi.'),
'Kill' => 'Nobeigt',
'Parameter name' => 'Parametra nosaukums',
'Database schema' => 'Datubāzes shēma',
'Create procedure' => 'Izveidot procedūru',
'Create function' => 'Izveidot funkciju',
'Routine has been dropped.' => 'Procedūru dzēsta.',
'Routine has been altered.' => 'Procedūru izmainīta.',
'Routine has been created.' => 'Procedūru izveidota.',
'Alter function' => 'Mainīt funkciju',
'Alter procedure' => 'Mainīt procedūru',
'Return type' => 'Atgriezt tips',
'Add trigger' => 'Pievienot trigeri',
'Trigger has been dropped.' => 'Trigeris dzēsts.',
'Trigger has been altered.' => 'Trigeris izmainīts.',
'Trigger has been created.' => 'Trigeris izveidots.',
'Alter trigger' => 'Izmainīt trigeri',
'Create trigger' => 'Izveidot trigeri',
'Time' => 'Laiks',
'Event' => 'Notikums',
'%s version: %s through PHP extension %s' => 'Versija %s: %s ar PHP paplašinājumu %s',
'%d row(s)' => array('%d rinda', '%d rindas', '%d rindu'),
'Remove' => 'Noņemt',
'Are you sure?' => 'Vai Tu esi pārliecināts?',
'Privileges' => 'Tiesības',
'Create user' => 'Izveidot lietotāju',
'User has been dropped.' => 'Lietotājs dzests.',
'User has been altered.' => 'Lietotājs izmainīts.',
'User has been created.' => 'Lietotājs izveidots.',
'Hashed' => 'Sajaukts',
'Column' => 'Lauks',
'Routine' => 'Procedūra',
'Grant' => 'Atļaut',
'Revoke' => 'Aizliegt',
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'POST metodes pieprasījums apjoms par lielu. Atsūtiet mazāka apjoma pieprasījumu kā konfigurācijas %s.',
'Logged as: %s' => 'Ielogojies kā: %s',
'Move up' => 'Pārvietot uz augšu',
'Move down' => 'Pārvietot uz leju',
'Functions' => 'Funkcijas',
'Aggregation' => 'Agregācija',
'Export' => 'Eksports',
'Output' => 'Izejas dati',
'open' => 'atvērt',
'save' => 'saglabāt',
'Format' => 'Formāts',
'Tables' => 'Tabulas',
'Data' => 'Dati',
'Event has been dropped.' => 'Notikums dzēsts.',
'Event has been altered.' => 'Notikums izmainīts.',
'Event has been created.' => 'Notikums izveidots.',
'Alter event' => 'Izmainīt notikumu',
'Create event' => 'Izveidot notikumu',
'At given time' => 'Norāditā laikā',
'Every' => 'Katru',
'Events' => 'Notikumi',
'Schedule' => 'Grafiks',
'Start' => 'Sākums',
'End' => 'Beigas',
'Status' => 'Statuss',
'On completion preserve' => 'Beigās saglabāt',
'Tables and views' => 'Tabulas un skati',
'Data Length' => 'Datu apjoms',
'Index Length' => 'Indeksu izmērs',
'Data Free' => 'Brīvā vieta',
'Collation' => 'Kolācija',
'Analyze' => 'Analizēt',
'Optimize' => 'Optimizēt',
'Check' => 'Pārbaudīt',
'Repair' => 'Salabot',
'Truncate' => 'Iztīrīt',
'Tables have been truncated.' => 'Tabulas iztīrītas.',
'Rows' => 'Rindas',
',' => ' ',
'0123456789' => '0123456789',
'Tables have been moved.' => 'Tabulas pārvietotas.',
'Move to other database' => 'Pārvietot uz citu datubāzi',
'Move' => 'Pārvietot',
'Engine' => 'Dzinējs',
'Save and continue edit' => 'Saglabāt un turpināt rediģēt',
'original' => 'oriģināls',
'%d item(s) have been affected.' => array('Izmainīts %d ieraksts.', 'Izmainīti %d ieraksti.', 'Izmainīti %d ieraksti.'),
'Whole result' => 'Viss rezultāts',
'Tables have been dropped.' => 'Tabulas dzēstas.',
'Clone' => 'Klonēt',
'Partition by' => 'Sadalīt pēc',
'Partitions' => 'Partīcijas',
'Partition name' => 'Partīcijas nosaukums',
'Values' => 'Vērtības',
'%d row(s) have been imported.' => array('Importēta %d rinda.', 'Importētas %d rindas.', 'Importētas %d rindas.'),
'Import' => 'Imports',
'Stop on error' => 'Astāties kļūdas gadījumā',
'Maximum number of allowed fields exceeded. Please increase %s.' => 'Sasniegts maksimālais lauku skaita ierobežojums. Palieliniet %s.',
'anywhere' => 'jebkurā vietā',
'%.3f s' => '%.3f s',
'$1-$3-$5' => '$5.$3.$1',
'[yyyy]-mm-dd' => 'dd.mm.[gggg]',
'History' => 'Vēsture',
'Variables' => 'Mainīgie',
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'Lauku tipiem jābūt vienādiem, rezultējošā laukā jābut indeksa datiem.',
'Relations' => 'Relācijas',
'Run file' => 'Izpildīt failu',
'Clear' => 'Notīrīt',
'Maximum allowed file size is %sB.' => 'Faila maksimālais izmērs — %sB.',
'Numbers' => 'Skaitļi',
'Date and time' => 'Datums un laiks',
'Strings' => 'Virknes',
'Binary' => 'Binārie',
'Lists' => 'Saraksti',
'Editor' => 'Redaktors',
'E-mail' => 'Epasts',
'From' => 'No',
'Subject' => 'Tēma',
'Send' => 'Sūtīt',
'%d e-mail(s) have been sent.' => array('Nosūtīts %d epasts.', 'Nosūtīti %d epasti.', 'Nosūtīti %d epasti.'),
'Webserver file %s' => 'Fails %s uz servera',
'File does not exist.' => 'Fails neeksistē.',
'%d in total' => 'Kopā %d',
'Permanent login' => 'Atcerēties mani',
'Databases have been dropped.' => 'Datubāzes dzēstas.',
'Search data in tables' => 'Meklēt tabulās',
'Schema' => 'Shēma',
'Alter schema' => 'Izmainīt shēmu',
'Create schema' => 'Jauna shēma',
'Schema has been dropped.' => 'Shēma dzēsta.',
'Schema has been created.' => 'Izveidota jauna shēma.',
'Schema has been altered.' => 'Shēma izmainīta.',
'Sequences' => 'Virknes',
'Create sequence' => 'Izveidot virkni',
'Alter sequence' => 'Izmainīt virkni',
'Sequence has been dropped.' => 'Virkne dzēsta.',
'Sequence has been created.' => 'Izveidota virkne.',
'Sequence has been altered.' => 'Virkne izmainīta.',
'User types' => 'Lietotāju tipi',
'Create type' => 'Izveidot tipu',
'Alter type' => 'Izmainīt tipu',
'Type has been dropped.' => 'Tips dzēsts.',
'Type has been created.' => 'Tips izveidots.',
'Ctrl+click on a value to modify it.' => 'Lai izmainītu vērtību, izmanto Ctrl + peles klikšķi.',
'Use edit link to modify this value.' => 'Izmainīt vērtību var tikai ar saiti "Izmainīt".',
'last' => 'pēdējā',
'From server' => 'No servera',
'System' => 'Sistēma',
'Select data' => 'Izvēlēties datus',
'Show structure' => 'Parādīt struktūru',
'empty' => 'tukšs',
'Network' => 'Tīkls',
'Geometry' => 'Ģeometrija',
'File exists.' => 'Fails eksistē.',
'Attachments' => 'Pielikumi',
'%d query(s) executed OK.' => array('%d pieprasījums veiksmīgs.', '%d pieprasījumi veiksmīgi.', '%d pieprasījumi veiksmīgi.'),
'Show only errors' => 'Rādīt tikai kļūdas',
'Refresh' => 'Atjaunot',
'Invalid schema.' => 'Nederīga shēma.',
'Please use one of the extensions %s.' => 'Izmainojiet kādu no paplašinājumiem %s.',
'now' => 'tagad',
'ltr' => 'ltr',
'Tables have been copied.' => 'Tabulas nokopētas.',
'Copy' => 'kopēt',
'Permanent link' => 'Pastāvīga saite',
'Edit all' => 'Rediģēt visus',
'HH:MM:SS' => 'HH:MM:SS',
'Tables have been optimized.' => 'Tabulas optimizētas.',
'Materialized view' => 'Matrializēts skats',
'Vacuum' => 'Vakums',
'Selected' => 'Izvēlētie',
'File must be in UTF-8 encoding.' => 'Failam jābūt UTF-8 kodējumam.',
'Modify' => 'Izmainīt',
'Loading' => 'Ielāde',
'Load more data' => 'Ielādēt vēl datus',
'ATTACH queries are not supported.' => 'ATTACH-pieprasījumi nav atbalstīti.',
'%d / ' => '%d / ',
'Limit rows' => 'Rindu limits',
'Default value' => 'Noklusētā vērtība',
'Full table scan' => 'Pilna tabulas analīze',
'Too many unsuccessful logins, try again in %d minute(s).' => array('Pieteikšanās mēģinājumu skaits par lielu. Mēginiet pēc %d minūtes.', 'Pieteikšanās mēģinājumu skaits par lielu. Mēginiet pēc %d minūtēm.', 'Pieteikšanās mēģinājumu skaits par lielu. Mēginiet pēc %d minūtēm.'),
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Master-parole nav derīga. <a href="https://www.adminer.org/en/extension/"%s>Implementējiet</a> metodi %s, lai padarīgu šo par ierastu metodi.',
'If you did not send this request from Adminer then close this page.' => 'Ja nesūtījāt šo pieprasījumu no Adminer, tad aizveriet pārlūka logu.',
'You can upload a big SQL file via FTP and import it from server.' => 'Varat ielādēt lielu SQL failu uz servera un tad importēt to.',
'Size' => 'Izmērs',
'Compute' => 'Izskaitļot',
'You are offline.' => 'Jūs est bezsasaistē.',
'You have no privileges to update this table.' => 'jums nav pieejas labot šo tabulu.',
'Saving' => 'Saglabāšana',
'yes' => 'Jā',
'no' => 'Nē',
'Drop %s?' => 'Dzēst %s?',
'overwrite' => 'pārrakstīt',
'DB' => 'DB',
'Warnings' => 'Brīdinājumi',
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Adminer neatbalsta pieeju bez paroles, <a href="https://www.adminer.org/en/password/"%s>vairāk informācijas šeit</a>.',
'The action will be performed after successful login with the same credentials.' => 'Darbība tiks pabeigta pēc derīgas pieteikšanās sistēmā.',
'Connecting to privileged ports is not allowed.' => 'Pieeja priviliģētiem portiem nav atļauta.',
'There is a space in the input password which might be the cause.' => 'Parole satur atstarpi, kas varētu būt lieka.',
'Unknown error.' => 'Nezināma kļūda.',
'Database does not support password.' => 'Datubāze neatbalsta paroli.',
'Disable %s or enable %s or %s extensions.' => null,
'as a regular expression' => null,
'Copy to clipboard' => null,
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'A newer version of AdminerEvo is available, download it now!' => null,
);

View file

@ -1,355 +0,0 @@
<?php
$translations = array(
// label for database system selection (MySQL, SQLite, ...)
'System' => 'Sistem',
'Server' => 'Pelayan',
'Username' => 'Nama pengguna',
'Password' => 'Kata laluan',
'Permanent login' => 'Log masuk kekal',
'Login' => 'Log masuk',
'Logout' => 'Log keluar',
'Logged as: %s' => 'Log masuk sebagai: %s',
'Logout successful.' => 'Log keluar berjaya.',
'Invalid server or credentials.' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => 'Terlalu banyak percubaan log masuk yang gagal, sila cuba lagi dalam masa %d minit.',
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Kata laluan utama telah luput. <a href="https://www.adminer.org/en/extension/"%s>Gunakan</a> cara %s untuk mengekalkannya.',
'Language' => 'Bahasa',
'Invalid CSRF token. Send the form again.' => 'Token CSRF tidak sah. Sila hantar borang sekali lagi.',
'If you did not send this request from Adminer then close this page.' => 'Jika anda tidak menghantar permintaan ini dari Adminer sila tutup halaman ini.',
'No extension' => 'Tiada sambungan',
'None of the supported PHP extensions (%s) are available.' => 'Sambungan PHP yang (%s) disokong tidak wujud.',
'Connecting to privileged ports is not allowed.' => 'Penyambungan ke port yang istimewa tidak dibenarkan.',
'Session support must be enabled.' => 'Sokongan sesi perlu diaktifkan.',
'Session expired, please login again.' => 'Sesi telah luput, sila log masuk kembali.',
'%s version: %s through PHP extension %s' => 'Versi %s: %s melalui sambungan PHP %s',
'Refresh' => 'Segar kembali',
// text direction - 'ltr' or 'rtl'
'ltr' => 'ltr',
'Privileges' => 'Keistimewaan',
'Create user' => 'Bina pengguna',
'User has been dropped.' => 'Pengguna telah dijatuhkan.',
'User has been altered.' => 'Pengguna telah diubah.',
'User has been created.' => 'Pengguna telah dibuat.',
'Hashed' => 'Hashed',
'Column' => 'Kolum',
'Routine' => 'Rutin',
'Grant' => 'Beri',
'Revoke' => 'Batal',
'Process list' => 'Senarai proses',
'%d process(es) have been killed.' => '%d proses telah dihentikan.',
'Kill' => 'Henti',
'Variables' => 'Pembolehubah',
'Status' => 'Status',
'SQL command' => 'Arahan SQL',
'%d query(s) executed OK.' => '%d query berjaya dilaksanakan.',
'Query executed OK, %d row(s) affected.' => 'Query berjaya dilaksanakan, %d baris terjejas.',
'No commands to execute.' => 'Tiada arahan untuk dilaksanakan.',
'Error in query' => 'Ralat pada query',
'ATTACH queries are not supported.' => 'Query berikut tidak disokong.',
'Execute' => 'Laksana',
'Stop on error' => 'Berhenti jika ralat',
'Show only errors' => 'Paparkan jika ralat',
// sprintf() format for time of the command
'%.3f s' => '%.3f s',
'History' => 'Sejarah',
'Clear' => 'Bersih',
'Edit all' => 'Ubah semua',
'File upload' => 'Muat naik fail',
'From server' => 'Dari pelayan',
'Webserver file %s' => 'Fail pelayan sesawang %s',
'Run file' => 'Jalankan fail',
'File does not exist.' => 'Fail tidak wujud.',
'File uploads are disabled.' => 'Muat naik fail dihalang.',
'Unable to upload a file.' => 'Muat naik fail gagal.',
'Maximum allowed file size is %sB.' => 'Saiz fail maksimum yang dibenarkan adalah %sB.',
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'Data POST terlalu besar. Kecilkan data atau tingkatkan tetapan %s.',
'You can upload a big SQL file via FTP and import it from server.' => 'Anda boleh muat naik fail SQL yang besar melalui FTP dan import melalui pelayan.',
'You are offline.' => 'Anda sedang offline.',
'Export' => 'Eksport',
'Output' => 'Pengeluaran',
'open' => 'buka',
'save' => 'simpan',
'Saving' => 'Menyimpan',
'Format' => 'Format',
'Data' => 'Data',
'Database' => 'Pangkalan data',
'database' => 'pangkalan data',
'Use' => 'Guna',
'Select database' => 'Pilih pangkalan data',
'Invalid database.' => 'Pangkalan data tidak sah.',
'Database has been dropped.' => 'Pangkalan data telah dijatuhkan.',
'Databases have been dropped.' => 'Pangkalan data telah dijatuhkan.',
'Database has been created.' => 'Pangkalan data telah dibuat.',
'Database has been renamed.' => 'Pangkalan data telah ditukar nama.',
'Database has been altered.' => 'Pangkalan data telah diubah.',
'Alter database' => 'Ubah pangkalan data',
'Create database' => 'Bina pangkalan data',
'Database schema' => 'Skema pangkalan data',
// link to current database schema layout
'Permanent link' => 'Pautan kekal',
// thousands separator - must contain single byte
',' => ',',
'0123456789' => '0123456789',
'Engine' => 'Enjin',
'Collation' => 'Collation',
'Data Length' => 'Panjang Data',
'Index Length' => 'Panjang Indeks',
'Data Free' => 'Data Free',
'Rows' => 'Baris',
'%d in total' => '%d secara keseluruhan',
'Analyze' => 'Menganalisis',
'Optimize' => 'Mengoptimum',
'Vacuum' => 'Vacuum',
'Check' => 'Periksa',
'Repair' => 'Baiki',
'Truncate' => 'Memangkas',
'Tables have been truncated.' => 'Jadual telah dimangkaskan.',
'Move to other database' => 'Pindahkan ke pangkalan data yang lain',
'Move' => 'Pindah',
'Tables have been moved.' => 'Jadual telah dipindahkan.',
'Copy' => 'Salin',
'Tables have been copied.' => 'Jadual telah disalin.',
'Routines' => 'Rutin',
'Routine has been called, %d row(s) affected.' => 'Rutin telah dipanggil, %d baris terjejas.',
'Call' => 'Panggil',
'Parameter name' => 'Nama pembolehubah',
'Create procedure' => 'Bina prosedur',
'Create function' => 'Bina fungsi',
'Routine has been dropped.' => 'Rutin telah dijatuhkan.',
'Routine has been altered.' => 'Rutin telah diubah.',
'Routine has been created.' => 'Rutin telah dibuat.',
'Alter function' => 'Ubah fungsi',
'Alter procedure' => 'Ubah prosedur',
'Return type' => 'Jenis Return',
'Events' => 'Peristiwa',
'Event has been dropped.' => 'Peristiwa telah dijatuhkan.',
'Event has been altered.' => 'Peristiwa telah diubah.',
'Event has been created.' => 'Peristiwa telah dibuat.',
'Alter event' => 'Ubah peristiwa',
'Create event' => 'Bina peristiwa',
'At given time' => 'Pada masa tersebut',
'Every' => 'Setiap',
'Schedule' => 'Jadual',
'Start' => 'Mula',
'End' => 'Habis',
'On completion preserve' => 'Dalam melestarikan penyelesaian',
'Tables' => 'Jadual',
'Tables and views' => 'Jadual dan pandangan',
'Table' => 'Jadual',
'No tables.' => 'Tiada jadual.',
'Alter table' => 'Ubah jadual',
'Create table' => 'Bina jadual',
'Table has been dropped.' => 'Jadual telah dijatuhkan.',
'Tables have been dropped.' => 'Jadual telah dijatuhkan.',
'Tables have been optimized.' => 'Jadual telah dioptimumkan.',
'Table has been altered.' => 'Jadual telah diubah.',
'Table has been created.' => 'Jadual telah dibuat.',
'Table name' => 'Nama jadual',
'Show structure' => 'Paparkan struktur',
'engine' => 'enjin',
'collation' => 'collation',
'Column name' => 'Nama kolum',
'Type' => 'Jenis',
'Length' => 'Kepanjangan',
'Auto Increment' => 'Kenaikan Auto',
'Options' => 'Pilihan',
'Comment' => 'Komen',
'Default value' => 'Nilai lalai',
'Default values' => 'Nilai lalai',
'Drop' => 'Jatuh',
'Drop %s?' => 'Jatuhkan %s?',
'Are you sure?' => 'Anda pasti?',
'Size' => 'Saiz',
'Compute' => 'Kira',
'Move up' => 'Gerak ke atas',
'Move down' => 'Gerak ke bawah',
'Remove' => 'Buang',
'Maximum number of allowed fields exceeded. Please increase %s.' => 'Bilangan medan telah melebihi had yang dibenarkan. Sila tingkatkan %s.',
'Partition by' => 'Partition mengikut',
'Partitions' => 'Partition',
'Partition name' => 'Nama partition',
'Values' => 'Nilai',
'View' => 'Papar',
'Materialized view' => 'Paparan yang menjadi kenyataan',
'View has been dropped.' => 'Paparan telah dijatuhkan.',
'View has been altered.' => 'Paparan telah diubah.',
'View has been created.' => 'Paparan telah dibuat.',
'Alter view' => 'Ubah paparan',
'Create view' => 'Bina paparan',
'Indexes' => 'Indeks',
'Indexes have been altered.' => 'Indeks telah diubah.',
'Alter indexes' => 'Ubah indeks',
'Add next' => 'Tambah yang seterusnya',
'Index Type' => 'Jenis Indeks',
'Column (length)' => 'Kolum (kepanjangan)',
'Foreign keys' => 'Kunci asing',
'Foreign key' => 'Kunci asing',
'Foreign key has been dropped.' => 'Kunci asing telah dijatuhkan.',
'Foreign key has been altered.' => 'Kunci asing telah diubah.',
'Foreign key has been created.' => 'Kunci asing telah dibuat.',
'Target table' => 'Jadual sasaran',
'Change' => 'Tukar',
'Source' => 'Sumber',
'Target' => 'Sasaran',
'Add column' => 'Tambah kolum',
'Alter' => 'Ubah',
'Add foreign key' => 'Tambah kunci asing',
'ON DELETE' => 'ON DELETE',
'ON UPDATE' => 'ON UPDATE',
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'Kolum sumber dan sasaran perlu mempunyai jenis data yang sama, indeks diperlukan pada kolum sasaran dan data yang dirujuk wujud.',
'Triggers' => ' Pencetus',
'Add trigger' => 'Tambah pencetus',
'Trigger has been dropped.' => 'Pencetus telah dijatuhkan.',
'Trigger has been altered.' => 'Pencetus telah diubah.',
'Trigger has been created.' => 'Pencetus telah dibuat.',
'Alter trigger' => 'Ubah pencetus',
'Create trigger' => 'Buat pencetus',
'Time' => 'Masa',
'Event' => 'Peristiwa',
'Name' => 'Nama',
'select' => 'pilih',
'Select' => 'Pilih',
'Select data' => 'Pilih data',
'Functions' => 'Fungsi',
'Aggregation' => 'Pengagregatan',
'Search' => 'Cari',
'anywhere' => 'di mana-mana',
'Search data in tables' => 'Cari data dalam jadual',
'Sort' => 'Susun',
'descending' => 'menurun',
'Limit' => 'Had',
'Limit rows' => 'Had baris',
'Text length' => 'Kepanjangan teks',
'Action' => 'Aksi',
'Full table scan' => 'Imbasan penuh jadual',
'Unable to select the table' => 'Pemilihan jadual tidak berjaya',
'No rows.' => 'Tiada baris.',
'%d / ' => '%d / ',
'%d row(s)' => '%d baris',
'Page' => 'Halaman',
'last' => 'akhir',
'Load more data' => 'Load lebih data',
'Loading' => 'Loading',
'Whole result' => 'Keputusan keseluruhan',
'%d byte(s)' => array('%d byte', '%d bytes'),
'Import' => 'Import',
'%d row(s) have been imported.' => '%d baris telah diimport.',
'File must be in UTF-8 encoding.' => 'Fail mesti dalam pengekodan UTF-8.',
// in-place editing in select
'Modify' => 'Pinda',
'Ctrl+click on a value to modify it.' => 'Ctrl+click pada nilai untuk meminda.',
'Use edit link to modify this value.' => 'Guna pautan ubah untuk meminda nilai ini.',
// %s can contain auto-increment value
'Item%s has been inserted.' => 'Item%s telah dimasukkan.',
'Item has been deleted.' => 'Item telah dipadamkan.',
'Item has been updated.' => 'Item telah dikemaskini.',
'%d item(s) have been affected.' => '%d item telah terjejas.',
'New item' => 'Item baru',
'original' => 'asli',
// label for value '' in enum data type
'empty' => 'kosong',
'edit' => 'ubah',
'Edit' => 'Ubah',
'Insert' => 'Masukkan',
'Save' => 'Simpan',
'Save and continue edit' => 'Simpan dan sambung ubah',
'Save and insert next' => 'Simpan dan masukkan seterusnya',
'Selected' => 'Terpilih',
'Clone' => 'Klon',
'Delete' => 'Padam',
'You have no privileges to update this table.' => 'Anda tidak mempunyai keistimewaan untuk mengemaskini jadual ini.',
'E-mail' => 'Emel',
'From' => 'Dari',
'Subject' => 'Subjek',
'Attachments' => 'Lampiran',
'Send' => 'Hantar',
'%d e-mail(s) have been sent.' => '%d emel telah dihantar.',
// data type descriptions
'Numbers' => 'Nombor',
'Date and time' => 'Tarikh dan masa',
'Strings' => 'String',
'Binary' => 'Binari',
'Lists' => 'Senarai',
'Network' => 'Rangkaian',
'Geometry' => 'Geometri',
'Relations' => 'Hubungan',
'Editor' => 'Editor',
// date format in Editor: $1 yyyy, $2 yy, $3 mm, $4 m, $5 dd, $6 d
'$1-$3-$5' => '$1-$3-$5',
// hint for date format - use language equivalents for day, month and year shortcuts
'[yyyy]-mm-dd' => '[yyyy]-mm-dd',
// hint for time format - use language equivalents for hour, minute and second shortcuts
'HH:MM:SS' => 'HH:MM:SS',
'now' => 'sekarang',
'yes' => 'ya',
'no' => 'tidak',
// general SQLite error in create, drop or rename database
'File exists.' => 'Fail wujud.',
'Please use one of the extensions %s.' => 'Sila guna salah satu sambungan %s.',
// PostgreSQL and MS SQL schema support
'Alter schema' => 'Ubah skema',
'Create schema' => 'Buat skema',
'Schema has been dropped.' => 'Skema telah dijatuhkan.',
'Schema has been created.' => 'Skema telah dibuat.',
'Schema has been altered.' => 'Skema telah diubah.',
'Schema' => 'Skema',
'Invalid schema.' => 'Skema tidak sah.',
// PostgreSQL sequences support
'Sequences' => 'Turutan',
'Create sequence' => 'Buat turutan',
'Sequence has been dropped.' => 'Turutan telah dijatuhkan.',
'Sequence has been created.' => 'Turutan telah dibuat.',
'Sequence has been altered.' => 'Turutan telah diubah.',
'Alter sequence' => 'Ubah turutan',
// PostgreSQL user types support
'User types' => 'Jenis pengguna',
'Create type' => 'Buat jenis',
'Type has been dropped.' => 'Jenis telah dijatuhkan.',
'Type has been created.' => 'Jenis telah dibuat.',
'Alter type' => 'Ubah jenis',
'as a regular expression' => null,
'overwrite' => null,
'DB' => null,
'Copy to clipboard' => null,
'Warnings' => null,
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
'The action will be performed after successful login with the same credentials.' => null,
'There is a space in the input password which might be the cause.' => null,
'Unknown error.' => null,
'Database does not support password.' => null,
'Disable %s or enable %s or %s extensions.' => null,
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'A newer version of AdminerEvo is available, download it now!' => null,
);

View file

@ -1,310 +0,0 @@
<?php
$translations = array(
'Login' => 'Aanmelden',
'Logout successful.' => 'Successvol afgemeld.',
'Invalid server or credentials.' => null,
'Server' => 'Server',
'Username' => 'Gebruikersnaam',
'Password' => 'Wachtwoord',
'Select database' => 'Database selecteren',
'Invalid database.' => 'Ongeldige database.',
'Table has been dropped.' => 'Tabel verwijderd.',
'Table has been altered.' => 'Tabel aangepast.',
'Table has been created.' => 'Tabel aangemaakt.',
'Alter table' => 'Tabel aanpassen',
'Create table' => 'Tabel aanmaken',
'Table name' => 'Tabelnaam',
'engine' => 'engine',
'collation' => 'collation',
'Column name' => 'Kolomnaam',
'Type' => 'Type',
'Length' => 'Lengte',
'Auto Increment' => 'Auto nummering',
'Options' => 'Opties',
'Save' => 'Opslaan',
'Drop' => 'Verwijderen',
'Databases have been dropped.' => 'Databases verwijderd.',
'Database has been dropped.' => 'Database verwijderd.',
'Database has been created.' => 'Database aangemaakt.',
'Database has been renamed.' => 'Database hernoemd.',
'Database has been altered.' => 'Database aangepast.',
'Alter database' => 'Database aanpassen',
'Create database' => 'Database aanmaken',
'SQL command' => 'SQL opdracht',
'Logout' => 'Afmelden',
'database' => 'database',
'Use' => 'Gebruik',
'No tables.' => 'Geen tabellen.',
'select' => 'kies',
'Item has been deleted.' => 'Item verwijderd.',
'Item has been updated.' => 'Item aangepast.',
'Item%s has been inserted.' => 'Item%s toegevoegd.',
'Edit' => 'Bewerk',
'Insert' => 'Toevoegen',
'Save and insert next' => 'Opslaan en volgende toevoegen',
'Delete' => 'Verwijderen',
'Database' => 'Database',
'Routines' => 'Procedures',
'Indexes have been altered.' => 'Index aangepast.',
'Indexes' => 'Indexen',
'Alter indexes' => 'Indexen aanpassen',
'Add next' => 'Volgende toevoegen',
'Language' => 'Taal',
'Select' => 'Kies',
'New item' => 'Nieuw item',
'Search' => 'Zoeken',
'Sort' => 'Sorteren',
'descending' => 'Aflopend',
'Limit' => 'Beperk',
'No rows.' => 'Geen rijen.',
'Action' => 'Acties',
'edit' => 'bewerk',
'Page' => 'Pagina',
'Query executed OK, %d row(s) affected.' => array('Query uitgevoerd, %d rij aangepast.', 'Query uitgevoerd, %d rijen aangepast.'),
'Error in query' => 'Fout in query',
'Execute' => 'Uitvoeren',
'Table' => 'Tabel',
'Foreign keys' => 'Foreign keys',
'Triggers' => 'Triggers',
'View' => 'View',
'Unable to select the table' => 'Onmogelijk tabel te selecteren',
'Invalid CSRF token. Send the form again.' => 'Ongeldig CSRF token. Verstuur het formulier opnieuw.',
'Comment' => 'Commentaar',
'Default values' => 'Standaard waarden',
'%d byte(s)' => array('%d byte', '%d bytes'),
'No commands to execute.' => 'Geen opdrachten uit te voeren.',
'Unable to upload a file.' => 'Onmogelijk bestand te uploaden.',
'File upload' => 'Bestand uploaden',
'File uploads are disabled.' => 'Bestanden uploaden is uitgeschakeld.',
'Routine has been called, %d row(s) affected.' => array('Procedure uitgevoerd, %d rij geraakt.', 'Procedure uitgevoerd, %d rijen geraakt.'),
'Call' => 'Uitvoeren',
'No extension' => 'Geen extensie',
'None of the supported PHP extensions (%s) are available.' => 'Geen geldige PHP extensies beschikbaar (%s).',
'Session support must be enabled.' => 'Sessies moeten geactiveerd zijn.',
'Session expired, please login again.' => 'Uw sessie is verlopen. Gelieve opnieuw aan te melden.',
'Text length' => 'Tekst lengte',
'Foreign key has been dropped.' => 'Foreign key verwijderd.',
'Foreign key has been altered.' => 'Foreign key aangepast.',
'Foreign key has been created.' => 'Foreign key aangemaakt.',
'Foreign key' => 'Foreign key',
'Target table' => 'Doeltabel',
'Change' => 'Veranderen',
'Source' => 'Bron',
'Target' => 'Doel',
'Add column' => 'Kolom toevoegen',
'Alter' => 'Aanpassen',
'Add foreign key' => 'Foreign key aanmaken',
'ON DELETE' => 'ON DELETE',
'ON UPDATE' => 'ON UPDATE',
'Index Type' => 'Index type',
'Column (length)' => 'Kolom (lengte)',
'View has been dropped.' => 'View verwijderd.',
'View has been altered.' => 'View aangepast.',
'View has been created.' => 'View aangemaakt.',
'Alter view' => 'View aanpassen',
'Create view' => 'View aanmaken',
'Name' => 'Naam',
'Process list' => 'Proceslijst',
'%d process(es) have been killed.' => array('%d proces gestopt.', '%d processen gestopt.'),
'Kill' => 'Stoppen',
'Parameter name' => 'Parameternaam',
'Database schema' => 'Database schema',
'Create procedure' => 'Procedure aanmaken',
'Create function' => 'Functie aanmaken',
'Routine has been dropped.' => 'Procedure verwijderd.',
'Routine has been altered.' => 'Procedure aangepast.',
'Routine has been created.' => 'Procedure aangemaakt.',
'Alter function' => 'Functie aanpassen',
'Alter procedure' => 'Procedure aanpassen',
'Return type' => 'Return type',
'Add trigger' => 'Trigger aanmaken',
'Trigger has been dropped.' => 'Trigger verwijderd.',
'Trigger has been altered.' => 'Trigger aangepast.',
'Trigger has been created.' => 'Trigger aangemaakt.',
'Alter trigger' => 'Trigger aanpassen',
'Create trigger' => 'Trigger aanmaken',
'Time' => 'Time',
'Event' => 'Event',
'%s version: %s through PHP extension %s' => '%s versie: %s met PHP extensie %s',
'%d row(s)' => array('%d rij', '%d rijen'),
'Remove' => 'Verwijderen',
'Are you sure?' => 'Weet u het zeker?',
'Privileges' => 'Rechten',
'Create user' => 'Gebruiker aanmaken',
'User has been dropped.' => 'Gebruiker verwijderd.',
'User has been altered.' => 'Gebruiker aangepast.',
'User has been created.' => 'Gebruiker aangemaakt.',
'Hashed' => 'Gehashed',
'Column' => 'Kolom',
'Routine' => 'Routine',
'Grant' => 'Toekennen',
'Revoke' => 'Intrekken',
'Logged as: %s' => 'Aangemeld als: %s',
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'POST-data is te groot. Verklein de hoeveelheid data of verhoog de %s configuratie.',
'Move up' => 'Omhoog',
'Move down' => 'Omlaag',
'Export' => 'Exporteren',
'Tables' => 'Tabellen',
'Data' => 'Data',
'Output' => 'Uitvoer',
'open' => 'openen',
'save' => 'opslaan',
'Format' => 'Formaat',
'Functions' => 'Functies',
'Aggregation' => 'Totalen',
'Event has been dropped.' => 'Event werd verwijderd.',
'Event has been altered.' => 'Event werd aangepast.',
'Event has been created.' => 'Event werd aangemaakt.',
'Alter event' => 'Event aanpassen',
'Create event' => 'Event aanmaken',
'Start' => 'Start',
'End' => 'Stop',
'Every' => 'Iedere',
'Status' => 'Status',
'On completion preserve' => 'Bewaren na voltooiing',
'Events' => 'Events',
'Schedule' => 'Schedule',
'At given time' => 'Op aangegeven tijd',
'Save and continue edit' => 'Opslaan en verder bewerken',
'original' => 'origineel',
'Tables have been truncated.' => 'Tabellen werden geleegd.',
'Tables have been moved.' => 'Tabellen werden verplaatst.',
'Tables have been dropped.' => 'Tabellen werden verwijderd.',
'Tables and views' => 'Tabellen en views',
'Engine' => 'Engine',
'Collation' => 'Collatie',
'Data Length' => 'Data lengte',
'Index Length' => 'Index lengte',
'Data Free' => 'Data Vrij',
'Rows' => 'Rijen',
',' => '.',
'0123456789' => '0123456789',
'Analyze' => 'Analyseer',
'Optimize' => 'Optimaliseer',
'Check' => 'Controleer',
'Repair' => 'Herstel',
'Truncate' => 'Legen',
'Move to other database' => 'Verplaats naar andere database',
'Move' => 'Verplaats',
'%d item(s) have been affected.' => array('%d item aangepast.', '%d items aangepast.'),
'Whole result' => 'Volledig resultaat',
'Clone' => 'Dupliceer',
'Maximum number of allowed fields exceeded. Please increase %s.' => 'Maximum aantal velden bereikt. Verhoog %s.',
'Partition by' => 'Partitioneren op',
'Partitions' => 'Partities',
'Partition name' => 'Partitie naam',
'Values' => 'Waarden',
'%d row(s) have been imported.' => array('%d rij werd geïmporteerd.', '%d rijen werden geïmporteerd.'),
'anywhere' => 'overal',
'Import' => 'Importeren',
'Stop on error' => 'Stoppen bij fout',
'%.3f s' => '%.3f s',
'$1-$3-$5' => '$5-$3-$1',
'[yyyy]-mm-dd' => 'dd-mm-[jjjj]',
'History' => 'Geschiedenis',
'Variables' => 'Variabelen',
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'Bron- en doelkolommen moeten van hetzelfde data type zijn, er moet een index bestaan op de gekozen kolommen en er moet gerelateerde data bestaan.',
'Relations' => 'Relaties',
'Run file' => 'Bestand uitvoeren',
'Clear' => 'Wissen',
'Maximum allowed file size is %sB.' => 'Maximum toegelaten bestandsgrootte is %sB.',
'Numbers' => 'Getallen',
'Date and time' => 'Datum en tijd',
'Strings' => 'Tekst',
'Binary' => 'Binaire gegevens',
'Lists' => 'Lijsten',
'Editor' => 'Editor',
'E-mail' => 'E-mail',
'From' => 'Van',
'Subject' => 'Onderwerp',
'Send' => 'Verzenden',
'%d e-mail(s) have been sent.' => array('%d e-mail verzonden.', '%d e-mails verzonden.'),
'Webserver file %s' => 'Webserver bestand %s',
'File does not exist.' => 'Bestand niet gevonden.',
'%d in total' => '%d in totaal',
'Permanent login' => 'Blijf aangemeld',
'Search data in tables' => 'Zoeken in database',
'Schema' => 'Schema',
'Alter schema' => 'Schema wijzigen',
'Create schema' => 'Schema maken',
'Schema has been dropped.' => 'Schema verwijderd.',
'Schema has been created.' => 'Schema aangemaakt.',
'Schema has been altered.' => 'Schema gewijzigd.',
'Sequences' => 'Sequences',
'Create sequence' => 'Sequence maken',
'Alter sequence' => 'Sequence wijzigen',
'Sequence has been dropped.' => 'Sequence verwijderd.',
'Sequence has been created.' => 'Sequence aangemaakt.',
'Sequence has been altered.' => 'Sequence gewijzigd.',
'User types' => 'Gebruikersgedefiniëerde types',
'Create type' => 'Type maken',
'Alter type' => 'Type wijzigen',
'Type has been dropped.' => 'Type verwijderd.',
'Type has been created.' => 'Type aangemaakt.',
'Ctrl+click on a value to modify it.' => 'Ctrl+klik op een waarde om deze te bewerken.',
'Use edit link to modify this value.' => 'Gebruik de link "bewerk" om deze waarde te wijzigen.',
'last' => 'laatste',
'From server' => 'Van server',
'System' => 'Databasesysteem',
'Select data' => 'Gegevens selecteren',
'Show structure' => 'Toon structuur',
'empty' => 'leeg',
'Network' => 'Netwerk',
'Geometry' => 'Geometrie',
'File exists.' => 'Bestand bestaat reeds.',
'Attachments' => 'Bijlagen',
'%d query(s) executed OK.' => array('%d query succesvol uitgevoerd.', '%d querys succesvol uitgevoerd'),
'Show only errors' => 'Enkel fouten tonen',
'Refresh' => 'Vernieuwen',
'Invalid schema.' => 'Ongeldig schema.',
'Please use one of the extensions %s.' => 'Gebruik 1 van volgende extensies: %s.',
'now' => 'nu',
'ltr' => 'ltr',
'Tables have been copied.' => 'De tabellen zijn gekopieerd.',
'Copy' => 'Kopieren',
'Permanent link' => 'Permanente link',
'Edit all' => 'Alles bewerken',
'HH:MM:SS' => 'HH:MM:SS',
'Drop %s?' => 'Verwijder %s?',
'Tables have been optimized.' => 'Tabellen zijn geoptimaliseerd.',
'as a regular expression' => 'als een regular expression',
'Materialized view' => 'Materialized view',
'Vacuum' => 'Vacuum',
'Selected' => 'Geselecteerd',
'overwrite' => 'overschrijven',
'DB' => 'DB',
'File must be in UTF-8 encoding.' => 'Het bestand moet met UTF-8 encodering zijn opgeslagen.',
'Modify' => 'Aanpassen',
'Load more data' => 'Meer data inladen',
'Loading' => 'Aan het laden',
'Copy to clipboard' => 'Kopieer naar het klembord',
'ATTACH queries are not supported.' => 'ATTACH queries worden niet ondersteund',
'Warnings' => 'Waarschuwingen',
'%d / ' => '%d / ',
'Limit rows' => 'Rijen beperken',
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Adminer ondersteunt geen toegang tot databases zonder wachtwoord, <a href="https://www.adminer.org/en/password/"%s>meer informatie</a>.',
'Default value' => 'Standaardwaarde',
'Full table scan' => 'Full table scan',
'Too many unsuccessful logins, try again in %d minute(s).' => array('Teveel foutieve aanmeldpogingen, probeer opnieuw binnen %d minuut.', 'Teveel foutieve aanmeldpogingen, probeer opnieuw binnen %d minuten.'),
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Master wachtwoord verlopen. <a href="https://www.adminer.org/en/extension/"%s>Implementeer</a> de %s methode om het permanent te maken.',
'The action will be performed after successful login with the same credentials.' => 'Deze actie zal uitgevoerd worden na het succesvol aanmelden met dezelfde gebruikersgegevens',
'Connecting to privileged ports is not allowed.' => 'Verbindingen naar geprivilegieerde poorten is niet toegestaan.',
'There is a space in the input password which might be the cause.' => 'Er staat een spatie in het wachtwoord, wat misschien de oorzaak is.',
'If you did not send this request from Adminer then close this page.' => 'Als u deze actie niet via Adminer hebt gedaan, gelieve deze pagina dan te sluiten.',
'You can upload a big SQL file via FTP and import it from server.' => 'U kan een groot SQL-bestand uploaden via FTP en het importeren via de server.',
'Size' => 'Grootte',
'Compute' => 'Bereken',
'You are offline.' => 'U bent offline.',
'You have no privileges to update this table.' => 'U bent niet gemachtigd om deze tabel aan te passen.',
'Saving' => 'Opslaan',
'Unknown error.' => 'Onbekende fout',
'Database does not support password.' => 'Database ondersteunt het wachtwoord niet.',
'Disable %s or enable %s or %s extensions.' => 'Schakel %s uit or schakel extensies %s of %s in.',
'yes' => 'ja',
'no' => 'neen',
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'A newer version of AdminerEvo is available, download it now!' => null,
);

View file

@ -1,310 +0,0 @@
<?php
$translations = array(
'System' => 'System',
'Server' => 'Server',
'Username' => 'Brukernavn',
'Password' => 'Passord',
'Permanent login' => 'Permanent login',
'Login' => 'Logg inn',
'Logout' => 'Logg ut',
'Logged as: %s' => 'Logget inn som: %s',
'Logout successful.' => 'Utlogging vellykket.',
'Invalid server or credentials.' => null,
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Master-passord er utløpt. <a href="https://www.adminer.org/en/extension/"%s>Implementer</a> en metode for %s for å gjøre det permanent.',
'Language' => 'Språk',
'Invalid CSRF token. Send the form again.' => 'Ugylding CSRF-token - Send inn skjemaet igjen.',
'No extension' => 'Ingen utvidelse',
'None of the supported PHP extensions (%s) are available.' => 'Ingen av de støttede PHP-utvidelsene (%s) er tilgjengelige.',
'Session support must be enabled.' => 'Økt-støtte må være skrudd på.',
'Session expired, please login again.' => 'Økt utløpt - vennligst logg inn på nytt.',
'%s version: %s through PHP extension %s' => '%s versjon: %s via PHP-utvidelse %s',
'Refresh' => 'Gjenoppfrisk',
'ltr' => 'venstre-til-høyre',
'Privileges' => 'Privilegier',
'Create user' => 'Lag bruker',
'User has been dropped.' => 'Bruker slettet.',
'User has been altered.' => 'Bruker endret.',
'User has been created.' => 'Bruker opprettet.',
'Hashed' => 'Hashet',
'Column' => 'Kolonne',
'Routine' => 'Rutine',
'Grant' => 'Gi privilegier',
'Revoke' => 'Trekk tilbake',
'Process list' => 'Prosessliste',
'%d process(es) have been killed.' => array('%d prosess avsluttet.', '%d prosesser avsluttet.'),
'Kill' => 'Avslutt',
'Variables' => 'Variabler',
'Status' => 'Status',
'SQL command' => 'SQL-kommando',
'%d query(s) executed OK.' => array('%d kall utført OK.', '%d kall utført OK.'),
'Query executed OK, %d row(s) affected.' => array('Kall utført OK, %d rad påvirket.', 'Kall utført OK, %d rader påvirket.'),
'No commands to execute.' => 'Ingen kommandoer å utføre.',
'Error in query' => 'Feil i forespørsel',
'Execute' => 'Kjør',
'Stop on error' => 'Stopp ved feil',
'Show only errors' => 'Vis bare feil',
'%.3f s' => '%.3f s',
'History' => 'Historie',
'Clear' => 'Tøm skjema',
'Edit all' => 'Rediger alle',
'File upload' => 'Filopplasting',
'From server' => 'Fra server',
'Webserver file %s' => 'Webserver-fil %s',
'Run file' => 'Kjør fil',
'File does not exist.' => 'Filen eksisterer ikke.',
'File uploads are disabled.' => 'Filopplastinger ikke tillatt.',
'Unable to upload a file.' => 'Kunne ikke laste opp fil.',
'Maximum allowed file size is %sB.' => 'Maksimum tillatte filstørrelse er %sB.',
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'For stor datamengde i skjemaet. Reduser datamengden, eller øk størrelsen på %s-konfigurasjonsdirektivet.',
'You can upload a big SQL file via FTP and import it from server.' => 'Du kan laste opp en stor SQL-fil via FTP og importere den fra serveren.',
'Export' => 'Eksport',
'Output' => 'Resultat',
'open' => 'åpne',
'save' => 'lagre',
'Format' => 'Format',
'Data' => 'Data',
'Database' => 'Database',
'database' => 'database',
'Use' => 'Bruk',
'Select database' => 'Velg database',
'Invalid database.' => 'Ugyldig database.',
'Database has been dropped.' => 'Databasen har blitt slettet.',
'Databases have been dropped.' => 'Databasene har blitt slettet.',
'Database has been created.' => 'Databasen er opprettet.',
'Database has been renamed.' => 'Databasen har fått nytt navn.',
'Database has been altered.' => 'Databasen er endret.',
'Alter database' => 'Endre database',
'Create database' => 'Opprett database',
'Database schema' => 'Databaseskjema',
'Permanent link' => 'Permanent lenke',
',' => ' ',
'0123456789' => '0123456789',
'Engine' => 'Motor',
'Collation' => 'Tekstsortering',
'Data Length' => 'Datalengde',
'Index Length' => 'Indekslengde',
'Data Free' => 'Frie data',
'Rows' => 'Rader',
'%d in total' => '%d totalt',
'Analyze' => 'Analyser',
'Optimize' => 'Optimaliser',
'Vacuum' => 'Støvsug',
'Check' => 'Sjekk',
'Repair' => 'Reparer',
'Truncate' => 'Avkort',
'Tables have been truncated.' => 'Tabellene har blitt avkortet.',
'Move to other database' => 'Flytt til annen database',
'Move' => 'Flytt',
'Tables have been moved.' => 'Tabellene har blitt flyttet.',
'Copy' => 'Kopier',
'Tables have been copied.' => 'Tabellene har blitt kopiert.',
'Routines' => 'Rutiner',
'Routine has been called, %d row(s) affected.' => array('Rutinen er utført, %d rad påvirket.', 'Rutinen er utført, %d rader påvirket.'),
'Call' => 'Kall',
'Parameter name' => 'Parameternavn',
'Create procedure' => 'Opprett prosedyre',
'Create function' => 'Opprett funksjon',
'Routine has been dropped.' => 'Rutinen er slettet.',
'Routine has been altered.' => 'Rutinen er endret.',
'Routine has been created.' => 'Rutinen er opprettet.',
'Alter function' => 'Endre funksjon',
'Alter procedure' => 'Endre prosedyre',
'Return type' => 'Returtype',
'Events' => 'Eventer',
'Event has been dropped.' => 'Eventen er slettet.',
'Event has been altered.' => 'Eventen er endret.',
'Event has been created.' => 'Eventen er opprettet.',
'Alter event' => 'Endre event',
'Create event' => 'Opprett event',
'At given time' => 'På gitte tid',
'Every' => 'Hver',
'Schedule' => 'Tidsplan',
'Start' => 'Start',
'End' => 'Slutt',
'On completion preserve' => 'Ved fullførelse bevar',
'Tables' => 'Tabeller',
'Tables and views' => 'Tabeller og views',
'Table' => 'Tabell',
'No tables.' => 'Ingen tabeller.',
'Alter table' => 'Endre tabell',
'Create table' => 'Opprett tabell',
'Table has been dropped.' => 'Tabellen er slettet.',
'Tables have been dropped.' => 'Tabellene er slettet.',
'Tables have been optimized.' => 'Tabellene er blitt optimalisert.',
'Table has been altered.' => 'Tabellen er endret.',
'Table has been created.' => 'Tabellen er opprettet.',
'Table name' => 'Tabellnavn',
'Show structure' => 'Vis struktur',
'engine' => 'mottor',
'collation' => 'sortering',
'Column name' => 'Kolonnenavn',
'Type' => 'Type',
'Length' => 'Lengde',
'Auto Increment' => 'Autoinkrement',
'Options' => 'Valg',
'Comment' => 'Kommentarer',
'Default values' => 'Standardverdier',
'Drop' => 'Dropp',
'Are you sure?' => 'Er du sikker?',
'Move up' => 'Flytt opp',
'Move down' => 'Flytt ned',
'Remove' => 'Fjern',
'Maximum number of allowed fields exceeded. Please increase %s.' => 'Maksimum antall feltnavn overskredet - venligst øk %s.',
'Partition by' => 'Partisjoner ved',
'Partitions' => 'Partisjoner',
'Partition name' => 'Partisjonsnavn',
'Values' => 'Verdier',
'View' => 'View',
'View has been dropped.' => 'Viewet er slettet.',
'View has been altered.' => 'Viewet er endret.',
'View has been created.' => 'Viewet er opprettet.',
'Alter view' => 'Endre view',
'Create view' => 'Lag nytt view',
'Indexes' => 'Indekser',
'Indexes have been altered.' => 'Indeksene er endret.',
'Alter indexes' => 'Endre indekser',
'Add next' => 'Legg til neste',
'Index Type' => 'Indekstype',
'Column (length)' => 'Kolonne (lengde)',
'Foreign keys' => 'Fremmednøkler',
'Foreign key' => 'Fremmednøkkel',
'Foreign key has been dropped.' => 'Fremmednøkkelen er slettet.',
'Foreign key has been altered.' => 'Fremmednøkkelen er endret.',
'Foreign key has been created.' => 'Fremmednøkkelen er opprettet.',
'Target table' => 'Måltabell',
'Change' => 'Endre',
'Source' => 'Kilde',
'Target' => 'Mål',
'Add column' => 'Legg til kolonne',
'Alter' => 'Endre',
'Add foreign key' => 'Legg til fremmednøkkel',
'ON DELETE' => 'ON DELETE',
'ON UPDATE' => 'ON UPDATE',
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'Kilde- og mål-kolonner må ha samme datatype, det må være en indeks på mål-kolonnen, og dataene som refereres til må eksistere.',
'Triggers' => 'Triggere',
'Add trigger' => 'Legg til trigger',
'Trigger has been dropped.' => 'Triggeren er slettet.',
'Trigger has been altered.' => 'Triggeren er endret.',
'Trigger has been created.' => 'Triggeren er opprettet.',
'Alter trigger' => 'Endre trigger',
'Create trigger' => 'Opprett trigger',
'Time' => 'Tid',
'Event' => 'Hendelse',
'Name' => 'Navn',
'select' => 'Vis',
'Select' => 'Velg',
'Select data' => 'Velg data',
'Functions' => 'Funksjoner',
'Aggregation' => 'Sammenfatning',
'Search' => 'Søk',
'anywhere' => 'hvorsomhelst',
'Search data in tables' => 'Søk data i tabeller',
'Sort' => 'Sorter',
'descending' => 'minkende',
'Limit' => 'Skranke',
'Text length' => 'Tekstlengde',
'Action' => 'Handling',
'Full table scan' => 'Full tabell-scan',
'Unable to select the table' => 'Kan ikke velge tabellen',
'No rows.' => 'Ingen rader.',
'%d row(s)' => array('%d rad', '%d rader'),
'Page' => 'Side',
'last' => 'siste',
'Load more data' => 'Last mer data',
'Loading' => 'Laster',
'Whole result' => 'Hele resultatet',
'%d byte(s)' => array('%d byte', '%d bytes'),
'Import' => 'Importer',
'%d row(s) have been imported.' => array('%d rad er importert.', '%d rader er importert.'),
'File must be in UTF-8 encoding.' => 'Filen må være i UTF8-tegnkoding.',
'Modify' => 'Endre',
'Ctrl+click on a value to modify it.' => 'Ctrl+klikk på en verdi for å endre den.',
'Use edit link to modify this value.' => 'Bruk rediger-lengde for å endre dennne verdien.',
'Item%s has been inserted.' => 'Rad%s er satt inn.',
'Item has been deleted.' => 'Raden er slettet.',
'Item has been updated.' => 'Raden er oppdatert.',
'%d item(s) have been affected.' => array('%d rad påvirket.', '%d rader påvirket.'),
'New item' => 'Ny rad',
'original' => 'original',
'empty' => 'tom',
'edit' => 'rediger',
'Edit' => 'Rediger',
'Insert' => 'Sett inn',
'Save' => 'Lagre',
'Save and continue edit' => 'Lagre og fortsett å redigere',
'Save and insert next' => 'Lagre og sett inn neste',
'Selected' => 'Valgt',
'Clone' => 'Klon',
'Delete' => 'Slett',
'You have no privileges to update this table.' => 'Du mangler rettighetene som trengs for å endre denne tabellen.',
'E-mail' => 'E-post',
'From' => 'Fra',
'Subject' => 'Tittel',
'Attachments' => 'Vedlegg',
'Send' => 'Send',
'%d e-mail(s) have been sent.' => array('%d epost sendt.', '%d eposter sendt.'),
'Numbers' => 'Nummer',
'Date and time' => 'Dato og tid',
'Strings' => 'Strenger',
'Binary' => 'Binære',
'Lists' => 'Lister',
'Network' => 'Nettverk',
'Geometry' => 'Geometri',
'Relations' => 'Relasjoner',
'Editor' => 'Redigering',
'$1-$3-$5' => '$6/$4 $1',
'[yyyy]-mm-dd' => 'd/m [åååå]',
'HH:MM:SS' => 'HH:MM:SS',
'now' => 'nå',
'yes' => 'ja',
'no' => 'nei',
'File exists.' => 'Filen finnes.',
'Please use one of the extensions %s.' => 'Vennligst bruk en av filendelsene %s.',
'Alter schema' => 'Endre skjema',
'Create schema' => 'Opprett skjema',
'Schema has been dropped.' => 'Skjemaet er slettet.',
'Schema has been created.' => 'Skjemaet er opprettet.',
'Schema has been altered.' => 'Skjemaet er endret.',
'Schema' => 'Skjema',
'Invalid schema.' => 'Ugylding skjema.',
'Sequences' => 'Sekvenser',
'Create sequence' => 'Opprett sekvens',
'Sequence has been dropped.' => 'Sekvensen er slettet.',
'Sequence has been created.' => 'Sekvensen er opprettet.',
'Sequence has been altered.' => 'Sekvensen er endret.',
'Alter sequence' => 'Endre sekvens',
'User types' => 'Brukertyper',
'Create type' => 'Opprett type',
'Type has been dropped.' => 'Type er slettet.',
'Type has been created.' => 'Type er opprettet.',
'Alter type' => 'Endre type',
'Saving' => 'Lagrer',
'Drop %s?' => null,
'as a regular expression' => null,
'Materialized view' => null,
'overwrite' => null,
'DB' => null,
'Copy to clipboard' => null,
'ATTACH queries are not supported.' => null,
'Warnings' => null,
'%d / ' => array(),
'Limit rows' => null,
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
'Default value' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array(),
'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null,
'There is a space in the input password which might be the cause.' => null,
'If you did not send this request from Adminer then close this page.' => null,
'Size' => null,
'Compute' => null,
'You are offline.' => null,
'Unknown error.' => null,
'Database does not support password.' => null,
'Disable %s or enable %s or %s extensions.' => null,
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'A newer version of AdminerEvo is available, download it now!' => null,
);

View file

@ -1,356 +0,0 @@
<?php
$translations = array(
// label for database system selection (MySQL, SQLite, ...)
'System' => 'Rodzaj bazy',
'Server' => 'Serwer',
'Username' => 'Użytkownik',
'Password' => 'Hasło',
'Permanent login' => 'Zapamiętaj sesję',
'Login' => 'Zaloguj się',
'Logout' => 'Wyloguj',
'Logged as: %s' => 'Zalogowany jako: %s',
'Logout successful.' => 'Wylogowano pomyślnie.',
// 'Invalid credentials.' => 'Nieprawidłowy serwer lub dane logowania.',
'Too many unsuccessful logins, try again in %d minute(s).' => array('Za dużo nieudanych prób logowania, spróbuj ponownie za %d minutę.', 'Za dużo nieudanych prób logowania, spróbuj ponownie za %d minuty.', 'Za dużo nieudanych prób logowania, spróbuj ponownie za %d minut.'),
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Ważność hasła głównego wygasła. <a href="https://www.adminer.org/pl/extension/"%s>Zaimplementuj</a> własną metodę %s, aby ustawić je na stałe.',
'Language' => 'Język',
'Invalid CSRF token. Send the form again.' => 'Nieprawidłowy token CSRF. Spróbuj wysłać formularz ponownie.',
'If you did not send this request from Adminer then close this page.' => 'Jeżeli nie wywołałeś tej strony z Adminera, zamknij to okno.',
'No extension' => 'Brak rozszerzenia',
'None of the supported PHP extensions (%s) are available.' => 'Żadne z rozszerzeń PHP umożliwiających połączenie się z bazą danych (%s) nie jest dostępne.',
'Connecting to privileged ports is not allowed.' => 'Łączenie do portów uprzywilejowanych jest niedozwolone.',
'Session support must be enabled.' => 'Wymagana jest obsługa sesji w PHP.',
'Session expired, please login again.' => 'Sesja wygasła, zaloguj się ponownie.',
'%s version: %s through PHP extension %s' => 'Wersja %s: %s za pomocą %s',
'Refresh' => 'Odśwież',
// text direction - 'ltr' or 'rtl'
'ltr' => 'ltr',
'Privileges' => 'Uprawnienia użytkowników',
'Create user' => 'Dodaj użytkownika',
'User has been dropped.' => 'Użytkownik został usunięty.',
'User has been altered.' => 'Użytkownik został zmieniony.',
'User has been created.' => 'Użytkownik został dodany.',
'Hashed' => 'Zahashowane',
'Column' => 'Kolumna',
'Routine' => 'Procedura',
'Grant' => 'Uprawnienia',
'Revoke' => 'Usuń uprawnienia',
'Process list' => 'Lista procesów',
'%d process(es) have been killed.' => array('Przerwano %d wątek.', 'Przerwano %d wątki.', 'Przerwano %d wątków.'),
'Kill' => 'Przerwij wykonywanie',
'Variables' => 'Zmienne',
'Status' => 'Status',
'SQL command' => 'Zapytanie SQL',
'%d query(s) executed OK.' => array('Pomyślnie wykonano %d zapytanie.', 'Pomyślnie wykonano %d zapytania.', 'Pomyślnie wykonano %d zapytań.'),
'Query executed OK, %d row(s) affected.' => array('Zapytanie wykonane pomyślnie, zmieniono %d rekord.', 'Zapytanie wykonane pomyślnie, zmieniono %d rekordy.', 'Zapytanie wykonane pomyślnie, zmieniono %d rekordów.'),
'No commands to execute.' => 'Nic do wykonania.',
'Error in query' => 'Błąd w zapytaniu',
'ATTACH queries are not supported.' => 'Zapytania ATTACH są niewspierane.',
'Execute' => 'Wykonaj',
'Stop on error' => 'Zatrzymaj w przypadku błędu',
'Show only errors' => 'Pokaż tylko błędy',
// sprintf() format for time of the command
'%.3f s' => '%.3f s',
'History' => 'Historia',
'Clear' => 'Wyczyść',
'Edit all' => 'Edytuj wszystkie',
'File upload' => 'Wgranie pliku',
'From server' => 'Z serwera',
'Webserver file %s' => 'Plik %s na serwerze',
'Run file' => 'Uruchom z pliku',
'File does not exist.' => 'Plik nie istnieje.',
'File uploads are disabled.' => 'Wgrywanie plików jest wyłączone.',
'Unable to upload a file.' => 'Wgranie pliku było niemożliwe.',
'Maximum allowed file size is %sB.' => 'Maksymalna wielkość pliku to %sB.',
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'Przesłano zbyt dużo danych. Zmniejsz objętość danych lub zwiększ zmienną konfiguracyjną %s.',
'You can upload a big SQL file via FTP and import it from server.' => 'Większe pliki SQL możesz wgrać na serwer poprzez FTP przed zaimportowaniem.',
'You are offline.' => 'Jesteś offline.',
'Export' => 'Eksport',
'Output' => 'Rezultat',
'open' => 'otwórz',
'save' => 'zapisz',
'Format' => 'Format',
'Data' => 'Dane',
'Database' => 'Baza danych',
'database' => 'baza danych',
'Use' => 'Wybierz',
'Select database' => 'Wybierz bazę danych',
'Invalid database.' => 'Nie znaleziono bazy danych.',
'Database has been dropped.' => 'Baza danych została usunięta.',
'Databases have been dropped.' => 'Bazy danych zostały usunięte.',
'Database has been created.' => 'Baza danych została utworzona.',
'Database has been renamed.' => 'Nazwa bazy danych została zmieniona.',
'Database has been altered.' => 'Baza danych została zmieniona.',
'Alter database' => 'Zmień bazę danych',
'Create database' => 'Utwórz bazę danych',
'Database schema' => 'Schemat bazy danych',
// link to current database schema layout
'Permanent link' => 'Trwały link',
// thousands separator - must contain single byte
',' => ' ',
'0123456789' => '0123456789',
'Engine' => 'Składowanie',
'Collation' => 'Porównywanie znaków',
'Data Length' => 'Rozmiar danych',
'Index Length' => 'Rozmiar indeksów',
'Data Free' => 'Wolne miejsce',
'Rows' => 'Liczba rekordów',
'%d in total' => '%d w sumie',
'Analyze' => 'Analizuj',
'Optimize' => 'Optymalizuj',
'Vacuum' => 'Wyczyść',
'Check' => 'Sprawdź',
'Repair' => 'Napraw',
'Truncate' => 'Opróżnij',
'Tables have been truncated.' => 'Tabele zostały opróżnione.',
'Move to other database' => 'Przenieś do innej bazy danych',
'Move' => 'Przenieś',
'Tables have been moved.' => 'Tabele zostały przeniesione.',
'Copy' => 'Kopiuj',
'Tables have been copied.' => 'Tabele zostały skopiowane.',
'Routines' => 'Procedury i funkcje',
'Routine has been called, %d row(s) affected.' => array('Procedura została uruchomiona, zmieniono %d rekord.', 'Procedura została uruchomiona, zmieniono %d rekordy.', 'Procedura została uruchomiona, zmieniono %d rekordów.'),
'Call' => 'Uruchom',
'Parameter name' => 'Nazwa parametru',
'Create procedure' => 'Utwórz procedurę',
'Create function' => 'Utwórz funkcję',
'Routine has been dropped.' => 'Procedura została usunięta.',
'Routine has been altered.' => 'Procedura została zmieniona.',
'Routine has been created.' => 'Procedura została utworzona.',
'Alter function' => 'Zmień funkcję',
'Alter procedure' => 'Zmień procedurę',
'Return type' => 'Zwracany typ',
'Events' => 'Wydarzenia',
'Event has been dropped.' => 'Wydarzenie zostało usunięte.',
'Event has been altered.' => 'Wydarzenie zostało zmienione.',
'Event has been created.' => 'Wydarzenie zostało utworzone.',
'Alter event' => 'Zmień wydarzenie',
'Create event' => 'Utwórz wydarzenie',
'At given time' => 'O danym czasie',
'Every' => 'Wykonuj co',
'Schedule' => 'Harmonogram',
'Start' => 'Początek',
'End' => 'Koniec',
'On completion preserve' => 'Nie kasuj wydarzenia po przeterminowaniu',
'Tables' => 'Tabele',
'Tables and views' => 'Tabele i perspektywy',
'Table' => 'Tabela',
'No tables.' => 'Brak tabel.',
'Alter table' => 'Zmień tabelę',
'Create table' => 'Utwórz tabelę',
'Table has been dropped.' => 'Tabela została usunięta.',
'Tables have been dropped.' => 'Tabele zostały usunięte.',
'Tables have been optimized.' => 'Tabele zostały zoptymalizowane.',
'Table has been altered.' => 'Tabela została zmieniona.',
'Table has been created.' => 'Tabela została utworzona.',
'Table name' => 'Nazwa tabeli',
'Show structure' => 'Struktura tabeli',
'engine' => 'składowanie',
'collation' => 'porównywanie znaków',
'Column name' => 'Nazwa kolumny',
'Type' => 'Typ',
'Length' => 'Długość',
'Auto Increment' => 'Auto Increment',
'Options' => 'Opcje',
'Comment' => 'Komentarz',
'Default value' => 'Wartość domyślna',
'Default values' => 'Wartości domyślne',
'Drop' => 'Usuń',
'Drop %s?' => 'Usunąć %s?',
'Are you sure?' => 'Czy jesteś pewien?',
'Size' => 'Wielkość',
'Compute' => 'Oblicz',
'Move up' => 'Przesuń w górę',
'Move down' => 'Przesuń w dół',
'Remove' => 'Usuń',
'Maximum number of allowed fields exceeded. Please increase %s.' => 'Przekroczono maksymalną liczbę pól. Zwiększ %s.',
'Partition by' => 'Partycjonowanie',
'Partitions' => 'Partycje',
'Partition name' => 'Nazwa partycji',
'Values' => 'Wartości',
'View' => 'Perspektywa',
'Materialized view' => 'Zmaterializowana perspektywa',
'View has been dropped.' => 'Perspektywa została usunięta.',
'View has been altered.' => 'Perspektywa została zmieniona.',
'View has been created.' => 'Perspektywa została utworzona.',
'Alter view' => 'Zmień perspektywę',
'Create view' => 'Utwórz perspektywę',
'Indexes' => 'Indeksy',
'Indexes have been altered.' => 'Indeksy zostały zmienione.',
'Alter indexes' => 'Zmień indeksy',
'Add next' => 'Dodaj następny',
'Index Type' => 'Typ indeksu',
'Column (length)' => 'Kolumna (długość)',
'Foreign keys' => 'Klucze obce',
'Foreign key' => 'Klucz obcy',
'Foreign key has been dropped.' => 'Klucz obcy został usunięty.',
'Foreign key has been altered.' => 'Klucz obcy został zmieniony.',
'Foreign key has been created.' => 'Klucz obcy został utworzony.',
'Target table' => 'Tabela docelowa',
'Change' => 'Zmień',
'Source' => 'Źródło',
'Target' => 'Cel',
'Add column' => 'Dodaj kolumnę',
'Alter' => 'Zmień',
'Add foreign key' => 'Dodaj klucz obcy',
'ON DELETE' => 'W przypadku usunięcia',
'ON UPDATE' => 'W przypadku zmiany',
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'Źródłowa i docelowa kolumna muszą być tego samego typu, powinien istnieć indeks na docelowej kolumnie oraz muszą istnieć dane referencyjne.',
'Triggers' => 'Wyzwalacze',
'Add trigger' => 'Dodaj wyzwalacz',
'Trigger has been dropped.' => 'Wyzwalacz został usunięty.',
'Trigger has been altered.' => 'Wyzwalacz został zmieniony.',
'Trigger has been created.' => 'Wyzwalacz został utworzony.',
'Alter trigger' => 'Zmień wyzwalacz',
'Create trigger' => 'Utwórz wyzwalacz',
'Time' => 'Czas',
'Event' => 'Wydarzenie',
'Name' => 'Nazwa',
'select' => 'przeglądaj',
'Select' => 'pokaż',
'Select data' => 'Pokaż dane',
'Functions' => 'Funkcje',
'Aggregation' => 'Agregacje',
'Search' => 'Szukaj',
'anywhere' => 'gdziekolwiek',
'Search data in tables' => 'Wyszukaj we wszystkich tabelach',
'Sort' => 'Sortuj',
'descending' => 'malejąco',
'Limit' => 'Limit',
'Limit rows' => 'Limit rekordów',
'Text length' => 'Długość tekstu',
'Action' => 'Czynność',
'Full table scan' => 'Wymaga pełnego przeskanowania tabeli',
'Unable to select the table' => 'Nie udało się pobrać danych z tabeli',
'No rows.' => 'Brak rekordów.',
'%d / ' => '%d / ',
'%d row(s)' => array('%d rekord', '%d rekordy', '%d rekordów'),
'Page' => 'Strona',
'last' => 'ostatni',
'Load more data' => 'Wczytaj więcej danych',
'Loading' => 'Wczytywanie',
'Whole result' => 'Wybierz wszystkie',
'%d byte(s)' => array('%d bajt', '%d bajty', '%d bajtów'),
'Import' => 'Import',
'%d row(s) have been imported.' => array('%d rekord został zaimportowany.', '%d rekordy zostały zaimportowane.', '%d rekordów zostało zaimportowanych.'),
'File must be in UTF-8 encoding.' => 'Kodowanie pliku musi być ustawione na UTF-8.',
// in-place editing in select
'Modify' => 'Zmień',
'Ctrl+click on a value to modify it.' => 'Ctrl+kliknij wartość, aby ją edytować.',
'Use edit link to modify this value.' => 'Użyj linku edycji aby zmienić tę wartość.',
// %s can contain auto-increment value
'Item%s has been inserted.' => 'Rekord%s został dodany.',
'Item has been deleted.' => 'Rekord został usunięty.',
'Item has been updated.' => 'Rekord został zaktualizowany.',
'%d item(s) have been affected.' => array('Zmieniono %d rekord.', 'Zmieniono %d rekordy.', 'Zmieniono %d rekordów.'),
'New item' => 'Nowy rekord',
'original' => 'bez zmian',
// label for value '' in enum data type
'empty' => 'puste',
'edit' => 'edytuj',
'Edit' => 'Edytuj',
'Insert' => 'Dodaj',
'Save' => 'Zapisz zmiany',
'Saving' => 'Zapisywanie',
'Save and continue edit' => 'Zapisz i kontynuuj edycję',
'Save and insert next' => 'Zapisz i dodaj następny',
'Selected' => 'Zaznaczone',
'Clone' => 'Duplikuj',
'Delete' => 'Usuń',
'You have no privileges to update this table.' => 'Brak uprawnień do edycji tej tabeli',
'E-mail' => 'E-mail',
'From' => 'Nadawca',
'Subject' => 'Temat',
'Attachments' => 'Załączniki',
'Send' => 'Wyślij',
'%d e-mail(s) have been sent.' => array('Wysłano %d e-mail.', 'Wysłano %d e-maile.', 'Wysłano %d e-maili.'),
// data type descriptions
'Numbers' => 'Numeryczne',
'Date and time' => 'Data i czas',
'Strings' => 'Tekstowe',
'Binary' => 'Binarne',
'Lists' => 'Listy',
'Network' => 'Sieć',
'Geometry' => 'Geometria',
'Relations' => 'Relacje',
'Editor' => 'Edytor',
// date format in Editor: $1 yyyy, $2 yy, $3 mm, $4 m, $5 dd, $6 d
'$1-$3-$5' => '$6.$4.$1',
// hint for date format - use language equivalents for day, month and year shortcuts
'[yyyy]-mm-dd' => 'd.m.[rrrr]',
// hint for time format - use language equivalents for hour, minute and second shortcuts
'HH:MM:SS' => 'HH:MM:SS',
'now' => 'teraz',
'yes' => 'tak',
'no' => 'nie',
// general SQLite error in create, drop or rename database
'File exists.' => 'Plik już istnieje.',
'Please use one of the extensions %s.' => 'Proszę użyć jednego z rozszerzeń: %s.',
// PostgreSQL and MS SQL schema support
'Alter schema' => 'Zmień schemat',
'Create schema' => 'Utwórz schemat',
'Schema has been dropped.' => 'Schemat został usunięty.',
'Schema has been created.' => 'Schemat został utworzony.',
'Schema has been altered.' => 'Schemat został zmieniony.',
'Schema' => 'Schemat',
'Invalid schema.' => 'Nieprawidłowy schemat.',
// PostgreSQL sequences support
'Sequences' => 'Sekwencje',
'Create sequence' => 'Utwórz sekwencję',
'Sequence has been dropped.' => 'Sekwencja została usunięta.',
'Sequence has been created.' => 'Sekwencja została utworzona.',
'Sequence has been altered.' => 'Sekwencja została zmieniona.',
'Alter sequence' => 'Zmień sekwencję',
// PostgreSQL user types support
'User types' => 'Typy użytkownika',
'Create type' => 'Utwórz typ',
'Type has been dropped.' => 'Typ został usunięty.',
'Type has been created.' => 'Typ został utworzony.',
'Alter type' => 'Zmień typ',
'as a regular expression' => null,
'overwrite' => null,
'DB' => null,
'Copy to clipboard' => null,
'Warnings' => null,
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
'The action will be performed after successful login with the same credentials.' => null,
'There is a space in the input password which might be the cause.' => null,
'Unknown error.' => null,
'Database does not support password.' => null,
'Disable %s or enable %s or %s extensions.' => null,
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'A newer version of AdminerEvo is available, download it now!' => null,
'Invalid server or credentials.' => null,
);

View file

@ -1,310 +0,0 @@
<?php
$translations = array(
'Login' => 'Entrar',
'Logout successful.' => 'Saída bem sucedida.',
'Invalid server or credentials.' => null,
'Server' => 'Servidor',
'Username' => 'Usuário',
'Password' => 'Senha',
'Select database' => 'Selecionar Base de dados',
'Invalid database.' => 'Base de dados inválida.',
'Table has been dropped.' => 'A Tabela foi eliminada.',
'Table has been altered.' => 'A Tabela foi alterada.',
'Table has been created.' => 'A Tabela foi criada.',
'Alter table' => 'Alterar estrutura',
'Create table' => 'Criar tabela',
'Table name' => 'Nome da tabela',
'engine' => 'motor',
'collation' => 'collation',
'Column name' => 'Nome da coluna',
'Type' => 'Tipo',
'Length' => 'Tamanho',
'Auto Increment' => 'Incremento Automático',
'Options' => 'Opções',
'Save' => 'Salvar',
'Drop' => 'Apagar',
'Database has been dropped.' => 'A Base de dados foi apagada.',
'Database has been created.' => 'A Base de dados foi criada.',
'Database has been renamed.' => 'A Base de dados foi renomeada.',
'Database has been altered.' => 'A Base de dados foi alterada.',
'Alter database' => 'Alterar Base de dados',
'Create database' => 'Criar Base de dados',
'SQL command' => 'Comando SQL',
'Logout' => 'Sair',
'database' => 'base de dados',
'Use' => 'Usar',
'No tables.' => 'Não existem tabelas.',
'select' => 'selecionar',
'Item has been deleted.' => 'O Registro foi deletado.',
'Item has been updated.' => 'O Registro foi atualizado.',
'Item%s has been inserted.' => 'O Registro%s foi inserido.',
'Edit' => 'Editar',
'Insert' => 'Inserir',
'Save and insert next' => 'Salvar e inserir outro',
'Delete' => 'Deletar',
'Database' => 'Base de dados',
'Routines' => 'Rotinas',
'Indexes have been altered.' => 'Os Índices foram alterados.',
'Indexes' => 'Índices',
'Alter indexes' => 'Alterar índices',
'Add next' => 'Adicionar próximo',
'Language' => 'Idioma',
'Select' => 'Selecionar',
'New item' => 'Novo Registro',
'Search' => 'Procurar',
'Sort' => 'Ordenar',
'descending' => 'decrescente',
'Limit' => 'Limite',
'No rows.' => 'Não existem registros.',
'Action' => 'Ação',
'edit' => 'editar',
'Page' => 'Página',
'Query executed OK, %d row(s) affected.' => array('Consulta executada, %d registro afetado.', 'Consulta executada, %d registros afetados.'),
'Error in query' => 'Erro na consulta',
'Execute' => 'Executar',
'Table' => 'Tabela',
'Foreign keys' => 'Chaves estrangeiras',
'Triggers' => 'Triggers',
'View' => 'Visão',
'Unable to select the table' => 'Não é possível selecionar a Tabela',
'Invalid CSRF token. Send the form again.' => 'Token CSRF inválido. Enviar o formulário novamente.',
'Comment' => 'Comentário',
'Default values' => 'Valores padrões',
'%d byte(s)' => array('%d byte', '%d bytes'),
'No commands to execute.' => 'Nenhum comando para executar.',
'Unable to upload a file.' => 'Não é possível enviar o arquivo.',
'File upload' => 'Importar arquivo',
'File uploads are disabled.' => 'Importação de arquivos desabilitada.',
'Routine has been called, %d row(s) affected.' => array('Rotina executada, %d registro afetado.', 'Rotina executada, %d registros afetados.'),
'Call' => 'Chamar',
'No extension' => 'Não há extension',
'None of the supported PHP extensions (%s) are available.' => 'Nenhuma das extensões PHP suportadas (%s) está disponível.',
'Session support must be enabled.' => 'Suporte a sessões deve estar habilitado.',
'Session expired, please login again.' => 'Sessão expirada, por favor logue-se novamente.',
'Text length' => 'Tamanho de texto',
'Foreign key has been dropped.' => 'A Chave Estrangeira foi apagada.',
'Foreign key has been altered.' => 'A Chave Estrangeira foi alterada.',
'Foreign key has been created.' => 'A Chave Estrangeira foi criada.',
'Foreign key' => 'Chave Estrangeira',
'Target table' => 'Tabela de destino',
'Change' => 'Modificar',
'Source' => 'Origem',
'Target' => 'Destino',
'Add column' => 'Adicionar coluna',
'Alter' => 'Alterar',
'Add foreign key' => 'Adicionar Chave Estrangeira',
'ON DELETE' => 'ON DELETE',
'ON UPDATE' => 'ON UPDATE',
'Index Type' => 'Tipo de índice',
'Column (length)' => 'Coluna (tamanho)',
'View has been dropped.' => 'A Visão foi apagada.',
'View has been altered.' => 'A Visão foi alterada.',
'View has been created.' => 'A Visão foi criada.',
'Alter view' => 'Alterar visão',
'Create view' => 'Criar visão',
'Name' => 'Nome',
'Process list' => 'Lista de processos',
'%d process(es) have been killed.' => array('%d processo foi terminado.', '%d processos foram terminados.'),
'Kill' => 'Parar',
'Parameter name' => 'Nome de Parâmetro',
'Database schema' => 'Esquema de Base de dados',
'Create procedure' => 'Criar procedimento',
'Create function' => 'Criar função',
'Routine has been dropped.' => 'A Rotina foi apagada.',
'Routine has been altered.' => 'A Rotina foi alterada.',
'Routine has been created.' => 'A Rotina foi criada.',
'Alter function' => 'Alterar função',
'Alter procedure' => 'Alterar procedimento',
'Return type' => 'Tipo de valor de retorno',
'Add trigger' => 'Adicionar trigger',
'Trigger has been dropped.' => 'O Trigger foi apagado.',
'Trigger has been altered.' => 'O Trigger foi alterado.',
'Trigger has been created.' => 'O Trigger foi criado.',
'Alter trigger' => 'Alterar Trigger',
'Create trigger' => 'Adicionar Trigger',
'Time' => 'Tempo',
'Event' => 'Evento',
'%s version: %s through PHP extension %s' => 'Versão %s: %s através da extensão PHP %s',
'%d row(s)' => array('%d registro', '%d registros'),
'Remove' => 'Remover',
'Are you sure?' => 'Você tem certeza?',
'Privileges' => 'Privilégios',
'Create user' => 'Criar Usuário',
'User has been dropped.' => 'O Usuário foi apagado.',
'User has been altered.' => 'O Usuário foi alterado.',
'User has been created.' => 'O Usuário foi criado.',
'Hashed' => 'Hash',
'Column' => 'Coluna',
'Routine' => 'Rotina',
'Grant' => 'Conceder',
'Revoke' => 'Impedir',
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'POST data demasiado grande. Reduza o tamanho ou aumente a diretiva de configuração %s.',
'Logged as: %s' => 'Logado como: %s',
'Move up' => 'Mover acima',
'Move down' => 'Mover abaixo',
'Functions' => 'Funções',
'Aggregation' => 'Adições',
'Export' => 'Exportar',
'Output' => 'Saída',
'open' => 'abrir',
'save' => 'salvar',
'Format' => 'Formato',
'Tables' => 'Tabelas',
'Data' => 'Dados',
'Event has been dropped.' => 'O Evento foi apagado.',
'Event has been altered.' => 'O Evento foi alterado.',
'Event has been created.' => 'O Evento foi criado.',
'Alter event' => 'Modificar Evento',
'Create event' => 'Criar Evento',
'At given time' => 'A hora determinada',
'Every' => 'Cada',
'Events' => 'Eventos',
'Schedule' => 'Agenda',
'Start' => 'Início',
'End' => 'Fim',
'Status' => 'Estado',
'On completion preserve' => 'Ao completar preservar',
'Tables and views' => 'Tabelas e Visões',
'Data Length' => 'Tamanho de dados',
'Index Length' => 'Tamanho de índice',
'Data Free' => 'Espaço Livre',
'Collation' => 'Colação',
'Analyze' => 'Analisar',
'Optimize' => 'Otimizar',
'Check' => 'Verificar',
'Repair' => 'Reparar',
'Truncate' => 'Truncar',
'Tables have been truncated.' => 'As Tabelas foram truncadas.',
'Rows' => 'Registros',
',' => ' ',
'0123456789' => '0123456789',
'Tables have been moved.' => 'As Tabelas foram movidas.',
'Move to other database' => 'Mover para outra Base de dados',
'Move' => 'Mover',
'Engine' => 'Motor',
'Save and continue edit' => 'Salvar e continuar editando',
'original' => 'original',
'Tables have been dropped.' => 'As Tabelas foram eliminadas.',
'%d item(s) have been affected.' => array('%d item foi afetado.', '%d itens foram afetados.'),
'Whole result' => 'Resultado completo',
'Clone' => 'Clonar',
'Maximum number of allowed fields exceeded. Please increase %s.' => 'Quantidade máxima de campos permitidos excedidos. Por favor aumente %s.',
'Partition by' => 'Particionar por',
'Partitions' => 'Partições',
'Partition name' => 'Nome da Partição',
'Values' => 'Valores',
'%d row(s) have been imported.' => array('%d registro foi importado.', '%d registros foram importados.'),
'anywhere' => 'qualquer local',
'Import' => 'Importar',
'Stop on error' => 'Parar em caso de erro',
'%.3f s' => '%.3f s',
'$1-$3-$5' => '$5/$3/$1',
'[yyyy]-mm-dd' => 'dd/mm/[aaaa]',
'History' => 'Histórico',
'Variables' => 'Variáveis',
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'As colunas de origen e destino devem ser do mesmo tipo, deve existir um índice entre as colunas de destino e o registro referenciado deve existir.',
'Relations' => 'Relações',
'Run file' => 'Executar Arquivo',
'Clear' => 'Limpar',
'Maximum allowed file size is %sB.' => 'Tamanho máximo do arquivo permitido é %sB.',
'Numbers' => 'Números',
'Date and time' => 'Data e hora',
'Strings' => 'Strings',
'Binary' => 'Binário',
'Lists' => 'Listas',
'Editor' => 'Editor',
'E-mail' => 'E-mail',
'From' => 'De',
'Subject' => 'Assunto',
'Send' => 'Enviar',
'%d e-mail(s) have been sent.' => array('%d email foi enviado.', '%d emails foram enviados.'),
'Webserver file %s' => 'Arquivo do servidor web %s',
'File does not exist.' => 'Arquivo não existe.',
'%d in total' => '%d no total',
'Permanent login' => 'Login permanente',
'Databases have been dropped.' => 'A Base de dados foi apagada.',
'Search data in tables' => 'Buscar dados nas Tabelas',
'Schema' => 'Esquema',
'Alter schema' => 'Alterar esquema',
'Create schema' => 'Criar esquema',
'Schema has been dropped.' => 'O Esquema foi apagado.',
'Schema has been created.' => 'O Esquema foi criado.',
'Schema has been altered.' => 'O Esquema foi alterado.',
'Sequences' => 'Sequências',
'Create sequence' => 'Criar sequência',
'Alter sequence' => 'Alterar sequência',
'Sequence has been dropped.' => 'A Sequência foi apagada.',
'Sequence has been created.' => 'A Sequência foi criada.',
'Sequence has been altered.' => 'A Sequência foi alterada.',
'User types' => 'Tipos definidos pelo usuário',
'Create type' => 'Criar tipo',
'Alter type' => 'Alterar tipo',
'Type has been dropped.' => 'O Tipo foi apagado.',
'Type has been created.' => 'O Tipo foi criado.',
'Ctrl+click on a value to modify it.' => 'Ctrl+clique sobre o valor para edita-lo.',
'Use edit link to modify this value.' => 'Utilize o link editar para modificar este valor.',
'last' => 'último',
'From server' => 'A partir do servidor',
'System' => 'Sistema',
'Select data' => 'Selecionar dados',
'Show structure' => 'Mostrar estrutura',
'empty' => 'vazio',
'Network' => 'Rede',
'Geometry' => 'Geometria',
'File exists.' => 'Arquivo já existe.',
'Attachments' => 'Anexos',
'%d query(s) executed OK.' => array('%d consulta sql executada corretamente.', '%d consultas sql executadas corretamente.'),
'Show only errors' => 'Mostrar somente erros',
'Refresh' => 'Atualizar',
'Invalid schema.' => 'Esquema inválido.',
'Please use one of the extensions %s.' => 'Por favor use uma das extensões %s.',
'now' => 'agora',
'ltr' => 'ltr',
'Drop %s?' => null,
'Tables have been copied.' => null,
'Tables have been optimized.' => null,
'as a regular expression' => null,
'Materialized view' => null,
'Vacuum' => null,
'Selected' => null,
'Copy' => null,
'overwrite' => null,
'DB' => null,
'Permanent link' => null,
'File must be in UTF-8 encoding.' => null,
'Modify' => null,
'Load more data' => null,
'Loading' => null,
'Copy to clipboard' => null,
'ATTACH queries are not supported.' => null,
'Warnings' => null,
'%d / ' => array(),
'Limit rows' => null,
'Edit all' => null,
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
'Default value' => null,
'Full table scan' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array(),
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null,
'There is a space in the input password which might be the cause.' => null,
'If you did not send this request from Adminer then close this page.' => null,
'You can upload a big SQL file via FTP and import it from server.' => null,
'Size' => null,
'Compute' => null,
'You are offline.' => null,
'You have no privileges to update this table.' => null,
'Saving' => null,
'Unknown error.' => null,
'Database does not support password.' => null,
'Disable %s or enable %s or %s extensions.' => null,
'yes' => null,
'no' => null,
'HH:MM:SS' => null,
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'A newer version of AdminerEvo is available, download it now!' => null,
);

View file

@ -1,310 +0,0 @@
<?php
$translations = array(
'Login' => 'Entrar',
'Logout successful.' => 'Sessão terminada com sucesso.',
'Invalid server or credentials.' => null,
'Server' => 'Servidor',
'Username' => 'Nome de utilizador',
'Password' => 'Senha',
'Select database' => 'Selecionar Base de dados',
'Invalid database.' => 'Base de dados inválida.',
'Table has been dropped.' => 'Tabela eliminada.',
'Table has been altered.' => 'Tabela modificada.',
'Table has been created.' => 'Tabela criada.',
'Alter table' => 'Modificar estrutura',
'Create table' => 'Criar tabela',
'Table name' => 'Nome da tabela',
'engine' => 'motor',
'collation' => 'collation',
'Column name' => 'Nome da coluna',
'Type' => 'Tipo',
'Length' => 'Tamanho',
'Auto Increment' => 'Incremento Automático',
'Options' => 'Opções',
'Save' => 'Guardar',
'Drop' => 'Remover',
'Database has been dropped.' => 'Base de dados eliminada.',
'Database has been created.' => 'Base de dados criada.',
'Database has been renamed.' => 'Base de dados renomeada.',
'Database has been altered.' => 'Base de dados modificada.',
'Alter database' => 'Modificar Base de dados',
'Create database' => 'Criar Base de dados',
'SQL command' => 'Comando SQL',
'Logout' => 'Terminar sessão',
'database' => 'base de dados',
'Use' => 'Usar',
'No tables.' => 'Não existem tabelas.',
'select' => 'registos',
'Item has been deleted.' => 'Registo eliminado.',
'Item has been updated.' => 'Registo modificado.',
'Item%s has been inserted.' => 'Registo%s inserido.',
'Edit' => 'Modificar',
'Insert' => 'Inserir',
'Save and insert next' => 'Guardar e inserir outro',
'Delete' => 'Eliminar',
'Database' => 'Base de dados',
'Routines' => 'Procedimentos',
'Indexes have been altered.' => 'Índices modificados.',
'Indexes' => 'Índices',
'Alter indexes' => 'Modificar índices',
'Add next' => 'Adicionar próximo',
'Language' => 'Idioma',
'Select' => 'Selecionar',
'New item' => 'Novo Registo',
'Search' => 'Procurar',
'Sort' => 'Ordenar',
'descending' => 'decrescente',
'Limit' => 'Limite',
'No rows.' => 'Não existem registos.',
'Action' => 'Ação',
'edit' => 'modificar',
'Page' => 'Página',
'Query executed OK, %d row(s) affected.' => array('Consulta executada, %d registo afetado.', 'Consulta executada, %d registos afetados.'),
'Error in query' => 'Erro na consulta',
'Execute' => 'Executar',
'Table' => 'Tabela',
'Foreign keys' => 'Chaves estrangeiras',
'Triggers' => 'Triggers',
'View' => 'Visualizar',
'Unable to select the table' => 'Não é possivel selecionar a Tabela',
'Invalid CSRF token. Send the form again.' => 'Token CSRF inválido. Enviar o formulario novamente.',
'Comment' => 'Comentário',
'Default values' => 'Valores predeterminados',
'%d byte(s)' => array('%d byte', '%d bytes'),
'No commands to execute.' => 'Nenhum comando para executar.',
'Unable to upload a file.' => 'Não é possível enviar o ficheiro.',
'File upload' => 'Importar ficheiro',
'File uploads are disabled.' => 'Importação de ficheiros desativada.',
'Routine has been called, %d row(s) affected.' => array('Consulta executada, %d registo afetado.', 'Consulta executada, %d registos afetados.'),
'Call' => 'Chamar',
'No extension' => 'Não há extensão',
'None of the supported PHP extensions (%s) are available.' => 'Nenhuma das extensões PHP suportadas (%s) está disponivel.',
'Session support must be enabled.' => 'As sessões devem estar ativas.',
'Session expired, please login again.' => 'Sessão expirada, por favor entre de novo.',
'Text length' => 'Tamanho do texto',
'Foreign key has been dropped.' => 'Chave estrangeira eliminada.',
'Foreign key has been altered.' => 'Chave estrangeira modificada.',
'Foreign key has been created.' => 'Chave estrangeira criada.',
'Foreign key' => 'Chave estrangeira',
'Target table' => 'Tabela de destino',
'Change' => 'Modificar',
'Source' => 'Origem',
'Target' => 'Destino',
'Add column' => 'Adicionar coluna',
'Alter' => 'Modificar',
'Add foreign key' => 'Adicionar Chave estrangeira',
'ON DELETE' => 'ON DELETE',
'ON UPDATE' => 'ON UPDATE',
'Index Type' => 'Tipo de índice',
'Column (length)' => 'coluna (tamanho)',
'View has been dropped.' => 'Vista eliminada.',
'View has been altered.' => 'Vista modificada.',
'View has been created.' => 'Vista criada.',
'Alter view' => 'Modificar vista',
'Create view' => 'Criar vista',
'Name' => 'Nome',
'Process list' => 'Lista de processos',
'%d process(es) have been killed.' => array('%d processo terminado.', '%d processos terminados.'),
'Kill' => 'Parar',
'Parameter name' => 'Nome de Parâmetro',
'Database schema' => 'Esquema de Base de dados',
'Create procedure' => 'Criar procedimento',
'Create function' => 'Criar função',
'Routine has been dropped.' => 'Procedimento eliminado.',
'Routine has been altered.' => 'Procedimento modificado.',
'Routine has been created.' => 'Procedimento criado.',
'Alter function' => 'Modificar Função',
'Alter procedure' => 'Modificar procedimento',
'Return type' => 'Tipo de valor de regresso',
'Add trigger' => 'Adicionar trigger',
'Trigger has been dropped.' => 'Trigger eliminado.',
'Trigger has been altered.' => 'Trigger modificado.',
'Trigger has been created.' => 'Trigger criado.',
'Alter trigger' => 'Modificar Trigger',
'Create trigger' => 'Adicionar Trigger',
'Time' => 'Tempo',
'Event' => 'Evento',
'%s version: %s through PHP extension %s' => 'Versão %s: %s através da extensão PHP %s',
'%d row(s)' => array('%d registo', '%d registos'),
'Remove' => 'Remover',
'Are you sure?' => 'Tem a certeza?',
'Privileges' => 'Privilégios',
'Create user' => 'Criar utilizador',
'User has been dropped.' => 'Utilizador eliminado.',
'User has been altered.' => 'Utilizador modificado.',
'User has been created.' => 'Utilizador criado.',
'Hashed' => 'Hash',
'Column' => 'Coluna',
'Routine' => 'Rotina',
'Grant' => 'Conceder',
'Revoke' => 'Impedir',
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'POST data demasiado grande. Reduza o tamanho ou aumente a diretiva de configuração %s.',
'Logged as: %s' => 'Ligado como: %s',
'Move up' => 'Mover para cima',
'Move down' => 'Mover para baixo',
'Functions' => 'Funções',
'Aggregation' => 'Adições',
'Export' => 'Exportar',
'Output' => 'Saída',
'open' => 'abrir',
'save' => 'guardar',
'Format' => 'Formato',
'Tables' => 'Tabelas',
'Data' => 'Dados',
'Event has been dropped.' => 'Evento eliminado.',
'Event has been altered.' => 'Evento modificado.',
'Event has been created.' => 'Evento criado.',
'Alter event' => 'Modificar Evento',
'Create event' => 'Criar Evento',
'At given time' => 'À hora determinada',
'Every' => 'Cada',
'Events' => 'Eventos',
'Schedule' => 'Agenda',
'Start' => 'Início',
'End' => 'Fim',
'Status' => 'Estado',
'On completion preserve' => 'Preservar ao completar',
'Tables and views' => 'Tabelas e vistas',
'Data Length' => 'Tamanho de dados',
'Index Length' => 'Tamanho de índice',
'Data Free' => 'Espaço Livre',
'Collation' => 'Colação',
'Analyze' => 'Analizar',
'Optimize' => 'Otimizar',
'Check' => 'Verificar',
'Repair' => 'Reparar',
'Truncate' => 'Truncar',
'Tables have been truncated.' => 'Tabelas truncadas (truncate).',
'Rows' => 'Registos',
',' => ' ',
'0123456789' => '0123456789',
'Tables have been moved.' => 'As Tabelas foram movidas.',
'Move to other database' => 'Mover outra Base de dados',
'Move' => 'Mover',
'Engine' => 'Motor',
'Save and continue edit' => 'Guardar e continuar a edição',
'original' => 'original',
'Tables have been dropped.' => 'As tabelas foram eliminadas.',
'%d item(s) have been affected.' => array('%d item afetado.', '%d itens afetados.'),
'Whole result' => 'Resultado completo',
'Clone' => 'Clonar',
'Maximum number of allowed fields exceeded. Please increase %s.' => 'Quantidade máxima de campos permitidos excedidos. Por favor aumente %s.',
'Partition by' => 'Particionar por',
'Partitions' => 'Partições',
'Partition name' => 'Nome da Partição',
'Values' => 'Valores',
'%d row(s) have been imported.' => array('%d registo importado.', '%d registos importados.'),
'anywhere' => 'qualquer local',
'Import' => 'Importar',
'Stop on error' => 'Parar em caso de erro',
'%.3f s' => '%.3f s',
'$1-$3-$5' => '$5/$3/$1',
'[yyyy]-mm-dd' => 'dd/mm/[aaaa]',
'History' => 'Histórico',
'Variables' => 'Variáveis',
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'As colunas de origen e destino devem ser do mesmo tipo, deve existir um índice entre as colunas de destino e o registo referenciado deve existir.',
'Relations' => 'Relações',
'Run file' => 'Executar ficheiro',
'Clear' => 'Limpar',
'Maximum allowed file size is %sB.' => 'Tamanho máximo do ficheiro é %sB.',
'Numbers' => 'Números',
'Date and time' => 'Data e hora',
'Strings' => 'Cadeia',
'Binary' => 'Binário',
'Lists' => 'Listas',
'Editor' => 'Editor',
'E-mail' => 'E-mail',
'From' => 'De',
'Subject' => 'Assunto',
'Send' => 'Enviar',
'%d e-mail(s) have been sent.' => array('%d email enviado.', '%d emails enviados.'),
'Webserver file %s' => 'Ficheiro do servidor web %s',
'File does not exist.' => 'Ficheiro não existe.',
'%d in total' => '%d no total',
'Permanent login' => 'Memorizar a senha',
'Databases have been dropped.' => 'Bases de dados eliminadas.',
'Search data in tables' => 'Pesquisar dados nas Tabelas',
'Schema' => 'Esquema',
'Alter schema' => 'Modificar esquema',
'Create schema' => 'Criar esquema',
'Schema has been dropped.' => 'Esquema eliminado.',
'Schema has been created.' => 'Esquema criado.',
'Schema has been altered.' => 'Esquema modificado.',
'Sequences' => 'Sequências',
'Create sequence' => 'Criar sequências',
'Alter sequence' => 'Modificar sequência',
'Sequence has been dropped.' => 'Sequência eliminada.',
'Sequence has been created.' => 'Sequência criada.',
'Sequence has been altered.' => 'Sequência modificada.',
'User types' => 'Tipos definidos pelo utilizador',
'Create type' => 'Criar tipo',
'Alter type' => 'Modificar tipo',
'Type has been dropped.' => 'Tipo eliminado.',
'Type has been created.' => 'Tipo criado.',
'Ctrl+click on a value to modify it.' => 'Ctrl+clique vezes sobre o valor para edita-lo.',
'Use edit link to modify this value.' => 'Utilize o link modificar para alterar.',
'last' => 'último',
'From server' => 'Do servidor',
'System' => 'Motor de Base de dados',
'Select data' => 'Selecionar dados',
'Show structure' => 'Mostrar estrutura',
'empty' => 'vazio',
'Network' => 'Rede',
'Geometry' => 'Geometria',
'File exists.' => 'Ficheiro já existe.',
'Attachments' => 'Anexos',
'%d query(s) executed OK.' => array('%d consulta sql executada corretamente.', '%d consultas sql executadas corretamente.'),
'Show only errors' => 'Mostrar somente erros',
'Refresh' => 'Atualizar',
'Invalid schema.' => 'Esquema inválido.',
'Please use one of the extensions %s.' => 'Por favor use uma das extensões %s.',
'now' => 'agora',
'ltr' => 'ltr',
'Drop %s?' => null,
'Tables have been copied.' => null,
'Tables have been optimized.' => null,
'as a regular expression' => null,
'Materialized view' => null,
'Vacuum' => null,
'Selected' => null,
'Copy' => null,
'overwrite' => null,
'DB' => null,
'Permanent link' => null,
'File must be in UTF-8 encoding.' => null,
'Modify' => null,
'Load more data' => null,
'Loading' => null,
'Copy to clipboard' => null,
'ATTACH queries are not supported.' => null,
'Warnings' => null,
'%d / ' => array(),
'Limit rows' => null,
'Edit all' => null,
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
'Default value' => null,
'Full table scan' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array(),
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null,
'There is a space in the input password which might be the cause.' => null,
'If you did not send this request from Adminer then close this page.' => null,
'You can upload a big SQL file via FTP and import it from server.' => null,
'Size' => null,
'Compute' => null,
'You are offline.' => null,
'You have no privileges to update this table.' => null,
'Saving' => null,
'Unknown error.' => null,
'Database does not support password.' => null,
'Disable %s or enable %s or %s extensions.' => null,
'yes' => null,
'no' => null,
'HH:MM:SS' => null,
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'A newer version of AdminerEvo is available, download it now!' => null,
);

View file

@ -1,310 +0,0 @@
<?php
$translations = array(
'Login' => 'Intră',
'Logout successful.' => 'Ați ieșit cu succes.',
'Invalid server or credentials.' => null,
'Server' => 'Server',
'Username' => 'Nume de utilizator',
'Password' => 'Parola',
'Select database' => 'Alege baza de date',
'Invalid database.' => 'Bază de deate invalidă.',
'Table has been dropped.' => 'Tabelul a fost șters.',
'Table has been altered.' => 'Tabelul a fost modificat.',
'Table has been created.' => 'Tabelul a fost creat.',
'Alter table' => 'Modifică tabelul',
'Create table' => 'Crează tabel',
'Table name' => 'Denumirea tabelului',
'engine' => 'tip',
'collation' => 'colaționarea',
'Column name' => 'Denumirea coloanei',
'Type' => 'Tip',
'Length' => 'Lungime',
'Auto Increment' => 'Creșterea automată',
'Options' => 'Acțiune',
'Save' => 'Salvează',
'Drop' => 'Șterge',
'Database has been dropped.' => 'Baza de date a fost ștearsă.',
'Database has been created.' => 'Baza de date a fost creată.',
'Database has been renamed.' => 'Baza de date a fost redenumită.',
'Database has been altered.' => 'Baza de date a fost modificată.',
'Alter database' => 'Modifică baza de date',
'Create database' => 'Crează baza de date',
'SQL command' => 'SQL query',
'Logout' => 'Ieșire',
'database' => 'baza de date',
'Use' => 'Alege',
'No tables.' => 'În baza de date nu sunt tabele.',
'select' => 'selectează',
'Item has been deleted.' => 'Înregistrare a fost ștearsă.',
'Item has been updated.' => 'Înregistrare a fost înnoită.',
'Item%s has been inserted.' => 'Înregistrarea%s a fost inserată.',
'Edit' => 'Editează',
'Insert' => 'Inserează',
'Save and insert next' => 'Salvează și mai inserează',
'Delete' => 'Șterge',
'Database' => 'Baza de date',
'Routines' => 'Proceduri și funcții salvate',
'Indexes have been altered.' => 'Indexurile au fost modificate.',
'Indexes' => 'Indexuri',
'Alter indexes' => 'Modifică indexuri',
'Add next' => 'Adaugă încă',
'Language' => 'Limba',
'Select' => 'Selectează',
'New item' => 'Înscriere nouă',
'Search' => 'Căutare',
'Sort' => 'Sortare',
'descending' => 'descrescător',
'Limit' => 'Limit',
'No rows.' => 'Nu sunt înscrieri.',
'Action' => 'Acțiune',
'edit' => 'editare',
'Page' => 'Pagina',
'Query executed OK, %d row(s) affected.' => array('Query executat, %d înscriere modificată.', 'Query executat, %d înscrieri modificate.'),
'Error in query' => 'Greșeală în query',
'Execute' => 'Execută',
'Table' => 'Tabel',
'Foreign keys' => 'Chei externe',
'Triggers' => 'Declanșatoare',
'View' => 'Reprezentare',
'Unable to select the table' => 'Nu am putut selecta date din tabel',
'Invalid CSRF token. Send the form again.' => 'CSRF token imposibil. Retrimite forma.',
'Comment' => 'Comentariu',
'Default values' => 'Valoarea inițială',
'%d byte(s)' => array('%d octet', '%d octeți'),
'No commands to execute.' => 'Nu sunt comenzi de executat.',
'Unable to upload a file.' => 'Nu am putut încărca fișierul pe server.',
'File upload' => 'Încarcă fișierul',
'File uploads are disabled.' => 'Încărcarea fișierelor este interzisă.',
'Routine has been called, %d row(s) affected.' => array('A fost executată procedura, %d înscriere a fost modificată.', 'A fost executată procedura, %d înscrieri au fost modificate.'),
'Call' => 'Apelează',
'No extension' => 'Nu este extensie',
'None of the supported PHP extensions (%s) are available.' => 'Nu este aviabilă nici o extensie suportată (%s).',
'Session support must be enabled.' => 'Sesiunile trebuie să fie pornite.',
'Session expired, please login again.' => 'Timpul sesiunii a expirat, rog să vă conectați din nou.',
'Text length' => 'Lungimea textului',
'Foreign key has been dropped.' => 'Cheia externă a fost ștearsă.',
'Foreign key has been altered.' => 'Cheia externă a fost modificată.',
'Foreign key has been created.' => 'Cheia externă a fost creată.',
'Foreign key' => 'Cheie externă',
'Target table' => 'Tabela scop',
'Change' => 'Modifică',
'Source' => 'Sursă',
'Target' => 'Scop',
'Add column' => 'Adaugă coloană',
'Alter' => 'Modifică',
'Add foreign key' => 'Adaugă cheie externă',
'ON DELETE' => 'La ștergere',
'ON UPDATE' => 'La modificare',
'Index Type' => 'Tipul indexului',
'Column (length)' => 'Coloană (lungimea)',
'View has been dropped.' => 'Reprezentarea a fost ștearsă.',
'View has been altered.' => 'Reprezentarea a fost modificată.',
'View has been created.' => 'Reprezentarea a fost creată.',
'Alter view' => 'Modifică reprezentarea',
'Create view' => 'Crează reprezentare',
'Name' => 'Titlu',
'Process list' => 'Lista proceselor',
'%d process(es) have been killed.' => array('A fost terminat %d proces.', 'Au fost terminate %d procese.'),
'Kill' => 'Termină',
'Parameter name' => 'Numele parametrului',
'Database schema' => 'Schema bazei de date',
'Create procedure' => 'Crează procedură',
'Create function' => 'Crează funcție',
'Routine has been dropped.' => 'Procedura a fost ștearsă.',
'Routine has been altered.' => 'Procedura a fost modificată.',
'Routine has been created.' => 'Procedura a fost creată.',
'Alter function' => 'Modifică funcția',
'Alter procedure' => 'Modifică procedura',
'Return type' => 'Tipul returnării',
'Add trigger' => 'Adaugă trigger (declanșator)',
'Trigger has been dropped.' => 'Triggerul a fost șters.',
'Trigger has been altered.' => 'Triggerul a fost modificat.',
'Trigger has been created.' => 'Triggerul a fost creat.',
'Alter trigger' => 'Modifică trigger',
'Create trigger' => 'Crează trigger',
'Time' => 'Timp',
'Event' => 'Eveniment',
'%s version: %s through PHP extension %s' => 'Versiunea %s: %s cu extensia PHP %s',
'%d row(s)' => array('%d înscriere', '%d înscrieri'),
'Remove' => 'Șterge',
'Are you sure?' => 'Sunteți sigur(ă)?',
'Privileges' => 'Privilegii',
'Create user' => 'Crează utilizator',
'User has been dropped.' => 'Utilizatorul a fost șters.',
'User has been altered.' => 'Utilizatorul a fost modificat.',
'User has been created.' => 'Utilizatorul a fost creat.',
'Hashed' => 'Hashed',
'Column' => 'Coloană',
'Routine' => 'Procedură',
'Grant' => 'Permite',
'Revoke' => 'Interzice',
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'Mesajul POST este prea mare. Trimiteți mai puține date sau măriți parametrul configurației directivei %s.',
'Logged as: %s' => 'Ați intrat ca: %s',
'Move up' => 'Mișcă în sus',
'Move down' => 'Mișcă în jos',
'Functions' => 'Funcții',
'Aggregation' => 'Agregare',
'Export' => 'Export',
'Output' => 'Date de ieșire',
'open' => 'deschide',
'save' => 'salvează',
'Format' => 'Format',
'Tables' => 'Tabele',
'Data' => 'Date',
'Event has been dropped.' => 'Evenimentul a fost șters.',
'Event has been altered.' => 'Evenimentul a fost modificat.',
'Event has been created.' => 'Evenimentul a fost adăugat.',
'Alter event' => 'Modifică eveniment',
'Create event' => 'Creează evenimet',
'At given time' => 'În timpul curent',
'Every' => 'Fiecare',
'Events' => 'Evenimente',
'Schedule' => 'Program',
'Start' => 'Început',
'End' => 'Sfârșit',
'Status' => 'Stare',
'On completion preserve' => 'Salvează după finisare',
'Tables and views' => 'Tabele și reprezentări',
'Data Length' => 'Cantitatea de date',
'Index Length' => 'Cantitatea de indecși',
'Data Free' => 'Spațiu liber',
'Collation' => 'Colaționare',
'Analyze' => 'Analizează',
'Optimize' => 'Optimizează',
'Check' => 'Controlează',
'Repair' => 'Repară',
'Truncate' => 'Curăță',
'Tables have been truncated.' => 'Tabelele au fost curățate.',
'Rows' => 'Înscrieri',
',' => ',',
'0123456789' => '0123456789',
'Tables have been moved.' => 'Tabelele au fost mutate.',
'Move to other database' => 'Mută în altă bază de date',
'Move' => 'Mută',
'Engine' => 'Tip',
'Save and continue edit' => 'Salvează și continuă editarea',
'original' => 'original',
'%d item(s) have been affected.' => array('A fost modificată %d înscriere.', 'Au fost modificate %d înscrieri.'),
'Whole result' => 'Tot rezultatul',
'Tables have been dropped.' => 'Tabelele au fost șterse.',
'Clone' => 'Clonează',
'Partition by' => 'Împarte',
'Partitions' => 'Secțiuni',
'Partition name' => 'Denumirea secțiunii',
'Values' => 'Parametru',
'%d row(s) have been imported.' => array('%d rînd importat.', '%d rînduri importate.'),
'Import' => 'Importă',
'Stop on error' => 'Se oprește la greșeală',
'Maximum number of allowed fields exceeded. Please increase %s.' => 'Numărul maxim de înscrieri disponibile a fost atins. Majorați %s.',
'anywhere' => 'oriunde',
'%.3f s' => '%.3f s',
'$1-$3-$5' => '$5.$3.$1',
'[yyyy]-mm-dd' => 'dd.mm.[yyyy]',
'History' => 'Istoria',
'Variables' => 'Variabile',
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'Coloanele ar trebui să aibă aceleaşi tipuri de date, trebuie să existe date de referinţă și un index pe coloanela-ţintă.',
'Relations' => 'Relații',
'Run file' => 'Execută fișier',
'Clear' => 'Curăță',
'Maximum allowed file size is %sB.' => 'Fișierul maxim admis - %sO.',
'Numbers' => 'Număr',
'Date and time' => 'Data și timpul',
'Strings' => 'Șiruri de caractere',
'Binary' => 'Tip binar',
'Lists' => 'Liste',
'Editor' => 'Editor',
'E-mail' => 'Poșta electronică',
'From' => 'De la',
'Subject' => 'Pentru',
'Send' => 'Trimite',
'%d e-mail(s) have been sent.' => array('A fost trimis %d mail.', 'Au fost trimise %d mail-uri.'),
'Webserver file %s' => 'Fișierul %s pe server',
'File does not exist.' => 'Acest fișier nu există.',
'%d in total' => 'În total %d',
'Permanent login' => 'Logare permanentă',
'Databases have been dropped.' => 'Bazele de date au fost șterse.',
'Search data in tables' => 'Caută în tabele',
'Schema' => 'Schema',
'Alter schema' => 'Modifică schema',
'Create schema' => 'Crează o schemă',
'Schema has been dropped.' => 'Schema a fost ștearsă.',
'Schema has been created.' => 'Schema a fost creată.',
'Schema has been altered.' => 'Schema a fost modificată.',
'Sequences' => '«Secvențe»',
'Create sequence' => 'Crează «secvență»',
'Alter sequence' => 'Modifică «secvență»',
'Sequence has been dropped.' => '«secvența» a fost ștearsă.',
'Sequence has been created.' => '«secvența» a fost creată.',
'Sequence has been altered.' => '«secvența» a fost modificată.',
'User types' => 'Tipuri de utilizatori',
'Create type' => 'Crează tip noi',
'Alter type' => 'Modifică tip',
'Type has been dropped.' => 'Tiipul a fost șters.',
'Type has been created.' => 'Crează tip nou.',
'Ctrl+click on a value to modify it.' => 'Ctrl+click pe o valoare pentru a o modifica.',
'Use edit link to modify this value.' => 'Valoare poate fi modificată cu ajutorul butonului «modifică».',
'last' => 'ultima',
'From server' => 'De pe server',
'System' => 'Sistem',
'Select data' => 'Selectează',
'Show structure' => 'Arată structura',
'empty' => 'gol',
'Network' => 'Rețea',
'Geometry' => 'Geometrie',
'File exists.' => 'Fișierul există deja.',
'Attachments' => 'Fișiere atașate',
'%d query(s) executed OK.' => array('%d query executat.', '%d query-uri executate cu succes.'),
'Show only errors' => 'Arată doar greșeli',
'Refresh' => 'Împrospătează',
'Invalid schema.' => 'Schemă incorectă.',
'Please use one of the extensions %s.' => 'Folosiți una din următoarele extensii %s.',
'now' => 'acum',
'ltr' => 'ltr',
'Tables have been copied.' => 'Tabelele au fost copiate',
'Copy' => 'Copiază',
'Permanent link' => 'Adresă permanentă',
'Edit all' => 'Editează tot',
'HH:MM:SS' => 'HH:MM:SS',
'Drop %s?' => null,
'Tables have been optimized.' => null,
'as a regular expression' => null,
'Materialized view' => null,
'Vacuum' => null,
'Selected' => null,
'overwrite' => null,
'DB' => null,
'File must be in UTF-8 encoding.' => null,
'Modify' => null,
'Load more data' => null,
'Loading' => null,
'Copy to clipboard' => null,
'ATTACH queries are not supported.' => null,
'Warnings' => null,
'%d / ' => array(),
'Limit rows' => null,
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
'Default value' => null,
'Full table scan' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array(),
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null,
'There is a space in the input password which might be the cause.' => null,
'If you did not send this request from Adminer then close this page.' => null,
'You can upload a big SQL file via FTP and import it from server.' => null,
'Size' => null,
'Compute' => null,
'You are offline.' => null,
'You have no privileges to update this table.' => null,
'Saving' => null,
'Unknown error.' => null,
'Database does not support password.' => null,
'Disable %s or enable %s or %s extensions.' => null,
'yes' => null,
'no' => null,
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'A newer version of AdminerEvo is available, download it now!' => null,
);

View file

@ -1,308 +0,0 @@
<?php
$translations = array(
'Login' => 'Войти',
'Logout successful.' => 'Вы успешно покинули систему.',
'Invalid server or credentials.' => null,
'Server' => 'Сервер',
'Username' => 'Имя пользователя',
'Password' => 'Пароль',
'Select database' => 'Выбрать базу данных',
'Invalid database.' => 'Неверная база данных.',
'Table has been dropped.' => 'Таблица была удалена.',
'Table has been altered.' => 'Таблица была изменена.',
'Table has been created.' => 'Таблица была создана.',
'Alter table' => 'Изменить таблицу',
'Create table' => 'Создать таблицу',
'Table name' => 'Название таблицы',
'engine' => 'Тип таблицы',
'collation' => 'режим сопоставления',
'Column name' => 'Название поля',
'Type' => 'Тип',
'Length' => 'Длина',
'Auto Increment' => 'Автоматическое приращение',
'Options' => 'Действие',
'Save' => 'Сохранить',
'Drop' => 'Удалить',
'Database has been dropped.' => 'База данных была удалена.',
'Database has been created.' => 'База данных была создана.',
'Database has been renamed.' => 'База данных была переименована.',
'Database has been altered.' => 'База данных была изменена.',
'Alter database' => 'Изменить базу данных',
'Create database' => 'Создать базу данных',
'SQL command' => 'SQL-запрос',
'Logout' => 'Выйти',
'database' => 'база данных',
'Use' => 'Выбрать',
'No tables.' => 'В базе данных нет таблиц.',
'select' => 'выбрать',
'Item has been deleted.' => 'Запись удалена.',
'Item has been updated.' => 'Запись обновлена.',
'Item%s has been inserted.' => 'Запись%s была вставлена.',
'Edit' => 'Редактировать',
'Insert' => 'Вставить',
'Save and insert next' => 'Сохранить и вставить ещё',
'Delete' => 'Стереть',
'Database' => 'База данных',
'Routines' => 'Хранимые процедуры и функции',
'Indexes have been altered.' => 'Индексы изменены.',
'Indexes' => 'Индексы',
'Alter indexes' => 'Изменить индексы',
'Add next' => 'Добавить ещё',
'Language' => 'Язык',
'Select' => 'Выбрать',
'New item' => 'Новая запись',
'Search' => 'Поиск',
'Sort' => 'Сортировать',
'descending' => 'по убыванию',
'Limit' => 'Лимит',
'No rows.' => 'Нет записей.',
'Action' => 'Действие',
'edit' => 'редактировать',
'Page' => 'Страница',
'Query executed OK, %d row(s) affected.' => array('Запрос завершён, изменена %d запись.', 'Запрос завершён, изменены %d записи.', 'Запрос завершён, изменено %d записей.'),
'Error in query' => 'Ошибка в запросe',
'Execute' => 'Выполнить',
'Table' => 'Таблица',
'Foreign keys' => 'Внешние ключи',
'Triggers' => 'Триггеры',
'View' => 'Представление',
'Unable to select the table' => 'Не удалось получить данные из таблицы',
'Invalid CSRF token. Send the form again.' => 'Недействительный CSRF-токен. Отправите форму ещё раз.',
'Comment' => 'Комментарий',
'Default values' => 'Значения по умолчанию',
'%d byte(s)' => array('%d байт', '%d байта', '%d байтов'),
'No commands to execute.' => 'Нет команд для выполнения.',
'Unable to upload a file.' => 'Не удалось загрузить файл на сервер.',
'File upload' => 'Загрузить файл на сервер',
'File uploads are disabled.' => 'Загрузка файлов на сервер запрещена.',
'Routine has been called, %d row(s) affected.' => array('Была вызвана процедура, %d запись была изменена.', 'Была вызвана процедура, %d записи было изменено.', 'Была вызвана процедура, %d записей было изменено.'),
'Call' => 'Вызвать',
'No extension' => 'Нет расширений',
'None of the supported PHP extensions (%s) are available.' => 'Недоступно ни одного расширения из поддерживаемых (%s).',
'Session support must be enabled.' => 'Сессии должны быть включены.',
'Session expired, please login again.' => 'Срок действия сессии истёк, нужно снова войти в систему.',
'Text length' => 'Длина текста',
'Foreign key has been dropped.' => 'Внешний ключ был удалён.',
'Foreign key has been altered.' => 'Внешний ключ был изменён.',
'Foreign key has been created.' => 'Внешний ключ был создан.',
'Foreign key' => 'Внешний ключ',
'Target table' => 'Результирующая таблица',
'Change' => 'Изменить',
'Source' => 'Источник',
'Target' => 'Цель',
'Add column' => 'Добавить поле',
'Alter' => 'Изменить',
'Add foreign key' => 'Добавить внешний ключ',
'ON DELETE' => 'При стирании',
'ON UPDATE' => 'При обновлении',
'Index Type' => 'Тип индекса',
'Column (length)' => 'Поле (длина)',
'View has been dropped.' => 'Представление было удалено.',
'View has been altered.' => 'Представление было изменено.',
'View has been created.' => 'Представление было создано.',
'Alter view' => 'Изменить представление',
'Create view' => 'Создать представление',
'Name' => 'Название',
'Process list' => 'Список процессов',
'%d process(es) have been killed.' => array('Был завершён %d процесс.', 'Было завершено %d процесса.', 'Было завершено %d процессов.'),
'Kill' => 'Завершить',
'Parameter name' => 'Название параметра',
'Database schema' => 'Схема базы данных',
'Create procedure' => 'Создать процедуру',
'Create function' => 'Создать функцию',
'Routine has been dropped.' => 'Процедура была удалена.',
'Routine has been altered.' => 'Процедура была изменена.',
'Routine has been created.' => 'Процедура была создана.',
'Alter function' => 'Изменить функцию',
'Alter procedure' => 'Изменить процедуру',
'Return type' => 'Возвращаемый тип',
'Add trigger' => 'Добавить триггер',
'Trigger has been dropped.' => 'Триггер был удалён.',
'Trigger has been altered.' => 'Триггер был изменён.',
'Trigger has been created.' => 'Триггер был создан.',
'Alter trigger' => 'Изменить триггер',
'Create trigger' => 'Создать триггер',
'Time' => 'Время',
'Event' => 'Событие',
'%s version: %s through PHP extension %s' => 'Версия %s: %s с PHP-расширением %s',
'%d row(s)' => array('%d строка', '%d строки', '%d строк'),
'Remove' => 'Удалить',
'Are you sure?' => 'Вы уверены?',
'Privileges' => 'Полномочия',
'Create user' => 'Создать пользователя',
'User has been dropped.' => 'Пользователь был удалён.',
'User has been altered.' => 'Пользователь был изменён.',
'User has been created.' => 'Пользователь был создан.',
'Hashed' => 'Хешировано',
'Column' => 'поле',
'Routine' => 'Процедура',
'Grant' => 'Позволить',
'Revoke' => 'Запретить',
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'Слишком большой объем POST-данных. Пошлите меньший объём данных или увеличьте параметр конфигурационной директивы %s.',
'Logged as: %s' => 'Вы вошли как: %s',
'Move up' => 'Переместить вверх',
'Move down' => 'Переместить вниз',
'Functions' => 'Функции',
'Aggregation' => 'Агрегация',
'Export' => 'Экспорт',
'Output' => 'Выходные данные',
'open' => 'открыть',
'save' => 'сохранить',
'Format' => 'Формат',
'Tables' => 'Таблицы',
'Data' => 'Данные',
'Event has been dropped.' => 'Событие было удалено.',
'Event has been altered.' => 'Событие было изменено.',
'Event has been created.' => 'Событие было создано.',
'Alter event' => 'Изменить событие',
'Create event' => 'Создать событие',
'At given time' => 'В данное время',
'Every' => 'Каждые',
'Events' => 'События',
'Schedule' => 'Расписание',
'Start' => 'Начало',
'End' => 'Конец',
'Status' => 'Состояние',
'On completion preserve' => 'После завершения сохранить',
'Tables and views' => 'Таблицы и представления',
'Data Length' => 'Объём данных',
'Index Length' => 'Объём индексов',
'Data Free' => 'Свободное место',
'Collation' => 'Режим сопоставления',
'Analyze' => 'Анализировать',
'Optimize' => 'Оптимизировать',
'Check' => 'Проверить',
'Repair' => 'Исправить',
'Truncate' => 'Очистить',
'Tables have been truncated.' => 'Таблицы были очищены.',
'Rows' => 'Строк',
',' => ' ',
'0123456789' => '0123456789',
'Tables have been moved.' => 'Таблицы были перемещены.',
'Move to other database' => 'Переместить в другую базу данных',
'Move' => 'Переместить',
'Engine' => 'Тип таблиц',
'Save and continue edit' => 'Сохранить и продолжить редактирование',
'original' => 'исходный',
'%d item(s) have been affected.' => array('Была изменена %d запись.', 'Были изменены %d записи.', 'Было изменено %d записей.'),
'Whole result' => 'Весь результат',
'Tables have been dropped.' => 'Таблицы были удалены.',
'Clone' => 'Клонировать',
'Partition by' => 'Разделить по',
'Partitions' => 'Разделы',
'Partition name' => 'Название раздела',
'Values' => 'Параметры',
'%d row(s) have been imported.' => array('Импортирована %d строка.', 'Импортировано %d строки.', 'Импортировано %d строк.'),
'Import' => 'Импорт',
'Stop on error' => 'Остановить при ошибке',
'Maximum number of allowed fields exceeded. Please increase %s.' => 'Достигнуто максимальное значение количества доступных полей. Увеличьте %s.',
'anywhere' => 'в любом месте',
'%.3f s' => '%.3f s',
'$1-$3-$5' => '$5.$3.$1',
'[yyyy]-mm-dd' => 'дд.мм.[гггг]',
'History' => 'История',
'Variables' => 'Переменные',
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'Поля должны иметь одинаковые типы данных, в результирующем поле должен быть индекс, данные для импорта должны существовать.',
'Relations' => 'Отношения',
'Run file' => 'Запустить файл',
'Clear' => 'Очистить',
'Maximum allowed file size is %sB.' => 'Максимальный разрешённый размер файла — %sB.',
'Numbers' => 'Числа',
'Date and time' => 'Дата и время',
'Strings' => 'Строки',
'Binary' => 'Двоичный тип',
'Lists' => 'Списки',
'Editor' => 'Редактор',
'E-mail' => 'Эл. почта',
'From' => 'От',
'Subject' => 'Тема',
'Send' => 'Послать',
'%d e-mail(s) have been sent.' => array('Было отправлено %d письмо.', 'Было отправлено %d письма.', 'Было отправлено %d писем.'),
'Webserver file %s' => 'Файл %s на вебсервере',
'File does not exist.' => 'Такого файла не существует.',
'%d in total' => 'Всего %d',
'Permanent login' => 'Оставаться в системе',
'Databases have been dropped.' => 'Базы данных удалены.',
'Search data in tables' => 'Поиск в таблицах',
'Schema' => 'Схема',
'Alter schema' => 'Изменить схему',
'Create schema' => 'Новая схема',
'Schema has been dropped.' => 'Схема удалена.',
'Schema has been created.' => 'Создана новая схема.',
'Schema has been altered.' => 'Схема изменена.',
'Sequences' => '«Последовательности»',
'Create sequence' => 'Создать «последовательность»',
'Alter sequence' => 'Изменить «последовательность»',
'Sequence has been dropped.' => '«Последовательность» удалена.',
'Sequence has been created.' => 'Создана новая «последовательность».',
'Sequence has been altered.' => '«Последовательность» изменена.',
'User types' => 'Типы пользователей',
'Create type' => 'Создать тип',
'Alter type' => 'Изменить тип',
'Type has been dropped.' => 'Тип удален.',
'Type has been created.' => 'Создан новый тип.',
'Ctrl+click on a value to modify it.' => 'Выполните Ctrl+Щелчок мышью по значению, чтобы его изменить.',
'Use edit link to modify this value.' => 'Изменить это значение можно с помощью ссылки «изменить».',
'last' => 'последняя',
'From server' => 'С сервера',
'System' => 'Движок',
'Select data' => 'Выбрать',
'Show structure' => 'Показать структуру',
'empty' => 'пусто',
'Network' => 'Сеть',
'Geometry' => 'Геометрия',
'File exists.' => 'Файл уже существует.',
'Attachments' => 'Прикреплённые файлы',
'%d query(s) executed OK.' => array('%d запрос выполнен успешно.', '%d запроса выполнено успешно.', '%d запросов выполнено успешно.'),
'Show only errors' => 'Только ошибки',
'Refresh' => 'Обновить',
'Invalid schema.' => 'Неправильная схема.',
'Please use one of the extensions %s.' => 'Используйте одно из этих расширений %s.',
'now' => 'сейчас',
'ltr' => 'ltr',
'Tables have been copied.' => 'Таблицы скопированы.',
'Copy' => 'Копировать',
'Permanent link' => 'Постоянная ссылка',
'Edit all' => 'Редактировать всё',
'HH:MM:SS' => 'ЧЧ:ММ:СС',
'Tables have been optimized.' => 'Таблицы оптимизированы.',
'Materialized view' => 'Материализованное представление',
'Vacuum' => 'Вакуум',
'Selected' => 'Выбранные',
'File must be in UTF-8 encoding.' => 'Файл должен быть в кодировке UTF-8.',
'Modify' => 'Изменить',
'Loading' => 'Загрузка',
'Load more data' => 'Загрузить ещё данные',
'ATTACH queries are not supported.' => 'ATTACH-запросы не поддерживаются.',
'%d / ' => '%d / ',
'Limit rows' => 'Лимит строк',
'Default value' => 'Значение по умолчанию',
'Full table scan' => 'Анализ полной таблицы',
'Too many unsuccessful logins, try again in %d minute(s).' => array('Слишком много неудачных попыток входа. Попробуйте снова через %d минуту.', 'Слишком много неудачных попыток входа. Попробуйте снова через %d минуты.', 'Слишком много неудачных попыток входа. Попробуйте снова через %d минут.'),
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Мастер-пароль истёк. <a href="https://www.adminer.org/en/extension/"%s>Реализуйте</a> метод %s, чтобы сделать его постоянным.',
'If you did not send this request from Adminer then close this page.' => 'Если вы не посылали этот запрос из Adminer, закройте эту страницу.',
'You can upload a big SQL file via FTP and import it from server.' => 'Вы можете закачать большой SQL-файл по FTP и затем импортировать его с сервера.',
'Size' => 'Размер',
'Compute' => 'Вычислить',
'You are offline.' => 'Вы не выполнили вход.',
'You have no privileges to update this table.' => 'У вас нет прав на обновление этой таблицы.',
'Saving' => 'Сохранение',
'yes' => 'Да',
'no' => 'Нет',
'Drop %s?' => 'Удалить %s?',
'overwrite' => 'перезаписать',
'DB' => 'DB',
'Warnings' => 'Предупреждения',
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Adminer не поддерживает доступ к базе данных без пароля, <a href="https://www.adminer.org/en/password/"%s>больше информации</a>.',
'The action will be performed after successful login with the same credentials.' => 'Действие будет выполнено после успешного входа в систему с теми же учетными данными.',
'Connecting to privileged ports is not allowed.' => 'Подключение к привилегированным портам не допускается.',
'There is a space in the input password which might be the cause.' => 'В введеном пароле есть пробел, это может быть причиною.',
'Unknown error.' => 'Неизвестная ошибка.',
'Database does not support password.' => 'База данных не поддерживает пароль.',
'as a regular expression' => 'как регулярное выражение',
'Copy to clipboard' => 'Скопировать в буфер обмена',
'Disable %s or enable %s or %s extensions.' => 'Отключите %s или включите расширения %s или %s.',
'A newer version of AdminerEvo is available, download it now!' => null,
);

View file

@ -1,310 +0,0 @@
<?php
$translations = array(
'Login' => 'Prihlásiť sa',
'Logout successful.' => 'Odhlásenie prebehlo v poriadku.',
'Invalid server or credentials.' => 'Neplatný server alebo prihlasovacie údaje.',
'Server' => 'Server',
'Username' => 'Používateľ',
'Password' => 'Heslo',
'Select database' => 'Vybrať databázu',
'Invalid database.' => 'Nesprávna databáza.',
'Table has been dropped.' => 'Tabuľka bola odstránená.',
'Table has been altered.' => 'Tabuľka bola zmenená.',
'Table has been created.' => 'Tabuľka bola vytvorená.',
'Alter table' => 'Zmeniť tabuľku',
'Create table' => 'Vytvoriť tabuľku',
'Table name' => 'Názov tabuľky',
'engine' => 'úložisko',
'collation' => 'porovnávanie',
'Column name' => 'Názov stĺpca',
'Type' => 'Typ',
'Length' => 'Dĺžka',
'Auto Increment' => 'Auto Increment',
'Options' => 'Voľby',
'Save' => 'Uložiť',
'Drop' => 'Odstrániť',
'Databases have been dropped.' => 'Databázy boli odstránené.',
'Database has been dropped.' => 'Databáza bola odstránená.',
'Database has been created.' => 'Databáza bola vytvorená.',
'Database has been renamed.' => 'Databáza bola premenovaná.',
'Database has been altered.' => 'Databáza bola zmenená.',
'Alter database' => 'Zmeniť databázu',
'Create database' => 'Vytvoriť databázu',
'SQL command' => 'SQL príkaz',
'Logout' => 'Odhlásiť',
'database' => 'databáza',
'Use' => 'Vybrať',
'No tables.' => 'Žiadne tabuľky.',
'select' => 'vypísať',
'Item has been deleted.' => 'Položka bola vymazaná.',
'Item has been updated.' => 'Položka bola aktualizovaná.',
'Item%s has been inserted.' => 'Položka%s bola vložená.',
'Edit' => 'Upraviť',
'Insert' => 'Vložiť',
'Save and insert next' => 'Uložiť a vložiť ďalší',
'Delete' => 'Zmazať',
'Database' => 'Databáza',
'Routines' => 'Procedúry',
'Indexes have been altered.' => 'Indexy boli zmenené.',
'Indexes' => 'Indexy',
'Alter indexes' => 'Zmeniť indexy',
'Add next' => 'Pridať ďalší',
'Language' => 'Jazyk',
'Select' => 'Vypísať',
'New item' => 'Nová položka',
'Search' => 'Vyhľadať',
'Sort' => 'Zotriediť',
'descending' => 'zostupne',
'Limit' => 'Limit',
'No rows.' => 'Žiadne riadky.',
'Action' => 'Akcia',
'edit' => 'upraviť',
'Page' => 'Stránka',
'Query executed OK, %d row(s) affected.' => array('Príkaz prebehol v poriadku, bol zmenený %d záznam.', 'Príkaz prebehol v poriadku boli zmenené %d záznamy.', 'Príkaz prebehol v poriadku bolo zmenených %d záznamov.'),
'Error in query' => 'Chyba v dotaze',
'Execute' => 'Vykonať',
'Table' => 'Tabuľka',
'Foreign keys' => 'Cudzie kľúče',
'Triggers' => 'Triggery',
'View' => 'Pohľad',
'Unable to select the table' => 'Tabuľku sa nepodarilo vypísať',
'Invalid CSRF token. Send the form again.' => 'Neplatný token CSRF. Odošlite formulár znova.',
'Comment' => 'Komentár',
'Default values' => 'Predvolené hodnoty',
'%d byte(s)' => array('%d bajt', '%d bajty', '%d bajtov'),
'No commands to execute.' => 'Žiadne príkazy na vykonanie.',
'Unable to upload a file.' => 'Súbor sa nepodarilo nahrať.',
'File upload' => 'Nahranie súboru',
'File uploads are disabled.' => 'Nahrávánie súborov nie je povolené.',
'Routine has been called, %d row(s) affected.' => array('Procedúra bola zavolaná, bol zmenený %d záznam.', 'Procedúra bola zavolaná, boli zmenené %d záznamy.', 'Procedúra bola zavolaná, bolo zmenených %d záznamov.'),
'Call' => 'Zavolať',
'No extension' => 'Žiadne rozšírenie',
'None of the supported PHP extensions (%s) are available.' => 'Nie je dostupné žiadne z podporovaných rozšírení (%s).',
'Session support must be enabled.' => 'Session premenné musia byť povolené.',
'Session expired, please login again.' => 'Session vypršala, prihláste sa prosím znova.',
'Text length' => 'Dĺžka textov',
'Foreign key has been dropped.' => 'Cudzí kľúč bol odstránený.',
'Foreign key has been altered.' => 'Cudzí kľúč bol zmenený.',
'Foreign key has been created.' => 'Cudzí kľúč bol vytvorený.',
'Foreign key' => 'Cudzí kľúč',
'Target table' => 'Cieľová tabuľka',
'Change' => 'Zmeniť',
'Source' => 'Zdroj',
'Target' => 'Cieľ',
'Add column' => 'Pridať stĺpec',
'Alter' => 'Zmeniť',
'Add foreign key' => 'Pridať cudzí kľúč',
'ON DELETE' => 'Pri zmazaní',
'ON UPDATE' => 'Pri aktualizácii',
'Index Type' => 'Typ indexu',
'Column (length)' => 'Stĺpec (dĺžka)',
'View has been dropped.' => 'Pohľad bol odstránený.',
'View has been altered.' => 'Pohľad bol zmenený.',
'View has been created.' => 'Pohľad bol vytvorený.',
'Alter view' => 'Zmeniť pohľad',
'Create view' => 'Vytvoriť pohľad',
'Name' => 'Názov',
'Process list' => 'Zoznam procesov',
'%d process(es) have been killed.' => array('Bol ukončený %d proces.', 'Boli ukončené %d procesy.', 'Bolo ukončených %d procesov.'),
'Kill' => 'Ukončiť',
'Parameter name' => 'Názov parametra',
'Database schema' => 'Schéma databázy',
'Create procedure' => 'Vytvoriť procedúru',
'Create function' => 'Vytvoriť funkciu',
'Routine has been dropped.' => 'Procedúra bola odstránená.',
'Routine has been altered.' => 'Procedúra bola zmenená.',
'Routine has been created.' => 'Procedúra bola vytvorená.',
'Alter function' => 'Zmeniť funkciu',
'Alter procedure' => 'Zmeniť procedúru',
'Return type' => 'Návratový typ',
'Add trigger' => 'Pridať trigger',
'Trigger has been dropped.' => 'Trigger bol odstránený.',
'Trigger has been altered.' => 'Trigger bol zmenený.',
'Trigger has been created.' => 'Trigger bol vytvorený.',
'Alter trigger' => 'Zmeniť trigger',
'Create trigger' => 'Vytvoriť trigger',
'Time' => 'Čas',
'Event' => 'Udalosť',
'%s version: %s through PHP extension %s' => 'Verzia %s: %s cez PHP rozšírenie %s',
'%d row(s)' => array('%d riadok', '%d riadky', '%d riadkov'),
'Remove' => 'Odobrať',
'Are you sure?' => 'Naozaj?',
'Privileges' => 'Oprávnenia',
'Create user' => 'Vytvoriť používateľa',
'User has been dropped.' => 'Používateľ bol odstránený.',
'User has been altered.' => 'Používateľ bol zmenený.',
'User has been created.' => 'Používateľ bol vytvorený.',
'Hashed' => 'Zahašované',
'Column' => 'Stĺpec',
'Routine' => 'Procedúra',
'Grant' => 'Povoliť',
'Revoke' => 'Zakázať',
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'Príliš veľké POST dáta. Zmenšite dáta alebo zvýšte hodnotu konfiguračej direktívy %s.',
'Logged as: %s' => 'Prihlásený ako: %s',
'Move up' => 'Presunúť hore',
'Move down' => 'Presunúť dolu',
'Functions' => 'Funkcie',
'Aggregation' => 'Agregácia',
'Export' => 'Export',
'Output' => 'Výstup',
'open' => 'otvoriť',
'save' => 'uložiť',
'Format' => 'Formát',
'Tables' => 'Tabuľky',
'Data' => 'Dáta',
'Event has been dropped.' => 'Udalosť bola odstránená.',
'Event has been altered.' => 'Udalosť bola zmenená.',
'Event has been created.' => 'Udalosť bola vytvorená.',
'Alter event' => 'Upraviť udalosť',
'Create event' => 'Vytvoriť udalosť',
'At given time' => 'V stanovený čas',
'Every' => 'Každých',
'Events' => 'Udalosti',
'Schedule' => 'Plán',
'Start' => 'Začiatok',
'End' => 'Koniec',
'Status' => 'Stav',
'On completion preserve' => 'Po dokončení zachovat',
'Save and continue edit' => 'Uložiť a pokračovať v úpravách',
'original' => 'originál',
'Tables have been truncated.' => 'Tabuľka bola vyprázdnená.',
'Tables have been moved.' => 'Tabuľka bola presunutá.',
'Tables have been dropped.' => 'Tabuľka bola odstránená.',
'Tables and views' => 'Tabuľky a pohľady',
'Engine' => 'Typ',
'Collation' => 'Porovnávanie',
'Data Length' => 'Veľkosť dát',
'Index Length' => 'Veľkosť indexu',
'Data Free' => 'Voľné miesto',
'Rows' => 'Riadky',
',' => ' ',
'0123456789' => '0123456789',
'Analyze' => 'Analyzovať',
'Optimize' => 'Optimalizovať',
'Check' => 'Skontrolovať',
'Repair' => 'Opraviť',
'Truncate' => 'Vyprázdniť',
'Move to other database' => 'Presunúť do inej databázy',
'Move' => 'Presunúť',
'%d item(s) have been affected.' => '%d položiek bolo ovplyvnených.',
'Whole result' => 'Celý výsledok',
'Clone' => 'Klonovať',
'Partition by' => 'Rozdeliť podľa',
'Partitions' => 'Oddiely',
'Partition name' => 'Názov oddielu',
'Values' => 'Hodnoty',
'%d row(s) have been imported.' => array('Bol importovaný %d záznam.', 'Boli importované %d záznamy.', 'Bolo importovaných %d záznamov.'),
'Import' => 'Import',
'Stop on error' => 'Zastaviť pri chybe',
'Maximum number of allowed fields exceeded. Please increase %s.' => 'Bol prekročený maximálny počet povolených polí. Zvýšte prosím %s.',
'anywhere' => 'kdekoľvek',
'%.3f s' => '%.3f s',
'$1-$3-$5' => '$6.$4.$1',
'[yyyy]-mm-dd' => 'd.m.[rrrr]',
'History' => 'História',
'Variables' => 'Premenné',
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'Zdrojové a cieľové stĺpce musia mať rovnaký datový typ, nad cieľovými stĺpcami musí byť definovaný index a odkazované dáta musia existovať.',
'E-mail' => 'E-mail',
'From' => 'Odosielateľ',
'Subject' => 'Predmet',
'Send' => 'Odoslať',
'%d e-mail(s) have been sent.' => array('Bol odoslaný %d e-mail.', 'Boli odoslané %d e-maily.', 'Bolo odoslaných %d e-mailov.'),
'Run file' => 'Spustiť súbor',
'Numbers' => 'Čísla',
'Date and time' => 'Dátum a čas',
'Strings' => 'Reťazce',
'Binary' => 'Binárne',
'Lists' => 'Zoznamy',
'Relations' => 'Vzťahy',
'Maximum allowed file size is %sB.' => 'Maximálna povolená veľkosť súboru je %sB.',
'Clear' => 'Vyčistiť',
'Editor' => 'Editor',
'Webserver file %s' => 'Súbor %s na webovom serveri',
'File does not exist.' => 'Súbor neexistuje.',
'Permanent login' => 'Trvalé prihlásenie',
'%d in total' => '%d celkom',
'Search data in tables' => 'Vyhľadať dáta v tabuľkách',
'Alter schema' => 'Pozmeniť schému',
'Create schema' => 'Vytvoriť schému',
'Schema has been dropped.' => 'Schéma bola odstránená.',
'Schema has been created.' => 'Schéma bola vytvorená.',
'Schema has been altered.' => 'Schéma bola zmenená.',
'Schema' => 'Schéma',
'Sequences' => 'Sekvencia',
'Create sequence' => 'Vytvoriť sekvenciu',
'Sequence has been dropped.' => 'Sekvencia bola odstránená.',
'Sequence has been created.' => 'Sekvencia bola vytvorená.',
'Sequence has been altered.' => 'Sekvencia bola zmenená.',
'Alter sequence' => 'Pozmeniť sekvenciu',
'User types' => 'Užívateľské typy',
'Create type' => 'Vytvoriť typ',
'Type has been dropped.' => 'Typ bol odstránený.',
'Type has been created.' => 'Typ bol vytvorený.',
'Alter type' => 'Pozmeniť typ',
'Ctrl+click on a value to modify it.' => 'Ctrl+kliknite na políčko, ktoré chcete zmeniť.',
'Use edit link to modify this value.' => 'Pre zmenu tejto hodnoty použite odkaz upraviť.',
'last' => 'posledný',
'From server' => 'Zo serveru',
'System' => 'Systém',
'Show structure' => 'Zobraziť štruktúru',
'Select data' => 'Vypísať dáta',
'empty' => 'prázdne',
'Network' => 'Sieť',
'Geometry' => 'Geometria',
'File exists.' => 'Súbor existuje.',
'Attachments' => 'Prílohy',
'%d query(s) executed OK.' => array('Bol vykonaný %d dotaz.', 'Boli vykonané %d dotazy.', 'Bolo vykonaných %d dotazov.'),
'Show only errors' => 'Zobraziť iba chyby',
'Refresh' => 'Obnoviť',
'Invalid schema.' => 'Neplatné schéma.',
'Please use one of the extensions %s.' => 'Prosím vyberte jednu z koncoviek %s.',
'now' => 'teraz',
'ltr' => 'ltr',
'Tables have been copied.' => 'Tabuľky boli skopírované.',
'Copy' => 'Kopírovať',
'Permanent link' => 'Permanentný odkaz',
'Edit all' => 'Upraviť všetko',
'HH:MM:SS' => 'HH:MM:SS',
'Drop %s?' => 'Odstrániť %s?',
'Tables have been optimized.' => 'Tabuľky boli optimalizované.',
'as a regular expression' => 'ako regulárny výraz',
'Materialized view' => 'Materializovaný pohľad',
'Vacuum' => 'Vyčistiť',
'Selected' => 'Označené',
'overwrite' => 'prepísať',
'DB' => 'DB',
'File must be in UTF-8 encoding.' => 'Súbor musí byť v kódovaní UTF-8.',
'Modify' => 'Zmeniť',
'Load more data' => 'Nahráť ďalšie dáta',
'Loading' => 'Nahráva sa',
'Copy to clipboard' => 'Kopírovať do schránky',
'ATTACH queries are not supported.' => 'Dotazy ATTACH nie sú podporované.',
'Warnings' => 'Varovania',
'%d / ' => '%d / ',
'Limit rows' => 'Limit riadkov',
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Adminer nepodporuje prístup k databáze bez hesla, <a href="https://www.adminer.org/cs/password/"%s>viac informácií</a>.',
'Default value' => 'Predvolená hodnota',
'Full table scan' => 'Prechod celej tabuľky',
'Too many unsuccessful logins, try again in %d minute(s).' => array('Príliš veľa pokusov o prihlásenie, skúste to znova za %d minutu.', 'Príliš veľa pokusov o prihlásenie, skúste to znova za %d minuty.', 'Príliš veľa pokusov o prihlásenie, skúste to znova za %d minút.'),
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Platnosť hlavného hesla vypršala. <a href="https://www.adminer.org/cs/extension/"%s>Implementujte</a> metodu %s, aby platilo natrvalo.',
'The action will be performed after successful login with the same credentials.' => 'Akcia sa vykoná po úspešnom prihlásení s rovnakými prihlasovacími údajmi.',
'Connecting to privileged ports is not allowed.' => 'Pripojenie k privilegovaným portom nie je povolené.',
'There is a space in the input password which might be the cause.' => 'V zadanom hesle je medzera, ktorá môže byť príčinou.',
'If you did not send this request from Adminer then close this page.' => 'Pokiaľ ste tento požiadavok neodoslali z Adminera, zatvorte túto stránku.',
'You can upload a big SQL file via FTP and import it from server.' => 'Veľký SQL soubor môžete nahrať pomocou FTP a importovať ho zo servera.',
'Size' => 'Veľkosť',
'Compute' => 'Spočítať',
'You are offline.' => 'Ste offline.',
'You have no privileges to update this table.' => 'Nemáte oprávnenie na aktualizáciu tejto tabuľky.',
'Saving' => 'Ukladá sa',
'Unknown error.' => 'Neznáma chyba.',
'Database does not support password.' => 'Databáza nepodporuje heslo.',
'Disable %s or enable %s or %s extensions.' => 'Zakážte %s alebo povoľte rozšírenie %s alebo %s.',
'yes' => 'áno',
'no' => 'nie',
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'A newer version of AdminerEvo is available, download it now!' => 'Stiahnite si novú verziu AdminerEvo!',
);

View file

@ -1,352 +0,0 @@
<?php
$translations = array(
// label for database system selection (MySQL, SQLite, ...)
'System' => 'Sistem',
'Server' => 'Strežnik',
'Username' => 'Uporabniško ime',
'Password' => 'Geslo',
'Permanent login' => 'Trajna prijava',
'Login' => 'Prijavi se',
'Logout' => 'Odjavi se',
'Logged as: %s' => 'Prijavljen kot: %s',
'Logout successful.' => 'Prijava uspešna.',
'Invalid server or credentials.' => 'Neveljaven strežnik ali pravice.',
'Language' => 'Jezik',
'Invalid CSRF token. Send the form again.' => 'Neveljaven token CSRF. Pošljite formular še enkrat.',
'No extension' => 'Brez dodatkov',
'None of the supported PHP extensions (%s) are available.' => 'Noben od podprtih dodatkov za PHP (%s) ni na voljo.',
'Session support must be enabled.' => 'Podpora za seje mora biti omogočena.',
'Session expired, please login again.' => 'Seja je potekla. Prosimo, ponovno se prijavite.',
'%s version: %s through PHP extension %s' => 'Verzija %s: %s preko dodatka za PHP %s',
'Refresh' => 'Osveži',
// text direction
'ltr' => 'ltr',
'Privileges' => 'Pravice',
'Create user' => 'Ustvari uporabnika',
'User has been dropped.' => 'Uporabnik je odstranjen.',
'User has been altered.' => 'Uporabnik je spremenjen.',
'User has been created.' => 'Uporabnik je ustvarjen.',
'Hashed' => 'Zakodirano',
'Column' => 'Stolpec',
'Routine' => 'Postopek',
'Grant' => 'Dovoli',
'Revoke' => 'Odvzemi',
'Process list' => 'Seznam procesov',
'%d process(es) have been killed.' => array('Končan je %d proces.', 'Končana sta %d procesa.', 'Končani so %d procesi.', 'Končanih je %d procesov.'),
'Kill' => 'Končaj',
'Variables' => 'Spremenljivke',
'Status' => 'Stanje',
'SQL command' => 'Ukaz SQL',
'%d query(s) executed OK.' => array('Uspešno se je končala %d poizvedba.', 'Uspešno sta se končali %d poizvedbi.', 'Uspešno so se končale %d poizvedbe.', 'Uspešno se je končalo %d poizvedb.'),
'Query executed OK, %d row(s) affected.' => array('Poizvedba se je uspešno izvedla, spremenjena je %d vrstica.', 'Poizvedba se je uspešno izvedla, spremenjeni sta %d vrstici.', 'Poizvedba se je uspešno izvedla, spremenjene so %d vrstice.', 'Poizvedba se je uspešno izvedla, spremenjenih je %d vrstic.'),
'No commands to execute.' => 'Ni ukazov za izvedbo.',
'Error in query' => 'Napaka v poizvedbi',
'Execute' => 'Izvedi',
'Stop on error' => 'Ustavi ob napaki',
'Show only errors' => 'Pokaži samo napake',
// sprintf() format for time of the command
'%.3f s' => '%.3f s',
'History' => 'Zgodovina',
'Clear' => 'Počisti',
'File upload' => 'Naloži datoteko',
'From server' => 'z strežnika',
'Webserver file %s' => 'Datoteka na spletnem strežniku %s',
'Run file' => 'Zaženi datoteko',
'File does not exist.' => 'Datoteka ne obstaja.',
'File uploads are disabled.' => 'Nalaganje datotek je onemogočeno.',
'Unable to upload a file.' => 'Ne morem naložiti datoteke.',
'Maximum allowed file size is %sB.' => 'Največja velikost datoteke je %sB.',
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'Preveliko podatkov za POST. Zmanjšajte število podatkov ali povečajte nastavitev za %s.',
'Export' => 'Izvozi',
'Output' => 'Izhod rezultata',
'open' => 'odpri',
'save' => 'shrani',
'Format' => 'Format',
'Data' => 'Podatki',
'Database' => 'Baza',
'database' => 'baza',
'Use' => 'Uporabi',
'Select database' => 'Izberi bazo',
'Invalid database.' => 'Neveljavna baza.',
'Database has been dropped.' => 'Baza je zavržena.',
'Databases have been dropped.' => 'Baze so zavržene.',
'Database has been created.' => 'Baza je ustvarjena.',
'Database has been renamed.' => 'Baza je preimenovana.',
'Database has been altered.' => 'Baza je spremenjena.',
'Alter database' => 'Spremeni bazo',
'Create database' => 'Ustvari bazo',
'Database schema' => 'Shema baze',
// thousands separator - must contain single byte
',' => ' ',
'0123456789' => '0123456789',
'Engine' => 'Pogon',
'Collation' => 'Zbiranje',
'Data Length' => 'Velikost podatkov',
'Index Length' => 'Velikost indeksa',
'Data Free' => 'Podatkov prosto ',
'Rows' => 'Vrstic',
'%d in total' => 'Skupaj %d',
'Analyze' => 'Analiziraj',
'Optimize' => 'Optimiziraj',
'Check' => 'Preveri',
'Repair' => 'Popravi',
'Truncate' => 'Skrajšaj',
'Tables have been truncated.' => 'Tabele so skrajšane.',
'Move to other database' => 'Premakni v drugo bazo',
'Move' => 'Premakni',
'Tables have been moved.' => 'Tabele so premaknjene.',
'Copy' => 'Kopiraj',
'Tables have been copied.' => 'Tabele so kopirane.',
'Routines' => 'Postopki',
'Routine has been called, %d row(s) affected.' => array('Klican je bil postopek, spremenjena je %d vrstica.', 'Klican je bil postopek, spremenjeni sta %d vrstici.', 'Klican je bil postopek, spremenjene so %d vrstice.', 'Klican je bil postopek, spremenjenih je %d vrstic.'),
'Call' => 'Pokliči',
'Parameter name' => 'Ime parametra',
'Create procedure' => 'Ustvari postopek',
'Create function' => 'Ustvari funkcijo',
'Routine has been dropped.' => 'Postopek je zavržen.',
'Routine has been altered.' => 'Postopek je spremenjen.',
'Routine has been created.' => 'Postopek je ustvarjen.',
'Alter function' => 'Spremeni funkcijo',
'Alter procedure' => 'Spremeni postopek',
'Return type' => 'Vračalni tip',
'Events' => 'Dogodki',
'Event has been dropped.' => 'Dogodek je zavržen.',
'Event has been altered.' => 'Dogodek je spremenjen.',
'Event has been created.' => 'Dogodek je ustvarjen.',
'Alter event' => 'Spremeni dogodek',
'Create event' => 'Ustvari dogodek',
'At given time' => 'v danem času',
'Every' => 'vsake',
'Schedule' => 'Urnik',
'Start' => 'Začetek',
'End' => 'Konec',
'On completion preserve' => 'Po zaključku ohrani',
'Tables' => 'Tabele',
'Tables and views' => 'Tabele in pogledi',
'Table' => 'Tabela',
'No tables.' => 'Ni tabel.',
'Alter table' => 'Spremeni tabelo',
'Create table' => 'Ustvari tabelo',
'Table has been dropped.' => 'Tabela je zavržena.',
'Tables have been dropped.' => 'Tabele so zavržene.',
'Table has been altered.' => 'Tabela je spremenjena.',
'Table has been created.' => 'Tabela je ustvarjena.',
'Table name' => 'Ime tabele',
'Show structure' => 'Pokaži zgradbo',
'engine' => 'pogon',
'collation' => 'zbiranje',
'Column name' => 'Ime stolpca',
'Type' => 'Tip',
'Length' => 'Dolžina',
'Auto Increment' => 'Samodejno povečevanje',
'Options' => 'Možnosti',
'Comment' => 'Komentar',
'Default values' => 'Privzete vrednosti',
'Drop' => 'Zavrzi',
'Are you sure?' => 'Ste prepričani?',
'Move up' => 'Premakni gor',
'Move down' => 'Premakni dol',
'Remove' => 'Odstrani',
'Maximum number of allowed fields exceeded. Please increase %s.' => 'Največje število dovoljenih polje je preseženo. Prosimo, povečajte %s.',
'Partition by' => 'Porazdeli po',
'Partitions' => 'Porazdelitve',
'Partition name' => 'Ime porazdelitve',
'Values' => 'Vrednosti',
'View' => 'Pogledi',
'View has been dropped.' => 'Pogled je zavržen.',
'View has been altered.' => 'Pogled je spremenjen.',
'View has been created.' => 'Pogled je ustvarjen.',
'Alter view' => 'Spremeni pogled',
'Create view' => 'Ustvari pogled',
'Indexes' => 'Indeksi',
'Indexes have been altered.' => 'Indeksi so spremenjeni.',
'Alter indexes' => 'Spremeni indekse',
'Add next' => 'Dodaj naslednjega',
'Index Type' => 'Tip indeksa',
'Column (length)' => 'Stolpec (dolžina)',
'Foreign keys' => 'Tuji ključi',
'Foreign key' => 'Tuj ključ',
'Foreign key has been dropped.' => 'Tuj ključ je zavržen.',
'Foreign key has been altered.' => 'Tuj ključ je spremenjen.',
'Foreign key has been created.' => 'Tuj ključ je ustvarjen.',
'Target table' => 'Ciljna tabela',
'Change' => 'Spremeni',
'Source' => 'Izvor',
'Target' => 'Cilj',
'Add column' => 'Dodaj stolpec',
'Alter' => 'Spremeni',
'Add foreign key' => 'Dodaj tuj ključ',
'ON DELETE' => 'pri brisanju',
'ON UPDATE' => 'pri posodabljanju',
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'Izvorni in ciljni stolpec mora imeti isti podatkovni tip. Obstajati mora indeks na ciljnih stolpcih in obstajati morajo referenčni podatki.',
'Triggers' => 'Sprožilniki',
'Add trigger' => 'Dodaj sprožilnik',
'Trigger has been dropped.' => 'Sprožilnik je odstranjen.',
'Trigger has been altered.' => 'Sprožilnik je spremenjen.',
'Trigger has been created.' => 'Sprožilnik je ustvarjen.',
'Alter trigger' => 'Spremeni sprožilnik',
'Create trigger' => 'Ustvari sprožilnik',
'Time' => 'Čas',
'Event' => 'Dogodek',
'Name' => 'Naziv',
'select' => 'izberi',
'Select' => 'Izberi',
'Select data' => 'Izberi podatke',
'Functions' => 'Funkcije',
'Aggregation' => 'Združitev',
'Search' => 'Išči',
'anywhere' => 'kjerkoli',
'Search data in tables' => 'Išče podatke po tabelah',
'Sort' => 'Sortiraj',
'descending' => 'padajoče',
'Limit' => 'Limita',
'Text length' => 'Dolžina teksta',
'Action' => 'Dejanje',
'Unable to select the table' => 'Ne morem izbrati tabele',
'No rows.' => 'Ni vrstic.',
'%d row(s)' => array('%d vrstica', '%d vrstici', '%d vrstice', '%d vrstic'),
'Page' => 'Stran',
'last' => 'Zadnja',
'Whole result' => 'Cel razultat',
'%d byte(s)' => array('%d bajt', '%d bajta', '%d bajti', '%d bajtov'),
'Import' => 'Uvozi',
'%d row(s) have been imported.' => array('Uvožena je %d vrstica.', 'Uvoženi sta %d vrstici.', 'Uvožene so %d vrstice.', 'Uvoženih je %d vrstic.'),
// in-place editing in select
'Ctrl+click on a value to modify it.' => 'Ctrl+klik na vrednost za urejanje.',
'Use edit link to modify this value.' => 'Uporabite urejanje povezave za spreminjanje te vrednosti.',
// %s can contain auto-increment value
'Item%s has been inserted.' => 'Predmet%s je vstavljen.',
'Item has been deleted.' => 'Predmet je izbrisan.',
'Item has been updated.' => 'Predmet je posodobljen.',
'%d item(s) have been affected.' => array('Spremenjen je %d predmet.', 'Spremenjena sta %d predmeta.', 'Spremenjeni so %d predmeti.', 'Spremenjenih je %d predmetov.'),
'New item' => 'Nov predmet',
'original' => 'original',
// label for value '' in enum data type
'empty' => 'prazno',
'edit' => 'uredi',
'Edit' => 'Uredi',
'Insert' => 'Vstavi',
'Save' => 'Shrani',
'Save and continue edit' => 'Shrani in nadaljuj z urejanjem',
'Save and insert next' => 'Shrani in vstavi tekst',
'Clone' => 'Kloniraj',
'Delete' => 'Izbriši',
'E-mail' => 'E-mail',
'From' => 'Od',
'Subject' => 'Zadeva',
'Attachments' => 'Priponke',
'Send' => 'Pošlji',
'%d e-mail(s) have been sent.' => array('Poslan je %d e-mail.', 'Poslana sta %d e-maila.', 'Poslani so %d e-maili.', 'Poslanih je %d e-mailov.'),
// data type descriptions
'Numbers' => 'Števila',
'Date and time' => 'Datum in čas',
'Strings' => 'Nizi',
'Binary' => 'Binarni',
'Lists' => 'Seznami',
'Network' => 'Mrežni',
'Geometry' => 'Geometrčni',
'Relations' => 'Relacijski',
'Editor' => 'Urejevalnik',
// date format in Editor: $1 yyyy, $2 yy, $3 mm, $4 m, $5 dd, $6 d
'$1-$3-$5' => '$6.$4.$1',
// hint for date format - use language equivalents for day, month and year shortcuts
'[yyyy]-mm-dd' => 'd.m.[rrrr]',
'now' => 'zdaj',
// general SQLite error in create, drop or rename database
'File exists.' => 'Datoteka obstaja.',
'Please use one of the extensions %s.' => 'Prosim, uporabite enega od dodatkov %s.',
// PostgreSQL and MS SQL schema support
'Alter schema' => 'Spremeni shemo',
'Create schema' => 'Ustvari shemo',
'Schema has been dropped.' => 'Shema je zavržena.',
'Schema has been created.' => 'Shema je ustvarjena.',
'Schema has been altered.' => 'Shema je spremenjena.',
'Schema' => 'Shema',
'Invalid schema.' => 'Neveljavna shema.',
// PostgreSQL sequences support
'Sequences' => 'Sekvence',
'Create sequence' => 'Ustvari sekvenco',
'Sequence has been dropped.' => 'Sekvenca je zavržena.',
'Sequence has been created.' => 'Sekvence je ustvarjena.',
'Sequence has been altered.' => 'Sekvence je spremenjena.',
'Alter sequence' => 'Spremni sekvenco',
// PostgreSQL user types support
'User types' => 'Uporabniški tipi',
'Create type' => 'Ustvari tip',
'Type has been dropped.' => 'Tip je zavržen.',
'Type has been created.' => 'Tip je ustvarjen.',
'Alter type' => 'Spremeni tip',
'Drop %s?' => null,
'Tables have been optimized.' => null,
'as a regular expression' => null,
'Materialized view' => null,
'Vacuum' => null,
'Selected' => null,
'overwrite' => null,
'DB' => null,
'Permanent link' => null,
'File must be in UTF-8 encoding.' => null,
'Modify' => null,
'Load more data' => null,
'Loading' => null,
'Copy to clipboard' => null,
'ATTACH queries are not supported.' => null,
'Warnings' => null,
'%d / ' => array(),
'Limit rows' => null,
'Edit all' => null,
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
'Default value' => null,
'Full table scan' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array(),
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null,
'There is a space in the input password which might be the cause.' => null,
'If you did not send this request from Adminer then close this page.' => null,
'You can upload a big SQL file via FTP and import it from server.' => null,
'Size' => null,
'Compute' => null,
'You are offline.' => null,
'You have no privileges to update this table.' => null,
'Saving' => null,
'Unknown error.' => null,
'Database does not support password.' => null,
'Disable %s or enable %s or %s extensions.' => null,
'yes' => null,
'no' => null,
'HH:MM:SS' => null,
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'A newer version of AdminerEvo is available, download it now!' => null,
);

View file

@ -1,355 +0,0 @@
<?php
$translations = array(
// label for database system selection (MySQL, SQLite, ...)
'System' => 'Систем',
'Server' => 'Сервер',
'Username' => 'Корисничко име',
'Password' => 'Лозинка',
'Permanent login' => 'Трајна пријава',
'Login' => 'Пријава',
'Logout' => 'Одјава',
'Logged as: %s' => 'Пријави се као: %s',
'Logout successful.' => 'Успешна одјава.',
'Invalid server or credentials.' => null,
'Language' => 'Језик',
'Invalid CSRF token. Send the form again.' => 'Неважећи CSRF код. Проследите поново форму.',
'No extension' => 'Без додатака',
'None of the supported PHP extensions (%s) are available.' => 'Ниједан од подржаних PHP додатака није доступан.',
'Session support must be enabled.' => 'Морате омогућити подршку за сесије.',
'Session expired, please login again.' => 'Ваша сесија је истекла, пријавите се поново.',
'%s version: %s through PHP extension %s' => '%s верзија: %s помоћу PHP додатка је %s',
'Refresh' => 'Освежи',
// text direction - 'ltr' or 'rtl'
'ltr' => 'ltr',
'Privileges' => 'Дозволе',
'Create user' => 'Направи корисника',
'User has been dropped.' => 'Корисник је избрисан.',
'User has been altered.' => 'Корисник је измењен.',
'User has been created.' => 'корисник је креиран.',
'Hashed' => 'Хеширано',
'Column' => 'Колона',
'Routine' => 'Рутина',
'Grant' => 'Дозволи',
'Revoke' => 'Опозови',
'Process list' => 'Списак процеса',
'%d process(es) have been killed.' => array('%d процес је убијен.', '%d процеса су убијена.', '%d процеса је убијено.'),
'Kill' => 'Убиј',
'Variables' => 'Променљиве',
'Status' => 'Статус',
'SQL command' => 'SQL команда',
'%d query(s) executed OK.' => array('%d упит је успешно извршен.', '%d упита су успешно извршена.', '%d упита је успешно извршено.'),
'Query executed OK, %d row(s) affected.' => array('Упит је успешно извршен, %d ред је погођен.', 'Упит је успешно извршен, %d реда су погођена.', 'Упит је успешно извршен, %d редова је погођено.'),
'No commands to execute.' => 'Без команди за извршавање.',
'Error in query' => 'Грешка у упиту',
'Execute' => 'Изврши',
'Stop on error' => 'Заустави приликом грешке',
'Show only errors' => 'Приказуј само грешке',
// sprintf() format for time of the command
'%.3f s' => '%.3f s',
'History' => 'Историјат',
'Clear' => 'Очисти',
'Edit all' => 'Измени све',
'File upload' => 'Слање датотека',
'From server' => 'Са сервера',
'Webserver file %s' => 'Датотека %s са веб сервера',
'Run file' => 'Покрени датотеку',
'File does not exist.' => 'Датотека не постоји.',
'File uploads are disabled.' => 'Онемогућено је слање датотека.',
'Unable to upload a file.' => 'Слање датотеке није успело.',
'Maximum allowed file size is %sB.' => 'Највећа дозвољена величина датотеке је %sB.',
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'Превелики POST податак. Морате да смањите податак или повећајте вредност конфигурационе директиве %s.',
'Export' => 'Извоз',
'Output' => 'Испис',
'open' => 'отвори',
'save' => 'сачувај',
'Format' => 'Формат',
'Data' => 'Податци',
'Database' => 'База података',
'database' => 'база података',
'Use' => 'Користи',
'Select database' => 'Изаберите базу',
'Invalid database.' => 'Неисправна база података.',
'Database has been dropped.' => 'База података је избрисана.',
'Databases have been dropped.' => 'Базњ података су избрисане.',
'Database has been created.' => 'База података је креирана.',
'Database has been renamed.' => 'База података је преименована.',
'Database has been altered.' => 'База података је измењена.',
'Alter database' => 'Уреди базу података',
'Create database' => 'Формирај базу података',
'Database schema' => 'Шема базе података',
// link to current database schema layout
'Permanent link' => 'Трајна веза',
// thousands separator - must contain single byte
',' => ',',
'0123456789' => '0123456789',
'Engine' => 'Механизам',
'Collation' => 'Сравњивање',
'Data Length' => 'Дужина података',
'Index Length' => 'Дужина индекса',
'Data Free' => 'Слободно података',
'Rows' => 'Редова',
'%d in total' => 'укупно %d',
'Analyze' => 'Анализирај',
'Optimize' => 'Оптимизуј',
'Check' => 'Провери',
'Repair' => 'Поправи',
'Truncate' => 'Испразни',
'Tables have been truncated.' => 'Табеле су испражњене.',
'Move to other database' => 'Премести у другу базу података',
'Move' => 'Премести',
'Tables have been moved.' => 'Табеле су премешћене.',
'Copy' => 'Умножи',
'Tables have been copied.' => 'Табеле су умножене.',
'Routines' => 'Рутине',
'Routine has been called, %d row(s) affected.' => array('Позвана је рутина, %d ред је погођен.', 'Позвана је рутина, %d реда су погођена.', 'Позвана је рутина, %d редова је погођено.'),
'Call' => 'Позови',
'Parameter name' => 'Назив параметра',
'Create procedure' => 'Формирај процедуру',
'Create function' => 'Формирај функцију',
'Routine has been dropped.' => 'Рутина је избрисана.',
'Routine has been altered.' => 'Рутина је измењена.',
'Routine has been created.' => 'Рутина је креирана.',
'Alter function' => 'Уреди функцију',
'Alter procedure' => 'Уреди процедуру',
'Return type' => 'Повратни тип',
'Events' => 'Догађаји',
'Event has been dropped.' => 'Догађај је избрисан.',
'Event has been altered.' => 'Догађај је измењен.',
'Event has been created.' => 'Догађај је креиран.',
'Alter event' => 'Уреди догађај',
'Create event' => 'Направи догађај',
'At given time' => 'У задато време',
'Every' => 'Сваки',
'Schedule' => 'Распоред',
'Start' => 'Почетак',
'End' => 'Крај',
'On completion preserve' => 'Задржи по завршетку',
'Tables' => 'Табеле',
'Tables and views' => 'Табеле и погледи',
'Table' => 'Табела',
'No tables.' => 'Без табела.',
'Alter table' => 'Уреди табелу',
'Create table' => 'Направи табелу',
'Table has been dropped.' => 'Табела је избрисана.',
'Tables have been dropped.' => 'Табеле су избрисане.',
'Tables have been optimized.' => 'Табеле су оптимизоване.',
'Table has been altered.' => 'Табела је измењена.',
'Table has been created.' => 'Табела је креирана.',
'Table name' => 'Назив табеле',
'Show structure' => 'Прикажи структуру',
'engine' => 'механизам',
'collation' => 'Сравњивање',
'Column name' => 'Назив колоне',
'Type' => 'Тип',
'Length' => 'Дужина',
'Auto Increment' => 'Ауто-прираштај',
'Options' => 'Опције',
'Comment' => 'Коментар',
'Default values' => 'Подразумеване вредности',
'Drop' => 'Избриши',
'Are you sure?' => 'Да ли сте сигурни?',
'Move up' => 'Помери на горе',
'Move down' => 'Помери на доле',
'Remove' => 'Уклони',
'Maximum number of allowed fields exceeded. Please increase %s.' => 'Премашен је максимални број дозвољених поља. Молим увећајте %s.',
'Partition by' => 'Подели по',
'Partitions' => 'Поделе',
'Partition name' => 'Име поделе',
'Values' => 'Вредности',
'View' => 'Поглед',
'View has been dropped.' => 'Поглед је избрисан.',
'View has been altered.' => 'Поглед је измењен.',
'View has been created.' => 'Поглед је креиран.',
'Alter view' => 'Уреди поглед',
'Create view' => 'Направи поглед',
'Indexes' => 'Индекси',
'Indexes have been altered.' => 'Индекси су измењени.',
'Alter indexes' => 'Уреди индексе',
'Add next' => 'Додај следећи',
'Index Type' => 'Тип индекса',
'Column (length)' => 'Колона (дужина)',
'Foreign keys' => 'Страни кључеви',
'Foreign key' => 'Страни кључ',
'Foreign key has been dropped.' => 'Страни кључ је избрисан.',
'Foreign key has been altered.' => 'Страни кључ је измењен.',
'Foreign key has been created.' => 'Страни кључ је креиран.',
'Target table' => 'Циљна табела',
'Change' => 'Измени',
'Source' => 'Извор',
'Target' => 'Циљ',
'Add column' => 'Додај колону',
'Alter' => 'Уреди',
'Add foreign key' => 'Додај страни кључ',
'ON DELETE' => 'ON DELETE (приликом брисања)',
'ON UPDATE' => 'ON UPDATE (приликом освежавања)',
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'Изворне и циљне колоне морају бити истог типа, циљна колона мора бити индексирана и изворна табела мора садржати податке из циљне.',
'Triggers' => 'Окидачи',
'Add trigger' => 'Додај окидач',
'Trigger has been dropped.' => 'Окидач је избрисан.',
'Trigger has been altered.' => 'Окидач је измењен.',
'Trigger has been created.' => 'Окидач је креиран.',
'Alter trigger' => 'Уреди окидач',
'Create trigger' => 'Формирај окидач',
'Time' => 'Време',
'Event' => 'Догађај',
'Name' => 'Име',
'select' => 'изабери',
'Select' => 'Изабери',
'Select data' => 'Изабери податке',
'Functions' => 'Функције',
'Aggregation' => 'Сакупљање',
'Search' => 'Претрага',
'anywhere' => 'било где',
'Search data in tables' => 'Претражи податке у табелама',
'Sort' => 'Поређај',
'descending' => 'опадајуће',
'Limit' => 'Граница',
'Text length' => 'Дужина текста',
'Action' => 'Акција',
'Full table scan' => 'Скренирање комплетне табеле',
'Unable to select the table' => 'Не могу да изаберем табелу',
'No rows.' => 'Без редова.',
'%d row(s)' => array('%d ред', '%d реда', '%d редова'),
'Page' => 'Страна',
'last' => 'последња',
'Loading' => 'Учитавам',
'Load more data' => 'Учитавам још података',
'Whole result' => 'Цео резултат',
'%d byte(s)' => array('%d бајт', '%d бајта', '%d бајтова'),
'Import' => 'Увоз',
'%d row(s) have been imported.' => array('%d ред је увежен.', '%d реда су увежена.', '%d редова је увежено.'),
// in-place editing in select
'Ctrl+click on a value to modify it.' => 'Ctrl+клик на вредност за измену.',
'Use edit link to modify this value.' => 'Користи везу за измену ове вредности.',
// %s can contain auto-increment value
'Item%s has been inserted.' => 'Ставка%s је додата.',
'Item has been deleted.' => 'Ставка је избрисана.',
'Item has been updated.' => 'Ставка је измењена.',
'%d item(s) have been affected.' => array('%d ставка је погођена.', '%d ставке су погођене.', '%d ставки је погођено.'),
'New item' => 'Нова ставка',
'original' => 'оригинал',
// label for value '' in enum data type
'empty' => 'празно',
'edit' => 'измени',
'Edit' => 'Измени',
'Insert' => 'Уметни',
'Save' => 'Сачувај',
'Save and continue edit' => 'Сачувај и настави уређење',
'Save and insert next' => 'Сачувај и уметни следеће',
'Clone' => 'Дуплирај',
'Delete' => 'Избриши',
'E-mail' => 'Ел. пошта',
'From' => 'Од',
'Subject' => 'Наслов',
'Attachments' => 'Прилози',
'Send' => 'Пошаљи',
'%d e-mail(s) have been sent.' => array('%d порука ел. поште је послата.', '%d поруке ел. поште су послате.', '%d порука ел. поште је послато.'),
// data type descriptions
'Numbers' => 'Број',
'Date and time' => 'Датум и време',
'Strings' => 'Текст',
'Binary' => 'Бинарно',
'Lists' => 'Листе',
'Network' => 'Мрежа',
'Geometry' => 'Геометрија',
'Relations' => 'Односи',
'Editor' => 'Уређивач',
// date format in Editor: $1 yyyy, $2 yy, $3 mm, $4 m, $5 dd, $6 d
'$1-$3-$5' => '$5.$3.$1.',
// hint for date format - use language equivalents for day, month and year shortcuts
'[yyyy]-mm-dd' => 'dd.mm.[yyyy].',
// hint for time format - use language equivalents for hour, minute and second shortcuts
'HH:MM:SS' => 'HH:MM:SS',
'now' => 'сад',
'yes' => 'да',
'no' => 'не',
// general SQLite error in create, drop or rename database
'File exists.' => 'Датотека већ постоји.',
'Please use one of the extensions %s.' => 'Молим користите један од наставака %s.',
// PostgreSQL and MS SQL schema support
'Alter schema' => 'Уреди шему',
'Create schema' => 'Формирај шему',
'Schema has been dropped.' => 'Шема је избрисана.',
'Schema has been created.' => 'Шема је креирана.',
'Schema has been altered.' => 'Шема је измењена.',
'Schema' => 'Шема',
'Invalid schema.' => 'Шема није исправна.',
// PostgreSQL sequences support
'Sequences' => 'Низови',
'Create sequence' => 'Направи низ',
'Sequence has been dropped.' => 'Низ је избрисан.',
'Sequence has been created.' => 'Низ је формиран.',
'Sequence has been altered.' => 'Низ је измењен.',
'Alter sequence' => 'Уреди низ',
// PostgreSQL user types support
'User types' => 'Кориснички типови',
'Create type' => 'Дефиниши тип',
'Type has been dropped.' => 'Тип је избрисан.',
'Type has been created.' => 'тип је креиран.',
'Alter type' => 'Уреди тип',
'Drop %s?' => null,
'as a regular expression' => null,
'Materialized view' => null,
'Vacuum' => null,
'Selected' => null,
'overwrite' => null,
'DB' => null,
'File must be in UTF-8 encoding.' => null,
'Modify' => null,
'Copy to clipboard' => null,
'ATTACH queries are not supported.' => null,
'Warnings' => null,
'%d / ' => array(),
'Limit rows' => null,
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
'Default value' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array(),
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null,
'There is a space in the input password which might be the cause.' => null,
'If you did not send this request from Adminer then close this page.' => null,
'You can upload a big SQL file via FTP and import it from server.' => null,
'Size' => null,
'Compute' => null,
'You are offline.' => null,
'You have no privileges to update this table.' => null,
'Saving' => null,
'Unknown error.' => null,
'Database does not support password.' => null,
'Disable %s or enable %s or %s extensions.' => null,
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'A newer version of AdminerEvo is available, download it now!' => null,
);

View file

@ -1,355 +0,0 @@
<?php
$translations = array(
// label for database system selection (MySQL, SQLite, ...)
'System' => 'System',
'Server' => 'Server',
'Username' => 'Användarnamn',
'Password' => 'Lösenord',
'Permanent login' => 'Permanent inloggning',
'Login' => 'Logga in',
'Logout' => 'Logga ut',
'Logged as: %s' => 'Inloggad som: %s',
'Logout successful.' => 'Du är nu utloggad.',
'Invalid server or credentials.' => null,
'There is a space in the input password which might be the cause.' => 'Det finns ett mellanslag i lösenordet, vilket kan vara anledningen.',
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Adminer tillåter inte att ansluta till en databas utan lösenord. <a href="https://www.adminer.org/en/password/"%s>Mer information</a>.',
'Database does not support password.' => 'Databasen stödjer inte lösenord.',
'Too many unsuccessful logins, try again in %d minute(s).' => array('För många misslyckade inloggningar, försök igen om %d minut.', 'För många misslyckade inloggningar, försök igen om %d minuter.'),
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Huvudlösenordet har löpt ut. <a href="https://www.adminer.org/en/extension/"%s>Implementera</a> %s en metod för att göra det permanent.',
'Language' => 'Språk',
'Invalid CSRF token. Send the form again.' => 'Ogiltig CSRF-token. Skicka formuläret igen.',
'If you did not send this request from Adminer then close this page.' => 'Om du inte skickade en förfrågan från Adminer så kan du stänga den här sidan.',
'No extension' => 'Inget tillägg',
'None of the supported PHP extensions (%s) are available.' => 'Inga av de PHP-tilläggen som stöds (%s) är tillgängliga.',
'Connecting to privileged ports is not allowed.' => 'Anslutning till privilegierade portar är inte tillåtet.',
'Disable %s or enable %s or %s extensions.' => 'Stäng av %s eller sätt på %s eller %s tilläggen.',
'Session support must be enabled.' => 'Support för sessioner måste vara på.',
'Session expired, please login again.' => 'Session har löpt ut, vänligen logga in igen.',
'The action will be performed after successful login with the same credentials.' => 'Åtgärden kommer att utföras efter en lyckad inloggning med samma inloggningsuppgifter.',
'%s version: %s through PHP extension %s' => '%s version: %s genom PHP-tillägg %s',
'Refresh' => 'Ladda om',
// text direction - 'ltr' or 'rtl'
'ltr' => 'ltr',
'Privileges' => 'Privilegier',
'Create user' => 'Skapa användare',
'User has been dropped.' => 'Användare har blivit borttagen.',
'User has been altered.' => 'Användare har blivit ändrad.',
'User has been created.' => 'Användare har blivit skapad.',
'Hashed' => 'Hashad',
'Column' => 'Kolumn',
'Routine' => 'Rutin',
'Grant' => 'Tillåt',
'Revoke' => 'Neka',
'Process list' => 'Processlista',
'%d process(es) have been killed.' => array('%d process har avslutats.', '%d processer har avslutats.'),
'Kill' => 'Avsluta',
'Variables' => 'Variabler',
'Status' => 'Status',
'SQL command' => 'SQL-kommando',
'%d query(s) executed OK.' => array('%d förfrågan lyckades.', '%d förfrågor lyckades.'),
'Query executed OK, %d row(s) affected.' => array('Förfrågan lyckades, %d rad påverkades.', 'Förfrågan lyckades, %d rader påverkades.'),
'No commands to execute.' => 'Inga kommandon att köra.',
'Error in query' => 'Fel i förfrågan',
'Unknown error.' => 'Okänt fel.',
'Warnings' => 'Varningar',
'ATTACH queries are not supported.' => 'ATTACH-förfrågor stöds inte.',
'Execute' => 'Kör',
'Stop on error' => 'Stanna på fel',
'Show only errors' => 'Visa bara fel',
// sprintf() format for time of the command
'%.3f s' => '%.3f s',
'History' => 'Historia',
'Clear' => 'Rensa',
'Edit all' => 'Redigera alla',
'File upload' => 'Ladda upp fil',
'From server' => 'Från server',
'Webserver file %s' => 'Serverfil %s',
'Run file' => 'Kör fil',
'File does not exist.' => 'Filen finns inte.',
'File uploads are disabled.' => 'Filuppladdningar är avstängda.',
'Unable to upload a file.' => 'Det går inte add ladda upp filen.',
'Maximum allowed file size is %sB.' => 'Högsta tillåtna storlek är %sB.',
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'POST-datan är för stor. Minska det eller höj %s-direktivet.',
'You can upload a big SQL file via FTP and import it from server.' => 'Du kan ladda upp en stor SQL-fil via FTP och importera det från servern.',
'You are offline.' => 'Du är offline.',
'Export' => 'Exportera',
'Output' => 'Utmatning',
'open' => 'Öppna',
'save' => 'Spara',
'Saving' => 'Sparar',
'Format' => 'Format',
'Data' => 'Data',
'Database' => 'Databas',
'database' => 'databas',
'DB' => 'DB',
'Use' => 'Använd',
'Select database' => 'Välj databas',
'Invalid database.' => 'Ogiltig databas.',
'Database has been dropped.' => 'Databasen har tagits bort.',
'Databases have been dropped.' => 'Databaserna har tagits bort.',
'Database has been created.' => 'Databasen har skapats.',
'Database has been renamed.' => 'Databasen har fått sitt namn ändrat.',
'Database has been altered.' => 'Databasen har ändrats.',
'Alter database' => 'Ändra databas',
'Create database' => 'Skapa databas',
'Database schema' => 'Databasschema',
// link to current database schema layout
'Permanent link' => 'Permanent länk',
// thousands separator - must contain single byte
',' => ',',
'0123456789' => '0123456789',
'Engine' => 'Motor',
'Collation' => 'Kollationering',
'Data Length' => 'Datalängd',
'Index Length' => 'Indexlängd',
'Data Free' => 'Ledig data',
'Rows' => 'Rader',
'%d in total' => 'totalt %d',
'Analyze' => 'Analysera',
'Optimize' => 'Optimera',
'Vacuum' => 'Städa',
'Check' => 'Kolla',
'Repair' => 'Reparera',
'Truncate' => 'Avkorta',
'Tables have been truncated.' => 'Tabeller har blivit avkortade.',
'Move to other database' => 'Flytta till en annan databas',
'Move' => 'Flytta',
'Tables have been moved.' => 'Tabeller har flyttats.',
'Copy' => 'Kopiera',
'Tables have been copied.' => 'Tabeller har kopierats.',
'overwrite' => 'Skriv över',
'Routines' => 'Rutiner',
'Routine has been called, %d row(s) affected.' => array('Rutin har kallats, %d rad påverkades.', 'Rutin har kallats, %d rader påverkades.'),
'Call' => 'Kalla',
'Parameter name' => 'Namn på parameter',
'Create procedure' => 'Skapa procedur',
'Create function' => 'Skapa funktion',
'Routine has been dropped.' => 'Rutin har tagits bort.',
'Routine has been altered.' => 'Rutin har ändrats.',
'Routine has been created.' => 'Rutin har skapats.',
'Alter function' => 'Ändra funktion',
'Alter procedure' => 'Ändra procedur',
'Return type' => 'Återvändningstyp',
'Events' => 'Event',
'Event has been dropped.' => 'Event har tagits bort.',
'Event has been altered.' => 'Event har ändrats.',
'Event has been created.' => 'Event har skapats.',
'Alter event' => 'Ändra event',
'Create event' => 'Skapa event',
'At given time' => 'Vid en tid',
'Every' => 'Varje',
'Schedule' => 'Schemalägga',
'Start' => 'Start',
'End' => 'Slut',
'On completion preserve' => 'Bibehåll vid slutet',
'Tables' => 'Tabeller',
'Tables and views' => 'Tabeller och vyer',
'Table' => 'Tabell',
'No tables.' => 'Inga tabeller.',
'Alter table' => 'Ändra tabell',
'Create table' => 'Skapa tabell',
'Table has been dropped.' => 'Tabell har tagits bort.',
'Tables have been dropped.' => 'Tabeller har tagits bort.',
'Tables have been optimized.' => 'Tabeller har optimerats.',
'Table has been altered.' => 'Tabell har ändrats.',
'Table has been created.' => 'Tabell har skapats.',
'Table name' => 'Tabellnamn',
'Show structure' => 'Visa struktur',
'engine' => 'motor',
'collation' => 'kollationering',
'Column name' => 'Kolumnnamn',
'Type' => 'Typ',
'Length' => 'Längd',
'Auto Increment' => 'Automatisk uppräkning',
'Options' => 'Inställningar',
'Comment' => 'Kommentar',
'Default value' => 'Standardvärde',
'Default values' => 'Standardvärden',
'Drop' => 'Ta bort',
'Drop %s?' => 'Ta bort %s?',
'Are you sure?' => 'Är du säker?',
'Size' => 'Storlek',
'Compute' => 'Beräkna',
'Move up' => 'Flytta upp',
'Move down' => 'Flytta ner',
'Remove' => 'Ta bort',
'Maximum number of allowed fields exceeded. Please increase %s.' => 'Högsta nummer tillåtna fält är överskridet. Vänligen höj %s.',
'Partition by' => 'Partitionera om',
'Partitions' => 'Partitioner',
'Partition name' => 'Partition',
'Values' => 'Värden',
'View' => 'Vy',
'Materialized view' => 'Materialiserad vy',
'View has been dropped.' => 'Vy har tagits bort.',
'View has been altered.' => 'Vy har ändrats.',
'View has been created.' => 'Vy har skapats.',
'Alter view' => 'Ändra vy',
'Create view' => 'Skapa vy',
'Indexes' => 'Index',
'Indexes have been altered.' => 'Index har ändrats.',
'Alter indexes' => 'Ändra index',
'Add next' => 'Lägg till nästa',
'Index Type' => 'Indextyp',
'Column (length)' => 'Kolumn (längd)',
'Foreign keys' => 'Främmande nycklar',
'Foreign key' => 'Främmande nyckel',
'Foreign key has been dropped.' => 'Främmande nyckel har tagits bort.',
'Foreign key has been altered.' => 'Främmande nyckel har ändrats.',
'Foreign key has been created.' => 'Främmande nyckel har skapats.',
'Target table' => 'Måltabell',
'Change' => 'Ändra',
'Source' => 'Källa',
'Target' => 'Mål',
'Add column' => 'Lägg till kolumn',
'Alter' => 'Ändra',
'Add foreign key' => 'Lägg till främmande nyckel',
'ON DELETE' => 'VID BORTTAGNING',
'ON UPDATE' => 'VID UPPDATERING',
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'Käll- och mål-tabellen måste ha samma datatyp, ett index på målkolumnerna och refererad data måste finnas.',
'Triggers' => 'Avtryckare',
'Add trigger' => 'Lägg till avtryckare',
'Trigger has been dropped.' => 'Avtryckare har tagits bort.',
'Trigger has been altered.' => 'Avtryckare har ändrats.',
'Trigger has been created.' => 'Avtryckare har skapats.',
'Alter trigger' => 'Ändra avtryckare',
'Create trigger' => 'Skapa avtryckare',
'Time' => 'Tid',
'Event' => 'Event',
'Name' => 'Namn',
'select' => 'välj',
'Select' => 'Välj',
'Select data' => 'Välj data',
'Functions' => 'Funktioner',
'Aggregation' => 'Aggregation',
'Search' => 'Sök',
'anywhere' => 'överallt',
'Search data in tables' => 'Sök data i tabeller',
'Sort' => 'Sortera',
'descending' => 'Fallande',
'Limit' => 'Begränsning',
'Limit rows' => 'Begränsa rader',
'Text length' => 'Textlängd',
'Action' => 'Åtgärd',
'Full table scan' => 'Full tabellskanning',
'Unable to select the table' => 'Kunde inte välja tabellen',
'No rows.' => 'Inga rader.',
'%d / ' => '%d / ',
'%d row(s)' => array('%d rad', '%d rader'),
'Page' => 'Sida',
'last' => 'sist',
'Load more data' => 'Ladda mer data',
'Loading' => 'Laddar',
'Whole result' => 'Hela resultatet',
'%d byte(s)' => array('%d byte', '%d bytes'),
'Import' => 'Importera',
'%d row(s) have been imported.' => array('%d rad har importerats.', '%d rader har importerats.'),
'File must be in UTF-8 encoding.' => 'Filer måste vara i UTF-8-format.',
// in-place editing in select
'Modify' => 'Ändra',
'Ctrl+click on a value to modify it.' => 'Ctrl+klicka på ett värde för att ändra det.',
'Use edit link to modify this value.' => 'Använd redigeringslänken för att ändra värdet.',
// %s can contain auto-increment value
'Item%s has been inserted.' => 'Sak%s har skapats.',
'Item has been deleted.' => 'En sak har tagits bort.',
'Item has been updated.' => 'En sak har ändrats.',
'%d item(s) have been affected.' => array('%d sak har blivit förändrad.', '%d saker har blivit förändrade.'),
'New item' => 'Ny sak',
'original' => 'original',
// label for value '' in enum data type
'empty' => 'tom',
'edit' => 'redigera',
'Edit' => 'Redigera',
'Insert' => 'Infoga',
'Save' => 'Spara',
'Save and continue edit' => 'Spara och fortsätt att redigera',
'Save and insert next' => 'Spara och infoga nästa',
'Selected' => 'Vald',
'Clone' => 'Klona',
'Delete' => 'Ta bort',
'You have no privileges to update this table.' => 'Du har inga privilegier för att uppdatera den här tabellen.',
'E-mail' => 'Email',
'From' => 'Från',
'Subject' => 'Ämne',
'Attachments' => 'Bilagor',
'Send' => 'Skicka',
'%d e-mail(s) have been sent.' => array('%d email har blivit skickat.', '%d email har blivit skickade.'),
// data type descriptions
'Numbers' => 'Nummer',
'Date and time' => 'Datum och tid',
'Strings' => 'Strängar',
'Binary' => 'Binärt',
'Lists' => 'Listor',
'Network' => 'Nätverk',
'Geometry' => 'Geometri',
'Relations' => 'Relationer',
'Editor' => 'Redigerare',
// date format in Editor: $1 yyyy, $2 yy, $3 mm, $4 m, $5 dd, $6 d
'$1-$3-$5' => '$1-$3-$5',
// hint for date format - use language equivalents for day, month and year shortcuts
'[yyyy]-mm-dd' => 'yyyy-mm-dd',
// hint for time format - use language equivalents for hour, minute and second shortcuts
'HH:MM:SS' => 'HH:MM:SS',
'now' => 'nu',
'yes' => 'ja',
'no' => 'nej',
// general SQLite error in create, drop or rename database
'File exists.' => 'Filen finns redan.',
'Please use one of the extensions %s.' => 'Vänligen använd en av filändelserna %s.',
// PostgreSQL and MS SQL schema support
'Alter schema' => 'Redigera schema',
'Create schema' => 'Skapa schema',
'Schema has been dropped.' => 'Schema har tagits bort.',
'Schema has been created.' => 'Schema har skapats.',
'Schema has been altered.' => 'Schema har ändrats.',
'Schema' => 'Schema',
'Invalid schema.' => 'Ogiltigt schema.',
// PostgreSQL sequences support
'Sequences' => 'Sekvenser',
'Create sequence' => 'Skapa sekvens',
'Sequence has been dropped.' => 'Sekvens har tagits bort.',
'Sequence has been created.' => 'Sekvens har skapats.',
'Sequence has been altered.' => 'Sekvens har ändrats.',
'Alter sequence' => 'Ändra sekvens',
// PostgreSQL user types support
'User types' => 'Användartyper',
'Create type' => 'Skapa typ',
'Type has been dropped.' => 'Typ har, typ, tagits bort.',
'Type has been created.' => 'Typ har skapats.',
'Alter type' => 'Ändra typ',
'as a regular expression' => null,
'Copy to clipboard' => null,
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'A newer version of AdminerEvo is available, download it now!' => null,
);

View file

@ -1,310 +0,0 @@
<?php
$translations = array(
'Login' => 'நுழை',
'Logout successful.' => 'வெற்றிக‌ர‌மாய் வெளியேறியாயிற்று.',
'Invalid server or credentials.' => null,
'Server' => 'வ‌ழ‌ங்கி (Server)',
'Username' => 'ப‌ய‌னாள‌ர் (User)',
'Password' => 'க‌ட‌வுச்சொல்',
'Select database' => 'த‌க‌வ‌ல்த‌ள‌த்தை தேர்வு செய்',
'Invalid database.' => 'த‌க‌வ‌ல்த‌ள‌ம் ச‌ரியானதல்ல‌.',
'Table has been dropped.' => 'அட்ட‌வ‌ணை நீக்க‌ப்ப‌ட்ட‌து.',
'Table has been altered.' => 'அட்ட‌வணை மாற்ற‌ப்ப‌ட்ட‌து.',
'Table has been created.' => 'அட்ட‌வ‌ணை உருவாக்க‌ப்ப‌ட்ட‌து.',
'Alter table' => 'அட்ட‌வ‌ணையை மாற்று',
'Create table' => 'அட்ட‌வ‌ணையை உருவாக்கு',
'Table name' => 'அட்ட‌வ‌ணைப் பெய‌ர்',
'engine' => 'எஞ்சின்',
'collation' => 'கொலேச‌ன்',
'Column name' => 'நெடுவ‌ரிசையின் பெய‌ர்',
'Type' => 'வ‌கை',
'Length' => 'நீளம்',
'Auto Increment' => 'ஏறுமான‌ம்',
'Options' => 'வேண்டிய‌வ‌ற்றை ',
'Save' => 'சேமி',
'Drop' => 'நீக்கு',
'Database has been dropped.' => 'த‌க‌வ‌ல்த‌ள‌ம் நீக்க‌ப்ப‌ட்ட‌து.',
'Database has been created.' => 'த‌க‌வ‌ல்த‌ள‌ம் உருவாக்க‌ப்ப‌ட்ட‌து.',
'Database has been renamed.' => 'த‌க‌வ‌ல்த‌ள‌ம் பெய‌ர் மாற்ற‌ப்ப‌ட்ட‌து.',
'Database has been altered.' => 'த‌க‌வ‌ல்த‌ள‌ம் மாற்ற‌ப்ப‌ட்ட‌து.',
'Alter database' => 'த‌க‌வ‌ல்த‌ள‌த்தை மாற்று',
'Create database' => 'த‌க‌வ‌ல்த‌ள‌த்தை உருவாக்கு',
'SQL command' => 'SQL க‌ட்ட‌ளை',
'Logout' => 'வெளியேறு',
'database' => 'த‌க‌வ‌ல்த‌ள‌ம்',
'Use' => 'உப‌யோகி',
'No tables.' => 'அட்ட‌வ‌ணை இல்லை.',
'select' => 'தேர்வு செய்',
'Item has been deleted.' => 'உருப்படி நீக்க‌ப்ப‌ட்ட‌து.',
'Item has been updated.' => 'உருப்ப‌டி புதுப்பிக்க‌ப்ப‌ட்ட‌து.',
'Edit' => 'தொகு',
'Insert' => 'புகுத்து',
'Save and insert next' => 'சேமித்த‌ப் பின் அடுத்த‌தை புகுத்து',
'Delete' => 'நீக்கு',
'Database' => 'த‌க‌வ‌ல்த‌ள‌ம்',
'Routines' => 'ரொட்டீன் ',
'Indexes have been altered.' => 'அக‌வ‌ரிசைக‌ள் (Indexes) மாற்ற‌ப்பட்ட‌து.',
'Indexes' => 'அக‌வ‌ரிசைக‌ள் (Index) ',
'Alter indexes' => 'அக‌வ‌ரிசையை (Index) மாற்று',
'Add next' => 'அடுத்த‌தை சேர்க்க‌வும்',
'Language' => 'மொழி',
'Select' => 'தேர்வு செய்',
'New item' => 'புதிய‌ உருப்ப‌டி',
'Search' => 'தேடு',
'Sort' => 'த‌ர‌ம் பிரி',
'descending' => 'இற‌ங்குமுக‌மான‌',
'Limit' => 'வ‌ர‌ம்பு',
'No rows.' => 'வ‌ரிசை இல்லை.',
'Action' => 'செய‌ல்',
'edit' => 'தொகு',
'Page' => 'ப‌க்க‌ம்',
'Query executed OK, %d row(s) affected.' => array('வின‌வ‌ல் செய‌ல்ப‌டுத்த‌ப்ப‌ட்ட‌து, %d வ‌ரிசை மாற்ற‌ப்ப‌ட்ட‌து.', 'வின‌வ‌ல் செய‌ல்ப‌டுத்த‌ப்ப‌ட்ட‌து, %d வ‌ரிசைக‌ள் மாற்றப்ப‌ட்ட‌ன‌.'),
'Error in query' => 'வின‌வ‌லில் த‌வ‌றுள்ள‌து',
'Execute' => 'செய‌ல்ப‌டுத்து',
'Table' => 'அட்ட‌வ‌ணை',
'Foreign keys' => 'வேற்று விசைக‌ள்',
'Triggers' => 'தூண்டுத‌ல்க‌ள்',
'View' => 'தோற்றம்',
'Unable to select the table' => 'அட்ட‌வ‌ணையை தேர்வு செய்ய‌ முடிய‌வில்லை',
'Invalid CSRF token. Send the form again.' => 'CSRF டோக்க‌ன் செல்லாது. ப‌டிவ‌த்தை மீண்டும் அனுப்ப‌வும்.',
'Comment' => 'குறிப்பு',
'Default values' => 'உள்ளிருக்கும் (Default) ம‌திப்புக‌ள் ',
'%d byte(s)' => array('%d பைட்', '%d பைட்டுக‌ள்'),
'No commands to execute.' => 'செய‌ல் ப‌டுத்த‌ எந்த‌ க‌ட்ட‌ளைக‌ளும் இல்லை.',
'Unable to upload a file.' => 'கோப்பை மேலேற்ற‌ம் (upload) செய்ய‌ இயல‌வில்லை.',
'File upload' => 'கோப்பை மேலேற்று (upload) ',
'File uploads are disabled.' => 'கோப்புக‌ள் மேலேற்றம் (upload)முட‌க்க‌ப்ப‌ட்டுள்ள‌ன‌.',
'Routine has been called, %d row(s) affected.' => array('ரொட்டீன்க‌ள் அழைக்க‌ப்பட்டுள்ள‌ன‌, %d வ‌ரிசை மாற்ற‌ம் அடைந்த‌து.', 'ரொட்டீன்க‌ள் அழைக்க‌ப்ப‌ட்டுள்ள‌ன‌, %d வ‌ரிசைக‌ள் மாற்றம் அடைந்துள்ள‌ன‌.'),
'Call' => 'அழை',
'None of the supported PHP extensions (%s) are available.' => 'PHP ஆத‌ர‌வு விரிவுக‌ள் (%s) இல்லை.',
'Session support must be enabled.' => 'செஷ‌ன் ஆத‌ர‌வு இய‌க்க‌ப்ப‌ட‌ வேண்டும்.',
'Session expired, please login again.' => 'செஷ‌ன் காலாவ‌தியாகி விட்ட‌து. மீண்டும் நுழைய‌வும்.',
'Text length' => 'உரை நீள‌ம்',
'Foreign key has been dropped.' => 'வேற்று விசை நீக்க‌ப்ப‌ட்ட‌து.',
'Foreign key has been altered.' => 'வேற்று விசை மாற்ற‌ப்ப‌ட்ட‌து.',
'Foreign key has been created.' => 'வேற்று விசை உருவாக்க‌ப்ப‌ட்ட‌து.',
'Foreign key' => 'வேற்று விசை',
'Target table' => 'அட்ட‌வ‌ணை இல‌க்கு',
'Change' => 'மாற்று',
'Source' => 'மூல‌ம்',
'Target' => 'இல‌க்கு',
'Add column' => 'நெடு வ‌ரிசையை சேர்க்க‌வும்',
'Alter' => 'மாற்று',
'Add foreign key' => 'வேற்று விசை சேர்க்க‌வும்',
'ON DELETE' => 'ON DELETE',
'ON UPDATE' => 'ON UPDATE',
'Index Type' => 'அக‌வ‌ரிசை வ‌கை (Index Type)',
'Column (length)' => 'நெடுவ‌ரிசை (நீள‌ம்)',
'View has been dropped.' => 'தோற்ற‌ம் நீக்க‌ப்ப‌ட்ட‌து.',
'View has been altered.' => 'தோற்றம் மாற்றப்ப‌ட்ட‌து.',
'View has been created.' => 'தோற்ற‌ம் உருவாக்க‌ப்ப‌ட்ட‌து.',
'Alter view' => 'தோற்ற‌த்தை மாற்று',
'Create view' => 'தோற்றத்தை உருவாக்கு',
'Name' => 'பெய‌ர்',
'Process list' => 'வேலைக‌ளின் ப‌ட்டி',
'%d process(es) have been killed.' => array('%d வேலை வ‌லுவில் நிறுத்த‌ப‌ட்ட‌து.', '%d வேலைக‌ள் வ‌லுவில் நிறுத்த‌ப‌ட்ட‌ன‌.'),
'Kill' => 'வ‌லுவில் நிறுத்து',
'Parameter name' => 'அள‌புரு (Parameter) பெய‌ர்',
'Database schema' => 'த‌க‌வ‌ல்த‌ள‌ அமைப்பு முறைக‌ள்',
'Create procedure' => 'செய்முறையை உருவாக்கு',
'Create function' => 'Function உருவாக்கு',
'Routine has been dropped.' => 'ரொட்டீன் நீக்க‌ப்ப‌ட்ட‌து.',
'Routine has been altered.' => 'ரொட்டீன் மாற்ற‌ப்ப‌ட்டது.',
'Routine has been created.' => 'ரொட்டீன் உருவாக்க‌ப்ப‌ட்ட‌து.',
'Alter function' => 'Function மாற்று',
'Alter procedure' => 'செய‌ல்முறையை மாற்று',
'Return type' => 'திரும்பு வ‌கை',
'Add trigger' => 'தூண்டு விசையை சேர்',
'Trigger has been dropped.' => 'தூண்டு விசை நீக்க‌ப்ப‌ட்ட‌து.',
'Trigger has been altered.' => 'தூண்டு விசை மாற்ற‌ப்ப‌ட்ட‌து.',
'Trigger has been created.' => 'தூண்டு விசை உருவாக்க‌ப்ப‌ட்ட‌து.',
'Alter trigger' => 'தூண்டு விசையை மாற்று',
'Create trigger' => 'தூண்டு விசையை உருவாக்கு',
'Time' => 'நேர‌ம்',
'Event' => 'நிக‌ழ்ச்சி',
'%d row(s)' => array('%d வ‌ரிசை', '%d வ‌ரிசைக‌ள்'),
'Remove' => 'நீக்கு',
'Are you sure?' => 'நிச்ச‌ய‌மாக‌ ?',
'Privileges' => 'ச‌லுகைக‌ள் / சிற‌ப்புரிமைக‌ள்',
'Create user' => 'ப‌ய‌னாள‌ரை உருவாக்கு',
'User has been dropped.' => 'ப‌யனீட்டாள‌ர் நீக்க‌ப்ப‌ட்டார்.',
'User has been altered.' => 'ப‌யனீட்டாள‌ர் மாற்றப்ப‌ட்டார்.',
'User has been created.' => 'ப‌ய‌னீட்டாள‌ர் உருவாக்க‌ப்ப‌ட்ட‌து.',
'Hashed' => 'Hashed',
'Column' => 'நெடுவ‌ரிசை',
'Routine' => 'ரொட்டீன்',
'Grant' => 'அனும‌திய‌ளி',
'Revoke' => 'இர‌த்துச்செய்',
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'மிக‌ அதிக‌மான‌ POST த‌க‌வ‌ல். த‌க‌வ‌லை குறைக்க‌வும் அல்ல‌து %s வ‌டிவ‌மைப்பை (configuration directive) மாற்ற‌வும்.',
'Logged as: %s' => 'ப‌ய‌னாளர்: %s',
'Move up' => 'மேலே ந‌க‌ர்த்து',
'Move down' => 'கீழே நக‌ர்த்து',
'Functions' => 'Functions',
'Aggregation' => 'திர‌ள்வு (Aggregation)',
'Export' => 'ஏற்றும‌தி',
'Output' => 'வெளியீடு',
'open' => 'திற‌',
'save' => 'சேமி',
'Format' => 'ஃபார்ம‌ட் (Format)',
'Tables' => 'அட்ட‌வ‌ணை',
'Data' => 'த‌க‌வ‌ல்',
'Event has been dropped.' => 'நிக‌ழ்ச்சி (Event) நீக்க‌ப்ப‌ட்ட‌து.',
'Event has been altered.' => 'நிக‌ழ்ச்சி (Event) மாற்றப்ப‌ட்ட‌து.',
'Event has been created.' => 'நிக‌ழ்ச்சி (Event) உருவாக்க‌‌ப்ப‌ட்ட‌து.',
'Alter event' => 'நிக‌ழ்ச்சியை (Event) மாற்று',
'Create event' => 'நிக‌ழ்ச்சியை (Event) உருவாக்கு',
'At given time' => 'குறித்த‌ நேர‌த்தில்',
'Every' => 'ஒவ்வொரு',
'Events' => 'நிக‌ழ்ச்சிக‌ள்',
'Schedule' => 'கால‌ அட்ட‌வ‌ணை',
'Start' => 'தொட‌ங்கு',
'End' => 'முடி (வு)',
'Status' => 'நிக‌ழ்நிலை (Status)',
'On completion preserve' => 'முடிந்த‌தின் பின் பாதுகாக்க‌வும்',
'Tables and views' => 'அட்ட‌வ‌ணைக‌ளும் பார்வைக‌ளும்',
'Data Length' => 'த‌க‌வ‌ல் நீள‌ம்',
'Index Length' => 'Index நீள‌ம்',
'Data Free' => 'Data Free',
'Collation' => 'கொலேச‌ன்',
'Analyze' => 'நுணுகி ஆராய‌வும்',
'Optimize' => 'உக‌ப்பாக்கு (Optimize)',
'Check' => 'ப‌ரிசோதி',
'Repair' => 'ப‌ழுது பார்',
'Truncate' => 'குறை (Truncate)',
'Tables have been truncated.' => 'அட்ட‌வ‌ணை குறைக்க‌ப்ப‌ட்ட‌து (truncated).',
'Rows' => 'வ‌ரிசைக‌ள்',
',' => ',',
'0123456789' => '0123456789',
'Tables have been moved.' => 'அட்ட‌வ‌ணை ந‌க‌ர்த்த‌ப்ப‌ட்ட‌து.',
'Move to other database' => 'ம‌ற்ற‌ த‌க‌வ‌ல் தள‌த்திற்க்கு ந‌க‌ர்த்து',
'Move' => 'ந‌க‌ர்த்து',
'Engine' => 'எஞ்சின் (Engine)',
'Save and continue edit' => 'சேமித்த‌ பிற‌கு தொகுப்ப‌தை தொட‌ர‌வும்',
'original' => 'அச‌ல்',
'Tables have been dropped.' => 'அட்ட‌வ‌ணை நீக்க‌ப்ப‌ட்ட‌து.',
'%d item(s) have been affected.' => array('%d உருப்ப‌டி மாற்ற‌ம‌டைந்தது.', '%d உருப்ப‌டிக‌ள் மாற்ற‌ம‌டைந்த‌ன‌.'),
'Whole result' => 'முழுமையான‌ முடிவு',
'Clone' => 'ந‌க‌லி (Clone)',
'Maximum number of allowed fields exceeded. Please increase %s.' => 'அனும‌திக்க‌ப்ப‌ட்ட‌ அதிக‌ப‌ட்ச‌ கோப்புக‌ளின் எண்ணிக்கை மீற‌ப்ப‌ட்ட‌து. த‌ய‌வு செய்து %s ம‌ற்றும் %s யை அதிக‌ரிக்க‌வும்.',
'Partition by' => 'பிரித்த‌து',
'Partitions' => 'பிரிவுக‌ள்',
'Partition name' => 'பிரிவின் பெய‌ர்',
'Values' => 'ம‌திப்புக‌ள்',
'%d row(s) have been imported.' => array('%d வ‌ரிசை இற‌க்கும‌தி (Import) செய்ய‌ப்ப‌ட்ட‌து.', '%d வ‌ரிசைக‌ள் இற‌க்கும‌தி (Import) செய்ய‌ப்ப‌ட்டன‌.'),
'Show structure' => 'க‌ட்ட‌மைப்பை காண்பிக்க‌வும்',
'Import' => 'இற‌க்கும‌தி (Import)',
'Stop on error' => 'பிழை ஏற்ப‌டின் நிற்க‌',
'Select data' => 'த‌க‌வ‌லை தேர்வு செய்',
'%.3f s' => '%.3f s',
'$1-$3-$5' => '$5/$3/$1',
'[yyyy]-mm-dd' => 'dd/mm/[yyyy]',
'History' => 'வ‌ர‌லாறு',
'Variables' => 'மாறிலிக‌ள் (Variables)',
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'இல‌க்கு நெடுவ‌ரிசையில் அக‌வ‌ரிசை (Index) ம‌ற்றும் குறிக்க‌ப்ப‌ட்ட‌ த‌க‌வல் (Referenced DATA) க‌ண்டிப்பாக‌ இருத்த‌ல் வேண்டும். மூல‌ நெடுவ‌ரிசை ம‌ற்றும் இலக்கு நெடுவ‌ரிசையின் த‌க‌வ‌ல் வ‌டிவ‌ம் (DATA TYPE) ஒன்றாக‌ இருக்க‌ வேண்டும்.',
'Relations' => 'உற‌வுக‌ள் (Relations)',
'Run file' => 'கோப்பினை இய‌க்க‌வும்',
'Clear' => 'துடை (Clear)',
'Maximum allowed file size is %sB.' => 'கோப்பின் அதிக‌ப‌ட்ச‌ அள‌வு %sB.',
'Numbers' => 'எண்க‌ள்',
'Date and time' => 'தேதி ம‌ற்றும் நேர‌ம்',
'Strings' => 'ச‌ர‌ம் (String)',
'Binary' => 'பைன‌ரி',
'Lists' => 'ப‌ட்டிய‌ல்',
'Editor' => 'தொகுப்பாளர்',
'E-mail' => 'மின்ன‌ஞ்ச‌ல்',
'From' => 'அனுப்புனர்',
'Subject' => 'பொருள்',
'Send' => 'அனுப்பு',
'%d e-mail(s) have been sent.' => array('%d மின்ன‌ஞ்ச‌ல் அனுப்ப‌ப‌ட்ட‌து.', '%d மின்ன‌ஞ்ச‌ல்க‌ள் அனுப்ப‌ப்ப‌ட்ட‌ன‌.'),
'Webserver file %s' => 'வெப் ச‌ர்வ‌ர் கோப்பு %s',
'File does not exist.' => 'கோப்பு இல்லை.',
'%d in total' => 'மொத்தம் %d ',
'Permanent login' => 'நிர‌ந்த‌ர‌மாக‌ நுழைய‌வும்',
'Schema' => 'அமைப்புமுறை',
'Alter schema' => 'அமைப்புமுறையை மாற்று',
'Create schema' => 'அமைப்புமுறையை உருவாக்கு',
'Search data in tables' => 'த‌க‌வ‌லை அட்ட‌வ‌ணையில் தேடு',
'Sequences' => 'வ‌ரிசைமுறை',
'Create sequence' => 'வ‌ரிசைமுறையை உருவாக்கு',
'User types' => 'ப‌ய‌னாள‌ர் வ‌கைக‌ள்',
'Create type' => 'வ‌கையை உருவாக்கு',
'Item%s has been inserted.' => 'உருப்ப‌டி (Item) சேர்க்க‌ப்ப‌ட்ட‌து.',
'Schema has been dropped.' => 'அமைப்புமுறை நீக்க‌ப்ப‌ட்ட‌து.',
'Schema has been created.' => 'அமைப்புமுறை உருவாக்க‌ப்ப‌ட்ட‌து.',
'Schema has been altered.' => 'அமைப்புமுறை மாற்ற‌ப்ப‌ட்ட‌து.',
'Use edit link to modify this value.' => 'இந்த‌ ம‌திப்பினை மாற்ற‌, தொகுப்பு இணைப்பினை உப‌யோகிக்க‌வும்.',
'last' => 'க‌டைசி',
'Sequence has been dropped.' => 'வ‌ரிசைமுறை நீக்க‌ப்ப‌ட்ட‌து.',
'Sequence has been created.' => 'வ‌ரிசைமுறை உருவாக்க‌ப்ப‌ட்ட‌து.',
'Sequence has been altered.' => 'வ‌ரிசைமுறை மாற்ற‌ப்ப‌ட்ட‌து.',
'Alter sequence' => 'வ‌ரிசைமுறையை மாற்று',
'From server' => 'செர்வ‌ரில் இருந்து',
'Type has been dropped.' => 'வ‌கை (type) நீக்க‌ப்ப‌ட்ட‌து.',
'Type has been created.' => 'வ‌கை (type) உருவாக்க‌ப்ப‌ட்ட‌து.',
'Alter type' => 'வ‌கையினை (type) மாற்று',
'System' => 'சிஸ்ட‌ம் (System)',
'anywhere' => 'எங்காயினும்',
'empty' => 'வெறுமை (empty)',
'No extension' => 'விரிவு (extensஇஒன்) இல்லை ',
'Databases have been dropped.' => 'த‌க‌வ‌ல் த‌ள‌ங்க‌ள் நீக்க‌ப்ப‌ட்டன‌.',
'%s version: %s through PHP extension %s' => '%s ப‌திப்பு: %s through PHP extension %s',
'Network' => 'நெட்வொர்க்',
'Geometry' => 'வ‌டிவ‌விய‌ல் (Geometry)',
'File exists.' => 'கோப்பு உள்ள‌து.',
'Attachments' => 'இணைப்புக‌ள்',
'now' => 'இப்பொழுது',
'%d query(s) executed OK.' => array('%d வின‌வ‌ல் செய‌ல்ப‌டுத்த‌ப்ப‌ட்ட‌து.', '%d வின‌வ‌ல்க‌ள் செய‌ல்ப‌டுத்த‌ப்ப‌ட்ட‌ன‌.'),
'Show only errors' => 'பிழைக‌ளை ம‌ட்டும் காண்பிக்க‌வும்',
'Refresh' => 'புதுப்பி (Refresh)',
'Invalid schema.' => 'அமைப்புமுறை ச‌ரியான‌த‌ல்ல‌ (Invalid Schema).',
'Please use one of the extensions %s.' => 'த‌ய‌வு செய்து ஒரு விரிவினை %s (extension) உப‌யோகிக்க‌வும்.',
'ltr' => 'ltr',
'Tables have been copied.' => 'அட்டவணைகள் நகலெடுக்கப் பட்டது.',
'Copy' => 'நகல்',
'Permanent link' => 'நிரந்தர இணைப்பு',
'Edit all' => 'அனைத்தையும் தொகு',
'HH:MM:SS' => 'HH:MM:SS',
'Drop %s?' => null,
'Tables have been optimized.' => null,
'as a regular expression' => null,
'Materialized view' => null,
'Vacuum' => null,
'Selected' => null,
'overwrite' => null,
'DB' => null,
'Ctrl+click on a value to modify it.' => null,
'File must be in UTF-8 encoding.' => null,
'Modify' => null,
'Load more data' => null,
'Loading' => null,
'Copy to clipboard' => null,
'ATTACH queries are not supported.' => null,
'Warnings' => null,
'%d / ' => array(),
'Limit rows' => null,
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
'Default value' => null,
'Full table scan' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array(),
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null,
'There is a space in the input password which might be the cause.' => null,
'If you did not send this request from Adminer then close this page.' => null,
'You can upload a big SQL file via FTP and import it from server.' => null,
'Size' => null,
'Compute' => null,
'You are offline.' => null,
'You have no privileges to update this table.' => null,
'Saving' => null,
'Unknown error.' => null,
'Database does not support password.' => null,
'Disable %s or enable %s or %s extensions.' => null,
'yes' => null,
'no' => null,
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'A newer version of AdminerEvo is available, download it now!' => null,
);

View file

@ -1,310 +0,0 @@
<?php
$translations = array(
'Login' => 'เข้าสู่ระบบ',
'Logout successful.' => 'ออกจากระบบเรียบร้อยแล้ว.',
'Invalid server or credentials.' => null,
'Server' => 'เซอเวอร์',
'Username' => 'ชื่อผู้ใช้งาน',
'Password' => 'รหัสผ่าน',
'Select database' => 'เลือกฐานข้อมูล',
'Invalid database.' => 'ฐานข้อมูลไม่ถูกต้อง.',
'Table has been dropped.' => 'ลบตารางแล้ว.',
'Table has been altered.' => 'แก้ไขตารางแล้ว.',
'Table has been created.' => 'สร้างตารางใหม่แล้ว.',
'Alter table' => 'เปลี่ยนแปลงตารางแล้ว',
'Create table' => 'สร้างตารางใหม่',
'Table name' => 'ชื่อตาราง',
'engine' => 'ชนิดของฐานข้อมูล',
'collation' => 'การตรวจทาน',
'Column name' => 'ชื่อคอลัมน์',
'Type' => 'ชนิด',
'Length' => 'ความยาว',
'Auto Increment' => 'เพิ่มลำดับโดยอัตโนมัติ',
'Options' => 'ตัวเลือก',
'Save' => 'บันทึก',
'Drop' => 'ลบ',
'Database has been dropped.' => 'ฐานข้อมูลถูกลบแล้ว.',
'Database has been created.' => 'สร้างฐานข้อมูลใหม่แล้ว.',
'Database has been renamed.' => 'เปลี่ยนชื่อฐานข้อมูลแล้ว.',
'Database has been altered.' => 'เปลี่ยนแปลงฐานข้อมูลแล้ว.',
'Alter database' => 'เปลี่ยนแปลงฐานข้อมูล',
'Create database' => 'สร้างฐานข้อมูล',
'SQL command' => 'คำสั่ง SQL',
'Logout' => 'ออกจากระบบ',
'database' => 'ฐานข้อมูล',
'Use' => 'ใช้งาน',
'No tables.' => 'ไม่พบตาราง.',
'select' => 'เลือก',
'Item has been deleted.' => 'รายการถูกลบแล้ว.',
'Item has been updated.' => 'ปรับปรุงรายการแล้ว.',
'Item%s has been inserted.' => 'มี%s รายการ ถูกเพิ่มแล้ว.',
'Edit' => 'แก้ไข',
'Insert' => 'เพิ่ม',
'Save and insert next' => 'บันทึกแล้วเพิ่มรายการถัดไป',
'Delete' => 'ลบ',
'Database' => 'ฐานข้อมูล',
'Routines' => 'รูทีน',
'Indexes have been altered.' => 'เปลี่ยนแปลงดัชนีแล้ว.',
'Indexes' => 'ดัชนี',
'Alter indexes' => 'เปลี่ยนแปลงดัชนี',
'Add next' => 'เพิ่มรายการถัดไป',
'Language' => 'ภาษา',
'Select' => 'เลือก',
'New item' => 'รายการใหม่',
'Search' => 'ค้นหา',
'Sort' => 'เรียงลำดับ',
'descending' => 'มากไปน้อย',
'Limit' => 'จำกัด',
'No rows.' => 'ไม่มีแถวของตาราง.',
'Action' => 'ดำเนินการ',
'edit' => 'แก้ไข',
'Page' => 'หน้า',
'Query executed OK, %d row(s) affected.' => 'ประมวลผลคำสั่งแล้ว มี %d ถูกดำเนินการ.',
'Error in query' => 'คำสั่งไม่ถูกต้อง',
'Execute' => 'ประมวลผล',
'Table' => 'ตาราง',
'Foreign keys' => 'คีย์คู่แข่ง',
'Triggers' => 'ทริกเกอร์',
'View' => 'วิว',
'Unable to select the table' => 'ไม่สามารถเลือกตารางได้',
'Invalid CSRF token. Send the form again.' => 'เครื่องหมาย CSRF ไม่ถูกต้อง ส่งข้อมูลใหม่อีกครั้ง.',
'Comment' => 'หมายเหตุ',
'Default values' => 'ค่าเริ่มต้น',
'%d byte(s)' => '%d ไบท์',
'No commands to execute.' => 'ไม่มีคำสั่งที่จะประมวลผล.',
'Unable to upload a file.' => 'ไม่สามารถอัปโหลดไฟล์ได้.',
'File upload' => 'อัปโหลดไฟล์',
'File uploads are disabled.' => 'การอัปโหลดไฟล์ถูกปิดการใช้งาน.',
'Routine has been called, %d row(s) affected.' => 'รูทีนถูกเรียกใช้งาน มี %d แถวถูกดำเนินการ.',
'Call' => 'เรียกใช้งาน',
'No extension' => 'ไม่พบส่วนเสริม',
'None of the supported PHP extensions (%s) are available.' => 'ไม่มีส่วนเสริมของ PHP (%s) ที่สามารถใช้งานได้.',
'Session support must be enabled.' => 'ต้องเปิดใช้งาน Session.',
'Session expired, please login again.' => 'Session หมดอายุแล้ว กรุณาเข้าสู่ระบบใหม่อีกครั้ง.',
'Text length' => 'ความยาวของอักษร',
'Foreign key has been dropped.' => 'คีย์คู่แข่งถูกลบแล้ว.',
'Foreign key has been altered.' => 'คีย์คู่แข่งถูกเปลี่ยนแปลงแล้ว.',
'Foreign key has been created.' => 'คีย์คู่แข่งถูกสร้างแล้ว.',
'Foreign key' => 'คีย์คู่แข่ง',
'Target table' => 'คารางเป้าหมาย',
'Change' => 'แก้ไข',
'Source' => 'แหล่งข้อมูล',
'Target' => 'เป้าหมาย',
'Add column' => 'เพิ่มคอลัมน์',
'Alter' => 'เปลี่ยนแปลง',
'Add foreign key' => 'เพิ่มคีย์คู่แข่ง',
'ON DELETE' => 'ON DELETE',
'ON UPDATE' => 'ON UPDATE',
'Index Type' => 'ชนิดของดัชนี',
'Column (length)' => 'คอลัมน์ (ความยาว)',
'View has been dropped.' => 'วิวถูกลบแล้ว.',
'View has been altered.' => 'วิวถูกเปลี่ยนแปลงแล้ว.',
'View has been created.' => 'วิวถูกสร้างแล้ว.',
'Alter view' => 'เปลี่ยนแปลงวิว',
'Create view' => 'เพิ่มวิว',
'Name' => 'ชื่อ',
'Process list' => 'รายการของกระบวนการ',
'%d process(es) have been killed.' => 'มี %d กระบวนการถูกทำลายแล้ว.',
'Kill' => 'ทำลาย',
'Parameter name' => 'ชื่อพารามิเตอร์',
'Database schema' => 'Schema ของฐานข้อมูล',
'Create procedure' => 'สร้าง procedure',
'Create function' => 'สร้าง Function',
'Routine has been dropped.' => 'Routine ถูกลบแล้ว.',
'Routine has been altered.' => 'Routine ถูกเปลี่ยนแปลงแล้ว.',
'Routine has been created.' => 'Routine ถูกสร้างแล้ว.',
'Alter function' => 'เปลี่ยนแปลง Function',
'Alter procedure' => 'เปลี่ยนแปลง procedure',
'Return type' => 'ประเภทของค่าที่คืนกลับ',
'Add trigger' => 'เพิ่ม trigger',
'Trigger has been dropped.' => 'Trigger ถูกลบแล้ว.',
'Trigger has been altered.' => 'Trigger ถูกเปลี่ยนแปลงแล้ว.',
'Trigger has been created.' => 'Trigger ถูกสร้างแล้ว.',
'Alter trigger' => 'เปลี่ยนแปลง Trigger',
'Create trigger' => 'สร้าง Trigger',
'Time' => 'เวลา',
'Event' => 'เหตุการณ์',
'%s version: %s through PHP extension %s' => '%s รุ่น: %s ผ่านส่วนขยาย PHP %s',
'%d row(s)' => '%d แถว',
'Remove' => 'ลบ',
'Are you sure?' => 'คุณแน่ใจแล้วหรือ',
'Privileges' => 'สิทธิ์',
'Create user' => 'สร้างผู้ใช้งาน',
'User has been dropped.' => 'ลบผู้ใช้งานแล้ว.',
'User has been altered.' => 'เปลี่ยนแปลงผู้ใช้งานแล้ว.',
'User has been created.' => 'สร้างผู้ใช้งานแล้ว.',
'Hashed' => 'Hash',
'Column' => 'คอลัมน์',
'Routine' => 'รูทีน',
'Grant' => 'การอนุญาต',
'Revoke' => 'ยกเลิก',
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'ข้อมูลที่ส่งเข้ามีขนาดใหญ่เกิน คุณสามารถ เพิ่ม-ลดขนาดได้ที่ %s คำสั่งการตั้งค่า.',
'Logged as: %s' => 'สวัสดีคุณ: %s',
'Move up' => 'ย้ายไปข้างบน',
'Move down' => 'ย้ายลงล่าง',
'Functions' => 'ฟังก์ชั่น',
'Aggregation' => 'รวบรวม',
'Export' => 'ส่งออก',
'Output' => 'ข้อมูลที่ส่งออก',
'open' => 'เปิด',
'save' => 'บันทึก',
'Format' => 'รูปแบบ',
'Tables' => 'ตาราง',
'Data' => 'ข้อมูล',
'Event has been dropped.' => 'เหตุการณ์ถูกลบแล้ว.',
'Event has been altered.' => 'เหตุการณ์ถูกเปลี่ยนแปลงแล้ว.',
'Event has been created.' => 'เหตุการณ์ถูกสร้างแล้ว.',
'Alter event' => 'เปลี่ยนแปลงเหตุการณ์',
'Create event' => 'สร้างเหตุการณ์',
'At given time' => 'ในเวลาที่กำหนด',
'Every' => 'ทุกๆ',
'Events' => 'เหตุการณ์',
'Schedule' => 'กำหนดการณ์',
'Start' => 'เริ่มต้น',
'End' => 'สิ้นสุด',
'Status' => 'สถานะ',
'On completion preserve' => 'เมื่อเสร็จสิ้นการสงวน',
'Tables and views' => 'ตารางและวิว',
'Data Length' => 'ความยาวของข้อมูล',
'Index Length' => 'ความยาวของดัชนี',
'Data Free' => 'พื้นที่ว่าง',
'Collation' => 'การตรวจทาน',
'Analyze' => 'วิเคราะห์',
'Optimize' => 'เพิ่มประสิทธิภาพ',
'Check' => 'ตรวจสอบ',
'Repair' => 'ซ่อมแซม',
'Truncate' => 'ตัดทิ้ง',
'Tables have been truncated.' => 'เคลียร์ตารางแล้ว (truncate).',
'Rows' => 'แถว',
',' => ' ',
'0123456789' => '0123456789',
'Tables have been moved.' => 'ตารางถูกย้ายแล้ว.',
'Move to other database' => 'ย้ายไปยังฐานข้อมูลอื่น',
'Move' => 'ย้าย',
'Engine' => 'ชนิดของฐานข้อมูล',
'Save and continue edit' => 'บันทึกและแก้ไขข้อมูลอื่นๆต่อ',
'original' => 'ต้นฉบับ',
'Tables have been dropped.' => 'ตารางถูกลบแล้ว.',
'%d item(s) have been affected.' => 'มี %d รายการถูกดำเนินการแล้ว.',
'Whole result' => 'รวมผล',
'Clone' => 'ทำซ้ำ',
'Maximum number of allowed fields exceeded. Please increase %s.' => 'จำนวนสูงสุดของฟิลด์อนุญาตให้เกิน กรุณาเพิ่มอีก %s.',
'Partition by' => 'พาร์ทิชันโดย',
'Partitions' => 'พาร์ทิชัน',
'Partition name' => 'ชื่อของพาร์ทิชัน',
'Values' => 'ค่า',
'%d row(s) have been imported.' => '%d แถวถูกนำเข้าแล้ว.',
'anywhere' => 'ทุกแห่ง',
'Import' => 'นำเข้า',
'Stop on error' => 'หยุดการทำงานเมื่อเออเรอ',
'%.3f s' => '%.3f วินาที',
'$1-$3-$5' => '$5/$3/$1',
'[yyyy]-mm-dd' => 'วันที่/เดือน/[ปี]',
'History' => 'ประวัติ',
'Variables' => 'ตัวแปร',
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'แหล่งที่มาและเป้าหมายของคอลมัน์ต้องมีชนิดข้อมูลเดียวกัน คือต้องมีดัชนีและข้อมูลอ้างอิงของคอลัมน์เป้าหมาย.',
'Relations' => 'ความสำพันธ์',
'Run file' => 'ทำงานจากไฟล์',
'Clear' => 'เคลียร์',
'Maximum allowed file size is %sB.' => 'ขนาดไฟล์สูงสุดที่อนุญาตให้ใช้งานคือ %sB.',
'Numbers' => 'ตัวเลข',
'Date and time' => 'วันและเวลา',
'Strings' => 'ตัวอักษร',
'Binary' => 'เลขฐานสอง',
'Lists' => 'รายการ',
'Editor' => 'ผู้แก้ไข',
'E-mail' => 'อีเมล์',
'From' => 'จาก',
'Subject' => 'หัวข้อ',
'Send' => 'ส่ง',
'%d e-mail(s) have been sent.' => 'มี %d อีเมล์ ถูกส่งออกแล้ว.',
'Webserver file %s' => 'Webserver file %s',
'File does not exist.' => 'ไม่มีไฟล์.',
'%d in total' => '%d ของทั้งหมด',
'Permanent login' => 'จดจำการเข้าสู่ระบบตลอดไป',
'Databases have been dropped.' => 'ฐานข้อมูลถูกลบแล้ว.',
'Search data in tables' => 'ค้นหาในตาราง',
'Schema' => 'Schema',
'Alter schema' => 'เปลี่ยนแปลง schema',
'Create schema' => 'สร้าง schema',
'Schema has been dropped.' => 'Schema ถูกลบแล้ว.',
'Schema has been created.' => 'Schema ถูกสร้างแล้ว.',
'Schema has been altered.' => 'Schema ถูกเปลี่ยนแปลงแล้ว.',
'Sequences' => 'Sequences',
'Create sequence' => 'Sequence ถูกสร้างแล้ว',
'Alter sequence' => 'Sequence ถูกเปลี่ยนแปลงแล้ว',
'Sequence has been dropped.' => 'Sequence ถูกลบแล้ว.',
'Sequence has been created.' => 'Sequence ถูกสร้างแล้ว.',
'Sequence has been altered.' => 'Sequence ถูกเปลี่ยนแปลงแล้ว.',
'User types' => 'ประเภทผู้ใช้งาน',
'Create type' => 'สร้างประเภทผู้ใช้งาน',
'Alter type' => 'แก้ไขประเภท',
'Type has been dropped.' => 'ประเภทถูกลบแล้ว.',
'Type has been created.' => 'ประเภทถูกสร้างแล้ว.',
'Ctrl+click on a value to modify it.' => 'กด Ctrl+click เพื่อแก้ไขค่า.',
'Use edit link to modify this value.' => 'ใช้ลิงค์ แก้ไข เพื่อปรับเปลี่ยนค่านี้.',
'last' => 'ล่าสุด',
'From server' => 'จากเซเวอร์',
'System' => 'ระบบ',
'Select data' => 'เลือกข้อมูล',
'Show structure' => 'แสดงโครงสร้าง',
'empty' => 'ว่างเปล่า',
'Network' => 'เครื่องข่าย',
'Geometry' => 'เรขาคณิต',
'File exists.' => 'มีไฟล์นี้อยู่แล้ว.',
'Attachments' => 'ไฟล์แนบ',
'%d query(s) executed OK.' => '%d คำสั่งถูกดำเนินการแล้ว.',
'Show only errors' => 'แสดงเฉพาะเออเรอ',
'Refresh' => 'โหลดใหม่',
'Invalid schema.' => 'schema ไม่ถูกต้อง.',
'Please use one of the extensions %s.' => 'กรุณาใช้ส่วนเสริมอย่างน้อย 1 ส่วนเสริมจากทั้งหมด %s.',
'now' => 'ตอนนี้',
'ltr' => 'ltr',
'Tables have been copied.' => 'ทำซ้ำตารางฐานข้อมูลแล้ว.',
'Copy' => 'ทำซ้ำ',
'Permanent link' => 'ลิงค์ถาวร',
'Edit all' => 'แก้ไขทั้งหมด',
'HH:MM:SS' => 'HH:MM:SS',
'Drop %s?' => null,
'Tables have been optimized.' => null,
'as a regular expression' => null,
'Materialized view' => null,
'Vacuum' => null,
'Selected' => null,
'overwrite' => null,
'DB' => null,
'File must be in UTF-8 encoding.' => null,
'Modify' => null,
'Load more data' => null,
'Loading' => null,
'Copy to clipboard' => null,
'ATTACH queries are not supported.' => null,
'Warnings' => null,
'%d / ' => array(),
'Limit rows' => null,
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
'Default value' => null,
'Full table scan' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array(),
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null,
'There is a space in the input password which might be the cause.' => null,
'If you did not send this request from Adminer then close this page.' => null,
'You can upload a big SQL file via FTP and import it from server.' => null,
'Size' => null,
'Compute' => null,
'You are offline.' => null,
'You have no privileges to update this table.' => null,
'Saving' => null,
'Unknown error.' => null,
'Database does not support password.' => null,
'Disable %s or enable %s or %s extensions.' => null,
'yes' => null,
'no' => null,
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'A newer version of AdminerEvo is available, download it now!' => null,
);

View file

@ -1,355 +0,0 @@
<?php
$translations = array(
// label for database system selection (MySQL, SQLite, ...)
'System' => 'Sistem',
'Server' => 'Sunucu',
'Username' => 'Kullanıcı',
'Password' => 'Parola',
'Permanent login' => 'Beni hatırla',
'Login' => 'Giriş',
'Logout' => ıkış',
'Logged as: %s' => '%s olarak giriş yapıldı.',
'Logout successful.' => 'Oturum başarıyla sonlandı.',
'Invalid server or credentials.' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array('Çok fazla oturum açma denemesi yapıldı.', '%d Dakika sonra tekrar deneyiniz.'),
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Ana şifrenin süresi doldu. Kalıcı olması için <a href="https://www.adminer.org/en/extension/"%s>%s medodunu</a> kullanın.',
'Language' => 'Dil',
'Invalid CSRF token. Send the form again.' => 'Geçersiz (CSRF) jetonu. Formu tekrar yolla.',
'If you did not send this request from Adminer then close this page.' => 'Bu isteği Adminer\'den göndermediyseniz bu sayfayı kapatın.',
'No extension' => 'Uzantı yok',
'None of the supported PHP extensions (%s) are available.' => 'Desteklenen PHP eklentilerinden (%s) hiçbiri mevcut değil.',
'Connecting to privileged ports is not allowed.' => 'Ayrıcalıklı bağlantı noktalarına bağlanmaya izin verilmiyor.',
'Session support must be enabled.' => 'Oturum desteği etkin olmalıdır.',
'Session expired, please login again.' => 'Oturum süresi doldu, lütfen tekrar giriş yapın.',
'The action will be performed after successful login with the same credentials.' => 'İşlem, aynı kimlik bilgileriyle başarıyla oturum açıldıktan sonra gerçekleştirilecektir.',
'%s version: %s through PHP extension %s' => '%s sürüm: %s, %s PHP eklentisi ile',
'Refresh' => 'Tazele',
// text direction
'ltr' => 'ltr',
'Privileges' => 'İzinler',
'Create user' => 'Kullanıcı oluştur',
'User has been dropped.' => 'Kullanıcı silindi.',
'User has been altered.' => 'Kullanıcı değiştirildi.',
'User has been created.' => 'Kullanıcı oluşturuldu.',
'Hashed' => 'Harmanlandı',
'Column' => 'Kolon',
'Routine' => 'Yordam',
'Grant' => 'Yetki Ver',
'Revoke' => 'Yetki Kaldır',
'Process list' => 'İşlem listesi',
'%d process(es) have been killed.' => array('%d işlem sonlandırıldı.', '%d adet işlem sonlandırıldı.'),
'Kill' => 'Sonlandır',
'Variables' => 'Değişkenler',
'Status' => 'Durum',
'SQL command' => 'SQL komutu',
'%d query(s) executed OK.' => array('%d sorgu başarıyla çalıştırıldı.', '%d adet sorgu başarıyla çalıştırıldı.'),
'Query executed OK, %d row(s) affected.' => array('Sorgu başarıyla çalıştırıldı, %d adet kayıt etkilendi.', 'Sorgu başarıyla çalıştırıldı, %d adet kayıt etkilendi.'),
'No commands to execute.' => 'Çalıştırılacak komut yok.',
'Error in query' => 'Sorguda hata',
'Warnings' => 'Uyarılar',
'ATTACH queries are not supported.' => 'ATTACH sorguları desteklenmiyor.',
'Execute' => 'Çalıştır',
'Stop on error' => 'Hata oluşursa dur',
'Show only errors' => 'Sadece hataları göster.',
// sprintf() format for time of the command
'%.3f s' => '%.3f s',
'History' => 'Geçmiş',
'Clear' => 'Temizle',
'Edit all' => 'Tümünü düzenle',
'File upload' => 'Dosya gönder',
'From server' => 'Sunucudan',
'Webserver file %s' => '%s web sunucusu dosyası',
'Run file' => 'Dosyayı çalıştır',
'File does not exist.' => 'Dosya mevcut değil.',
'File uploads are disabled.' => 'Dosya gönderimi etkin değil.',
'Unable to upload a file.' => 'Dosya gönderilemiyor.',
'Maximum allowed file size is %sB.' => 'İzin verilen dosya boyutu sınırı %sB.',
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'Çok büyük POST verisi, veriyi azaltın ya da %s ayar yönergesini uygun olarak yapılandırın.',
'You can upload a big SQL file via FTP and import it from server.' => 'FTP yoluyla büyük bir SQL dosyası yükleyebilir ve sunucudan içe aktarabilirsiniz.',
'You are offline.' => 'Çevrimdışısınız.',
'Export' => 'Dışarı Aktar',
'Output' => ıktı',
'open' => 'aç',
'save' => 'kaydet',
'Saving' => 'Saydediliyor',
'Format' => 'Biçim',
'Data' => 'Veri',
'Database' => 'Veri Tabanı',
'database' => 'veri tabanı',
'DB' => 'DB',
'Use' => 'Kullan',
'Select database' => 'Veri tabanı seç',
'Invalid database.' => 'Geçersiz veri tabanı.',
'Database has been dropped.' => 'Veri tabanı silindi.',
'Databases have been dropped.' => 'Veritabanları silindi.',
'Database has been created.' => 'Veri tabanı oluşturuldu.',
'Database has been renamed.' => 'Veri tabanının ismi değiştirildi.',
'Database has been altered.' => 'Veri tabanı değiştirildi.',
'Alter database' => 'Veri tabanını değiştir',
'Create database' => 'Veri tabanı oluştur',
'Database schema' => 'Veri tabanı şeması',
// link to current database schema layout
'Permanent link' => 'Kalıcı bağlantı',
// thousands separator - must contain single byte
',' => ' ',
'0123456789' => '0123456789',
'Engine' => 'Motor',
'Collation' => 'Karşılaştırma',
'Data Length' => 'Veri Uzunluğu',
'Index Length' => 'İndex Uzunluğu',
'Data Free' => 'Boş Veri',
'Rows' => 'Kayıtlar',
'%d in total' => 'toplam %d',
'Analyze' => 'Çözümle',
'Optimize' => 'Optimize Et',
'Vacuum' => 'Vakumla',
'Check' => 'Denetle',
'Repair' => 'Tamir Et',
'Truncate' => 'Boşalt',
'Tables have been truncated.' => 'Tablolar boşaltıldı.',
'Move to other database' => 'Başka veri tabanına taşı',
'Move' => 'Taşı',
'Tables have been moved.' => 'Tablolar taşındı.',
'Copy' => 'Kopyala',
'Tables have been copied.' => 'Tablolar kopyalandı.',
'Routines' => 'Yordamlar',
'Routine has been called, %d row(s) affected.' => array('Yordam çağrıldı, %d adet kayıt etkilendi.', 'Yordam çağrıldı, %d kayıt etkilendi.'),
'Call' => 'Çağır',
'Parameter name' => 'Parametre adı',
'Create procedure' => 'Yöntem oluştur',
'Create function' => 'Fonksiyon oluştur',
'Routine has been dropped.' => 'Yordam silindi.',
'Routine has been altered.' => 'Yordam değiştirildi.',
'Routine has been created.' => 'Yordam oluşturuldu.',
'Alter function' => 'Fonksyionu değiştir',
'Alter procedure' => 'Yöntemi değiştir',
'Return type' => 'Geri dönüş türü',
'Events' => 'Olaylar',
'Event has been dropped.' => 'Olay silindi.',
'Event has been altered.' => 'Olay değiştirildi.',
'Event has been created.' => 'Olay oluşturuldu.',
'Alter event' => 'Olayı değiştir',
'Create event' => 'Olay oluştur',
'At given time' => 'Verilen zamanda',
'Every' => 'Her zaman',
'Schedule' => 'Takvimli',
'Start' => 'Başla',
'End' => 'Son',
'On completion preserve' => 'Tamamlama koruması',
'Tables' => 'Tablolar',
'Tables and views' => 'Tablolar ve görünümler',
'Table' => 'Tablo',
'No tables.' => 'Tablo yok.',
'Alter table' => 'Tabloyu değiştir',
'Create table' => 'Tablo oluştur',
'Table has been dropped.' => 'Tablo silindi.',
'Tables have been dropped.' => 'Tablolar silindi.',
'Tables have been optimized.' => 'Tablolar en uygun hale getirildi.',
'Table has been altered.' => 'Tablo değiştirildi.',
'Table has been created.' => 'Tablo oluşturuldu.',
'Table name' => 'Tablo adı',
'Show structure' => 'Yapıyı göster',
'engine' => 'motor',
'collation' => 'karşılaştırma',
'Column name' => 'Kolon adı',
'Type' => 'Tür',
'Length' => 'Uzunluk',
'Auto Increment' => 'Otomatik Artır',
'Options' => 'Seçenekler',
'Comment' => 'Yorum',
'Default value' => 'Varsayılan değer',
'Default values' => 'Varsayılan değerler',
'Drop' => 'Sil',
'Drop %s?' => 'Sil %s?',
'Are you sure?' => 'Emin misiniz?',
'Size' => 'Boyut',
'Compute' => 'Hesapla',
'Move up' => 'Yukarı taşı',
'Move down' => 'Aşağı taşı',
'Remove' => 'Sil',
'Maximum number of allowed fields exceeded. Please increase %s.' => 'İzin verilen en fazla alan sayısııldı. Lütfen %s değerlerini artırın.',
'Partition by' => 'Bununla bölümle',
'Partitions' => 'Bölümler',
'Partition name' => 'Bölüm adı',
'Values' => 'Değerler',
'View' => 'Görünüm',
'Materialized view' => 'Materialized Görünüm',
'View has been dropped.' => 'Görünüm silindi.',
'View has been altered.' => 'Görünüm değiştirildi.',
'View has been created.' => 'Görünüm oluşturuldu.',
'Alter view' => 'Görünümü değiştir',
'Create view' => 'Görünüm oluştur',
'Indexes' => 'İndeksler',
'Indexes have been altered.' => 'İndeksler değiştirildi.',
'Alter indexes' => 'İndeksleri değiştir',
'Add next' => 'Bundan sonra ekle',
'Index Type' => 'İndex Türü',
'Column (length)' => 'Kolon (uzunluğu)',
'Foreign keys' => 'Dış anahtarlar',
'Foreign key' => 'Dış anahtar',
'Foreign key has been dropped.' => 'Dış anahtar silindi.',
'Foreign key has been altered.' => 'Dış anahtar değiştirildi.',
'Foreign key has been created.' => 'Dış anahtar oluşturuldu.',
'Target table' => 'Hedef tablo',
'Change' => 'Değiştir',
'Source' => 'Kaynak',
'Target' => 'Hedef',
'Add column' => 'Kolon ekle',
'Alter' => 'Değiştir',
'Add foreign key' => 'Dış anahtar ekle',
'ON DELETE' => 'ON DELETE (Hedefteki Kayıt Silinirse)',
'ON UPDATE' => 'ON UPDATE (Hedefteki Kayıt Değiştirilirse)',
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'Kaynak ve hedef kolonlar aynı veri türünde olmalı, hedef kolonlarda dizin bulunmalı ve başvurulan veri mevcut olmalı.',
'Triggers' => 'Tetikler',
'Add trigger' => 'Tetik ekle',
'Trigger has been dropped.' => 'Tetik silindi.',
'Trigger has been altered.' => 'Tetik değiştirildi.',
'Trigger has been created.' => 'Tetik oluşturuldu.',
'Alter trigger' => 'Tetiği değiştir.',
'Create trigger' => 'Tetik oluştur',
'Time' => 'Zaman',
'Event' => 'Olay',
'Name' => 'Ad',
'select' => 'seç',
'Select' => 'Seç',
'Select data' => 'Veri seç',
'Functions' => 'Fonksiyonlar',
'Aggregation' => 'Kümeleme',
'Search' => 'Ara',
'anywhere' => 'hiçbir yerde',
'Search data in tables' => 'Tablolarda veri ara',
'Sort' => 'Sırala',
'descending' => 'Azalan',
'Limit' => 'Limit',
'Limit rows' => 'Satır Limiti',
'Text length' => 'Metin Boyutu',
'Action' => 'İşlem',
'Full table scan' => 'Tam tablo taraması',
'Unable to select the table' => 'Tablo seçilemedi',
'No rows.' => 'Kayıt yok.',
'%d / ' => '%d / ',
'%d row(s)' => array('%d kayıt', '%d adet kayıt'),
'Page' => 'Sayfa',
'last' => 'son',
'Load more data' => 'Daha fazla veri yükle',
'Loading' => 'Yükleniyor',
'Whole result' => 'Tüm sonuç',
'%d byte(s)' => array('%d bayt', '%d bayt'),
'Import' => 'İçeri Aktar',
'%d row(s) have been imported.' => array('%d kayıt içeri aktarıldı.', '%d adet kayıt içeri aktarıldı.'),
'File must be in UTF-8 encoding.' => 'Dosya UTF-8 kodlamasında olmalıdır.',
// in-place editing in select
'Modify' => 'Düzenle',
'Ctrl+click on a value to modify it.' => 'Bir değeri değiştirmek için üzerine Ctrl+tıklayın.',
'Use edit link to modify this value.' => 'Değeri değiştirmek için düzenleme bağlantısını kullanın.',
// %s can contain auto-increment value
'Item%s has been inserted.' => 'Kayıt%s eklendi.',
'Item has been deleted.' => 'Kayıt silindi.',
'Item has been updated.' => 'Kayıt güncellendi.',
'%d item(s) have been affected.' => array('%d kayıt etkilendi.', '%d adet kayıt etkilendi.'),
'New item' => 'Yeni kayıt',
'original' => 'orijinal',
// label for value '' in enum data type
'empty' => 'boş',
'edit' => 'düzenle',
'Edit' => 'Düzenle',
'Insert' => 'Ekle',
'Save' => 'Kaydet',
'Save and continue edit' => 'Kaydet ve düzenlemeye devam et',
'Save and insert next' => 'Kaydet ve sonrakini ekle',
'Selected' => 'Seçildi',
'Clone' => 'Kopyala',
'Delete' => 'Sil',
'You have no privileges to update this table.' => 'Bu tabloyu güncellemek için yetkiniz yok.',
'E-mail' => 'E-posta',
'From' => 'Gönderen',
'Subject' => 'Konu',
'Attachments' => 'Ekler',
'Send' => 'Gönder',
'%d e-mail(s) have been sent.' => array('%d e-posta gönderildi.', '%d adet e-posta gönderildi.'),
// data type descriptions
'Numbers' => 'Sayılar',
'Date and time' => 'Tarih ve zaman',
'Strings' => 'Dizge',
'Binary' => 'İkili',
'Lists' => 'Listeler',
'Network' => 'Ağ',
'Geometry' => 'Geometri',
'Relations' => 'İlişkiler',
'Editor' => 'Düzenleyici',
// date format in Editor: $1 yyyy, $2 yy, $3 mm, $4 m, $5 dd, $6 d
'$1-$3-$5' => '$6.$4.$1',
// hint for date format - use language equivalents for day, month and year shortcuts
'[yyyy]-mm-dd' => '[yyyy]-aa-gg',
// hint for time format - use language equivalents for hour, minute and second shortcuts
'HH:MM:SS' => 'SS:DD:ss',
'now' => 'şimdi',
'yes' => 'evet',
'no' => 'hayır',
// general SQLite error in create, drop or rename database
'File exists.' => 'Dosya zaten mevcut.',
'Please use one of the extensions %s.' => '%s uzantılarından birini kullanın.',
// PostgreSQL and MS SQL schema support
'Alter schema' => 'Şemayı değiştir',
'Create schema' => 'Şema oluştur',
'Schema has been dropped.' => 'Şema silindi.',
'Schema has been created.' => 'Şema oluşturuldu.',
'Schema has been altered.' => 'Şema değiştirildi.',
'Schema' => 'Şema',
'Invalid schema.' => 'Geçersiz şema.',
// PostgreSQL sequences support
'Sequences' => 'Diziler',
'Create sequence' => 'Dizi oluştur',
'Sequence has been dropped.' => 'Dizi silindi.',
'Sequence has been created.' => 'Dizi oluşturuldu.',
'Sequence has been altered.' => 'Dizi değiştirildi.',
'Alter sequence' => 'Diziyi değiştir',
// PostgreSQL user types support
'User types' => 'Kullanıcı türleri',
'Create type' => 'Tür oluştur',
'Type has been dropped.' => 'Tür silindi.',
'Type has been created.' => 'Tür oluşturuldu.',
'Alter type' => 'Türü değiştir',
'as a regular expression' => null,
'overwrite' => null,
'Copy to clipboard' => null,
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
'There is a space in the input password which might be the cause.' => null,
'Unknown error.' => null,
'Database does not support password.' => null,
'Disable %s or enable %s or %s extensions.' => null,
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'A newer version of AdminerEvo is available, download it now!' => null,
);

View file

@ -1,355 +0,0 @@
<?php
$translations = array(
// label for database system selection (MySQL, SQLite, ...)
'System' => 'Система Бази Даних',
'Server' => 'Сервер',
'Username' => 'Користувач',
'Password' => 'Пароль',
'Permanent login' => 'Пам\'ятати сесію',
'Login' => 'Увійти',
'Logout' => 'Вийти',
'Logged as: %s' => 'Ви увійшли як: %s',
'Logout successful.' => 'Ви вдало вийшли з системи.',
'Invalid server or credentials.' => null,
'Language' => 'Мова',
'Invalid CSRF token. Send the form again.' => 'Недійсний CSRF токен. Надішліть форму ще раз.',
'No extension' => 'Нема розширень',
'None of the supported PHP extensions (%s) are available.' => 'Жодне з PHP-розширень (%s), що підтримуються, не доступне.',
'Session support must be enabled.' => 'Сесії повинні бути дозволені.',
'Session expired, please login again.' => 'Сесія закінчилась, будь ласка, увійдіть в систему знову.',
'%s version: %s through PHP extension %s' => 'Версія %s: %s з PHP-розширенням %s',
'Refresh' => 'Оновити',
// text direction - 'ltr' or 'rtl'
'ltr' => 'ltr',
'Privileges' => 'Привілеї',
'Create user' => 'Створити користувача',
'User has been dropped.' => 'Користувача було видалено.',
'User has been altered.' => 'Користувача було змінено.',
'User has been created.' => 'Користувача було створено.',
'Hashed' => 'Хешовано',
'Column' => 'Колонка',
'Routine' => 'Процедура',
'Grant' => 'Дозволити',
'Revoke' => 'Заборонити',
'Process list' => 'Перелік процесів',
'%d process(es) have been killed.' => array('Було завершено %d процес.', 'Було завершено %d процеси.', 'Було завершёно %d процесів.'),
'Kill' => 'Завершити процес',
'Variables' => 'Змінні',
'Status' => 'Статус',
'SQL command' => 'SQL запит',
'%d query(s) executed OK.' => array('%d запит виконано успішно.', '%d запити виконано успішно.', '%d запитів виконано успішно.'),
'Query executed OK, %d row(s) affected.' => array('Запит виконано успішно, змінено %d рядок.', 'Запит виконано успішно, змінено %d рядки.', 'Запит виконано успішно, змінено %d рядків.'),
'No commands to execute.' => 'Нема запитів до виконання.',
'Error in query' => 'Помилка в запиті',
'Execute' => 'Виконати',
'Stop on error' => 'Зупинитись при помилці',
'Show only errors' => 'Показувати тільки помилки',
// sprintf() format for time of the command
'%.3f s' => '%.3f s',
'History' => 'Історія',
'Clear' => 'Очистити',
'Edit all' => 'Редагувати все',
'File upload' => 'Завантажити файл',
'From server' => 'З сервера',
'Webserver file %s' => 'Файл %s на вебсервері',
'Run file' => 'Запустити файл',
'File does not exist.' => 'Файл не існує.',
'File uploads are disabled.' => 'Завантаження файлів заборонене.',
'Unable to upload a file.' => 'Неможливо завантажити файл.',
'Maximum allowed file size is %sB.' => 'Максимально допустимий розмір файлу %sБ.',
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'Занадто великий об\'єм POST-даних. Зменшіть об\'єм або збільшіть параметр директиви %s конфигурації.',
'Export' => 'Експорт',
'Output' => 'Вихідні дані',
'open' => 'відкрити',
'save' => 'зберегти',
'Format' => 'Формат',
'Data' => 'Дані',
'Database' => 'База даних',
'database' => 'база даних',
'Use' => 'Обрати',
'Select database' => 'Обрати базу даних',
'Invalid database.' => 'Погана база даних.',
'Database has been dropped.' => 'Базу даних було видалено.',
'Databases have been dropped.' => 'Бази даних були видалені.',
'Database has been created.' => 'Базу даних було створено.',
'Database has been renamed.' => 'Базу даних було переіменовано.',
'Database has been altered.' => 'Базу даних було змінено.',
'Alter database' => 'Змінити базу даних',
'Create database' => 'Створити базу даних',
'Database schema' => 'Схема бази даних',
// link to current database schema layout
'Permanent link' => 'Постійне посилання',
// thousands separator - must contain single byte
',' => ' ',
'0123456789' => '0123456789',
'Engine' => 'Рушій',
'Collation' => 'Співставлення',
'Data Length' => 'Об\'єм даних',
'Index Length' => 'Об\'єм індексів',
'Data Free' => 'Вільне місце',
'Rows' => 'Рядків',
'%d in total' => '%d всього',
'Analyze' => 'Аналізувати',
'Optimize' => 'Оптимізувати',
'Check' => 'Перевірити',
'Repair' => 'Виправити',
'Truncate' => 'Очистити',
'Tables have been truncated.' => 'Таблиці було очищено.',
'Move to other database' => 'Перенести до іншої бази даних',
'Move' => 'Перенести',
'Tables have been moved.' => 'Таблиці було перенесено.',
'Copy' => 'копіювати',
'Tables have been copied.' => 'Таблиці було зкопійовано.',
'Routines' => 'Збережені процедури',
'Routine has been called, %d row(s) affected.' => array('Була викликана процедура, %d запис було змінено.', 'Була викликана процедура, %d записи було змінено.', 'Була викликана процедура, %d записів було змінено.'),
'Call' => 'Викликати',
'Parameter name' => 'Назва параметра',
'Create procedure' => 'Створити процедуру',
'Create function' => 'Створити функцію',
'Routine has been dropped.' => 'Процедуру було видалено.',
'Routine has been altered.' => 'Процедуру було змінено.',
'Routine has been created.' => 'Процедуру було створено.',
'Alter function' => 'Змінити функцію',
'Alter procedure' => 'Змінити процедуру',
'Return type' => 'Тип, що повернеться',
'Events' => 'Події',
'Event has been dropped.' => 'Подію було видалено.',
'Event has been altered.' => 'Подію було змінено.',
'Event has been created.' => 'Подію було створено.',
'Alter event' => 'Змінити подію',
'Create event' => 'Створити подію',
'At given time' => 'В даний час',
'Every' => 'Кожного',
'Schedule' => 'Розклад',
'Start' => 'Початок',
'End' => 'Кінець',
'On completion preserve' => 'Після завершення зберегти',
'Tables' => 'Таблиці',
'Tables and views' => 'Таблиці і вигляди',
'Table' => 'Таблиця',
'No tables.' => 'Нема таблиць.',
'Alter table' => 'Змінити таблицю',
'Create table' => 'Створити таблицю',
'Table has been dropped.' => 'Таблицю було видалено.',
'Tables have been dropped.' => 'Таблиці були видалені.',
'Tables have been optimized.' => 'Таблиці були оптимізовані.',
'Table has been altered.' => 'Таблица була змінена.',
'Table has been created.' => 'Таблиця була створена.',
'Table name' => 'Назва таблиці',
'Show structure' => 'Показати структуру',
'engine' => 'рушій',
'collation' => 'співставлення',
'Column name' => 'Назва стовпця',
'Type' => 'Тип',
'Length' => 'Довжина',
'Auto Increment' => 'Автоматичне збільшення',
'Options' => 'Опції',
'Comment' => 'Коментарі',
'Default values' => 'Значення за замовчуванням',
'Drop' => 'Видалити',
'Are you sure?' => 'Ви впевнені?',
'Move up' => 'Пересунути вгору',
'Move down' => 'Пересунути вниз',
'Remove' => 'Видалити',
'Maximum number of allowed fields exceeded. Please increase %s.' => 'Досягнута максимальна кількість доступних полів. Будь ласка, збільшіть %s.',
'Partition by' => 'Розділити по',
'Partitions' => 'Розділи',
'Partition name' => 'Назва розділу',
'Values' => 'Значення',
'View' => 'Вигляд',
'View has been dropped.' => 'Вигляд було видалено.',
'View has been altered.' => 'Вигляд було змінено.',
'View has been created.' => 'Вигляд було створено.',
'Alter view' => 'Змінити вигляд',
'Create view' => 'Створити вигляд',
'Indexes' => 'Індекси',
'Indexes have been altered.' => 'Індексування було змінено.',
'Alter indexes' => 'Змінити індексування',
'Add next' => 'Додати ще',
'Index Type' => 'Тип індексу',
'Column (length)' => 'Стовпець (довжина)',
'Foreign keys' => 'Зовнішні ключі',
'Foreign key' => 'Зовнішній ключ',
'Foreign key has been dropped.' => 'Зовнішній ключ було видалено.',
'Foreign key has been altered.' => 'Зовнішній ключ було змінено.',
'Foreign key has been created.' => 'Зовнішній ключ було створено.',
'Target table' => 'Цільова таблиця',
'Change' => 'Змінити',
'Source' => 'Джерело',
'Target' => 'Ціль',
'Add column' => 'Додати стовпець',
'Alter' => 'Змінити',
'Add foreign key' => 'Додати зовнішній ключ',
'ON DELETE' => 'ПРИ ВИДАЛЕННІ',
'ON UPDATE' => 'ПРИ ЗМІНІ',
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'Стовпці повинні мати той самий тип даних, цільові стовпці повинні бути проіндексовані і дані, на які посилаються повинні існувати.',
'Triggers' => 'Тригери',
'Add trigger' => 'Додати тригер',
'Trigger has been dropped.' => 'Тригер було видалено.',
'Trigger has been altered.' => 'Тригер було змінено.',
'Trigger has been created.' => 'Тригер було створено.',
'Alter trigger' => 'Змінити тригер',
'Create trigger' => 'Створити тригер',
'Time' => 'Час',
'Event' => 'Подія',
'Name' => 'Назва',
'select' => 'вибрати',
'Select' => 'Вибрати',
'Select data' => 'Вибрати дані',
'Functions' => 'Функції',
'Aggregation' => 'Агрегація',
'Search' => 'Пошук',
'anywhere' => 'будь-де',
'Search data in tables' => 'Шукати дані в таблицях',
'Sort' => 'Сортувати',
'descending' => 'по спаданню',
'Limit' => 'Обмеження',
'Text length' => 'Довжина тексту',
'Action' => 'Дія',
'Unable to select the table' => 'Неможливо вибрати таблицю',
'No rows.' => 'Нема рядків.',
'%d row(s)' => array('%d рядок', '%d рядки', '%d рядків'),
'Page' => 'Сторінка',
'last' => 'остання',
'Whole result' => 'Весь результат',
'%d byte(s)' => array('%d байт', '%d байта', '%d байтів'),
'Import' => 'Імпортувати',
'%d row(s) have been imported.' => array('%d рядок було імпортовано.', '%d рядки було імпортовано.', '%d рядків було імпортовано.'),
// in-place editing in select
'Ctrl+click on a value to modify it.' => 'Ctrl+клікніть на значенні щоб змінити його.',
'Use edit link to modify this value.' => 'Використовуйте посилання щоб змінити це значення.',
// %s can contain auto-increment value
'Item%s has been inserted.' => 'Запис%s було вставлено.',
'Item has been deleted.' => 'Запис було видалено.',
'Item has been updated.' => 'Запис було змінено.',
'%d item(s) have been affected.' => array('Було змінено %d запис.', 'Було змінено %d записи.', 'Було змінено %d записів.'),
'New item' => 'Новий запис',
'original' => 'початковий',
// label for value '' in enum data type
'empty' => 'порожньо',
'edit' => 'редагувати',
'Edit' => 'Редагувати',
'Insert' => 'Вставити',
'Save' => 'Зберегти',
'Save and continue edit' => 'Зберегти і продовжити редагування',
'Save and insert next' => 'Зберегти і вставити знову',
'Clone' => 'Клонувати',
'Delete' => 'Видалити',
'E-mail' => 'E-mail',
'From' => 'Від',
'Subject' => 'Заголовок',
'Attachments' => 'Додатки',
'Send' => 'Надіслати',
'%d e-mail(s) have been sent.' => array('Було надіслано %d повідомлення.', 'Було надіслано %d повідомлення.', 'Було надіслано %d повідомлень.'),
// data type descriptions
'Numbers' => 'Числа',
'Date and time' => 'Дата і час',
'Strings' => 'Рядки',
'Binary' => 'Двійкові',
'Lists' => 'Списки',
'Network' => 'Мережа',
'Geometry' => 'Геометрія',
'Relations' => 'Зв\'язки',
'Editor' => 'Редактор',
// date format in Editor: $1 yyyy, $2 yy, $3 mm, $4 m, $5 dd, $6 d
'$1-$3-$5' => '$5.$3.$1',
// hint for date format - use language equivalents for day, month and year shortcuts
'[yyyy]-mm-dd' => 'дд.мм.[рррр]',
// hint for time format - use language equivalents for hour, minute and second shortcuts
'HH:MM:SS' => 'ГГ:ХХ:СС',
'now' => 'зараз',
'yes' => 'так',
'no' => 'ні',
// general SQLite error in create, drop or rename database
'File exists.' => 'Файл існує.',
'Please use one of the extensions %s.' => 'Будь ласка, використовуйте одне з розширень %s.',
// PostgreSQL and MS SQL schema support
'Alter schema' => 'Змінити схему',
'Create schema' => 'Створити схему',
'Schema has been dropped.' => 'Схему було видалено.',
'Schema has been created.' => 'Схему було створено.',
'Schema has been altered.' => 'Схему було змінено.',
'Schema' => 'Схема',
'Invalid schema.' => 'Невірна схема.',
// PostgreSQL sequences support
'Sequences' => 'Послідовності',
'Create sequence' => 'Створити послідовність',
'Sequence has been dropped.' => 'Послідовність було видалено.',
'Sequence has been created.' => 'Послідовність було створено.',
'Sequence has been altered.' => 'Послідовність було змінено.',
'Alter sequence' => 'Змінити послідовність',
// PostgreSQL user types support
'User types' => 'Типи користувачів',
'Create type' => 'Створити тип',
'Type has been dropped.' => 'Тип було видалено.',
'Type has been created.' => 'Тип було створено.',
'Alter type' => 'Змінити тип',
'Drop %s?' => 'Вилучити %s?',
'Materialized view' => 'Матеріалізований вигляд',
'Selected' => 'Вибрані',
'overwrite' => 'перезаписати',
'DB' => 'DB',
'File must be in UTF-8 encoding.' => 'Файл повинен бути в кодуванні UTF-8.',
'Modify' => 'Змінити',
'Load more data' => 'Завантажити ще дані',
'Loading' => 'Завантаження',
'ATTACH queries are not supported.' => 'ATTACH-запити не підтримуються.',
'Warnings' => 'Попередження',
'Limit rows' => 'Обмеження рядків',
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Adminer не підтримує доступ до бази даних без пароля, <a href="https://www.adminer.org/en/password/"%s>більше інформації</a>.',
'Default value' => 'Значення за замовчуванням',
'Full table scan' => 'Повне сканування таблиці',
'Too many unsuccessful logins, try again in %d minute(s).' => array('Занадто багато невдалих спроб входу. Спробуйте знову через %d хвилину.', 'Занадто багато невдалих спроб входу. Спробуйте знову через %d хвилини.', 'Занадто багато невдалих спроб входу. Спробуйте знову через %d хвилин.'),
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Термін дії майстер пароля минув. <a href="https://www.adminer.org/en/extension/"%s>Реалізуйте</a> метод %s, щоб зробити його постійним.',
'The action will be performed after successful login with the same credentials.' => 'Дія буде виконуватися після успішного входу в систему з тими ж обліковими даними.',
'Connecting to privileged ports is not allowed.' => 'Підключення до привілейованих портів заборонено.',
'There is a space in the input password which might be the cause.' => 'У вхідному паролі є пробіл, який може бути причиною.',
'If you did not send this request from Adminer then close this page.' => 'Якщо ви не посилали цей запит з Adminer, закрийте цю сторінку.',
'You can upload a big SQL file via FTP and import it from server.' => 'Ви можете завантажити великий файл SQL через FTP та імпортувати його з сервера.',
'Size' => 'Розмір',
'Compute' => 'Обчислити',
'You are offline.' => 'Ви офлайн.',
'You have no privileges to update this table.' => 'Ви не маєте привілеїв для оновлення цієї таблиці.',
'Saving' => 'Збереження',
'Unknown error.' => 'Невідома помилка.',
'Database does not support password.' => 'База даних не підтримує пароль.',
'as a regular expression' => null,
'Vacuum' => null,
'Copy to clipboard' => null,
'%d / ' => array(),
'Disable %s or enable %s or %s extensions.' => null,
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'A newer version of AdminerEvo is available, download it now!' => null,
);

View file

@ -1,354 +0,0 @@
<?php
$translations = array(
// label for database system selection (MySQL, SQLite, ...)
'System' => 'Hệ thống',
'Server' => 'Máy chủ',
'Username' => 'Tên người dùng',
'Password' => 'Mật khẩu',
'Permanent login' => 'Giữ đăng nhập một thời gian',
'Login' => 'Đăng nhập',
'Logout' => 'Thoát',
'Logged as: %s' => 'Vào dưới tên: %s',
'Logout successful.' => 'Đã thoát xong.',
'Invalid server or credentials.' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => 'Bạn gõ sai tài khoản quá nhiều lần, hãy thử lại sau %d phút nữa.',
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Mật khẩu đã hết hạn. <a href="https://www.adminer.org/en/extension/"%s>Thử cách làm</a> để giữ cố định.',
'Language' => 'Ngôn ngữ',
'Invalid CSRF token. Send the form again.' => 'Mã kiểm tra CSRF sai, hãy nhập lại biểu mẫu.',
'No extension' => 'Không có phần mở rộng',
'None of the supported PHP extensions (%s) are available.' => 'Bản cài đặt PHP thiếu hỗ trợ cho %s.',
'Session support must be enabled.' => 'Cần phải bật session.',
'Session expired, please login again.' => 'Phiên làm việc đã hết, hãy đăng nhập lại.',
'%s version: %s through PHP extension %s' => 'Phiên bản %s: %s (PHP extension: %s)',
'Refresh' => 'Làm mới',
// text direction - 'ltr' or 'rtl'
'ltr' => 'ltr',
'Privileges' => 'Quyền truy cập',
'Create user' => 'Tạo người dùng',
'User has been dropped.' => 'Đã xoá người dùng.',
'User has been altered.' => 'Đã sửa người dùng.',
'User has been created.' => 'Đã tạo người dùng.',
'Hashed' => 'Mã hoá',
'Column' => 'Cột',
'Routine' => 'Hàm tích hợp',
'Grant' => 'Cấp quyền',
'Revoke' => 'Tước quyền',
'Process list' => 'Danh sách tiến trình',
'%d process(es) have been killed.' => '%d tiến trình đã dừng.',
'Kill' => 'Dừng',
'Variables' => 'Biến',
'Status' => 'Trạng thái',
'SQL command' => 'Câu lệnh SQL',
'%d query(s) executed OK.' => '%d câu lệnh đã chạy thành công.',
'Query executed OK, %d row(s) affected.' => 'Đã thực hiện xong, ảnh hưởng đến %d dòng.',
'No commands to execute.' => 'Chẳng có gì để thực hiện!.',
'Error in query' => 'Có lỗi trong câu lệnh',
'Execute' => 'Thực hiện',
'Stop on error' => 'Dừng khi có lỗi',
'Show only errors' => 'Chỉ hiện lỗi',
// sprintf() format for time of the command
'%.3f s' => '%.3f s',
'History' => 'Lịch sử',
'Clear' => 'Xoá',
'Edit all' => 'Sửa tất cả',
'File upload' => 'Tải tệp lên',
'From server' => 'Dùng tệp trên máy chủ',
'Webserver file %s' => 'Tệp trên máy chủ',
'Run file' => 'Chạy tệp',
'File does not exist.' => 'Tệp không tồn tại.',
'File uploads are disabled.' => 'Chức năng tải tệp lên đã bị cấm.',
'Unable to upload a file.' => 'Không thể tải tệp lên.',
'Maximum allowed file size is %sB.' => 'Kích thước tệp tối đa là %sB.',
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'Dữ liệu tải lên/POST quá lớn. Hãy giảm kích thước tệp hoặc tăng cấu hình (hiện tại %s).',
'You can upload a big SQL file via FTP and import it from server.' => 'Bạn có thể tải tệp lên dùng FTP và nhập vào cơ sở dữ liệu.',
'Export' => 'Xuất',
'Output' => 'Kết quả',
'open' => 'xem',
'save' => 'lưu',
'Format' => 'Định dạng',
'Data' => 'Dữ liệu',
'Database' => 'Cơ sở dữ liệu',
'database' => 'cơ sở dữ liệu',
'Use' => 'Sử dụng',
'Select database' => 'Chọn CSDL',
'Invalid database.' => 'CSDL sai.',
'Database has been dropped.' => 'CSDL đã bị xoá.',
'Databases have been dropped.' => 'Các CSDL đã bị xoá.',
'Database has been created.' => 'Đã tạo CSDL.',
'Database has been renamed.' => 'Đã đổi tên CSDL.',
'Database has been altered.' => 'Đã thay đổi CSDL.',
'Alter database' => 'Thay đổi CSDL',
'Create database' => 'Tạo CSDL',
'Database schema' => 'Cấu trúc CSDL',
// link to current database schema layout
'Permanent link' => 'Liên kết cố định',
// thousands separator - must contain single byte
',' => ',',
'0123456789' => '0123456789',
'Engine' => 'Cơ chế lưu trữ',
'Collation' => 'Bộ mã',
'Data Length' => 'Kích thước dữ liệu',
'Index Length' => 'Kích thước chỉ mục',
'Data Free' => 'Dữ liệu trống',
'Rows' => 'Số dòng',
'%d in total' => '%s',
'Analyze' => 'Phân tích',
'Optimize' => 'Tối ưu',
'Vacuum' => 'Dọn dẹp',
'Check' => 'Kiểm tra',
'Repair' => 'Sửa chữa',
'Truncate' => 'Làm rỗng',
'Tables have been truncated.' => 'Bảng đã bị làm rỗng.',
'Move to other database' => 'Chuyển tới cơ sở dữ liệu khác',
'Move' => 'Chuyển đi',
'Tables have been moved.' => 'Bảng.',
'Copy' => 'Sao chép',
'Tables have been copied.' => 'Bảng đã được sao chép.',
'Routines' => 'Routines',
'Routine has been called, %d row(s) affected.' => 'Đã chạy routine, thay đổi %d dòng.',
'Call' => 'Gọi',
'Parameter name' => 'Tham số',
'Create procedure' => 'Tạo lệnh',
'Create function' => 'Tạo hàm',
'Routine has been dropped.' => 'Đã xoá routine.',
'Routine has been altered.' => 'Đã thay đổi routine.',
'Routine has been created.' => 'Đã tạo routine.',
'Alter function' => 'Thay đổi hàm',
'Alter procedure' => 'Thay đổi thủ tục',
'Return type' => 'Giá trị trả về',
'Events' => 'Sự kiện',
'Event has been dropped.' => 'Đã xoá sự kiện.',
'Event has been altered.' => 'Đã thay đổi sự kiện.',
'Event has been created.' => 'Đã tạo sự kiện.',
'Alter event' => 'Sửa sự kiện',
'Create event' => 'Tạo sự kiện',
'At given time' => 'Vào thời gian xác định',
'Every' => 'Mỗi',
'Schedule' => 'Đặt lịch',
'Start' => 'Bắt đầu',
'End' => 'Kết thúc',
'On completion preserve' => 'Khi kết thúc, duy trì',
'Tables' => 'Các bảng',
'Tables and views' => 'Bảng và khung nhìn',
'Table' => 'Bảng',
'No tables.' => 'Không có bảng nào.',
'Alter table' => 'Sửa bảng',
'Create table' => 'Tạo bảng',
'Table has been dropped.' => 'Bảng đã bị xoá.',
'Tables have been dropped.' => 'Các bảng đã bị xoá.',
'Tables have been optimized.' => 'Bảng đã được tối ưu.',
'Table has been altered.' => 'Bảng đã thay đổi.',
'Table has been created.' => 'Bảng đã được tạo.',
'Table name' => 'Tên bảng',
'Show structure' => 'Hiện cấu trúc',
'engine' => 'cơ chế lưu trữ',
'collation' => 'bảng mã',
'Column name' => 'Tên cột',
'Type' => 'Loại',
'Length' => 'Độ dài',
'Auto Increment' => 'Tăng tự động',
'Options' => 'Tuỳ chọn',
'Comment' => 'Chú thích',
'Default values' => 'Giá trị mặc định',
'Drop' => 'Xoá',
'Are you sure?' => 'Bạn có chắc',
'Size' => 'Kích thước',
'Compute' => 'Tính',
'Move up' => 'Chuyển lên trên',
'Move down' => 'Chuyển xuống dưới',
'Remove' => 'Xoá',
'Maximum number of allowed fields exceeded. Please increase %s.' => 'Thiết lập %s cần tăng thêm. (Đã vượt giới hạnố trường tối đa cho phép trong một biểu mẫu).',
'Partition by' => 'Phân chia bằng',
'Partitions' => 'Phân hoạch',
'Partition name' => 'Tên phân hoạch',
'Values' => 'Giá trị',
'View' => 'Khung nhìn',
'View has been dropped.' => 'Khung nhìn đã bị xoá.',
'View has been altered.' => 'Khung nhìn đã được sửa.',
'View has been created.' => 'Khung nhìn đã được tạo.',
'Alter view' => 'Sửa khung nhìn',
'Create view' => 'Tạo khung nhìn',
'Indexes' => 'Chỉ mục',
'Indexes have been altered.' => 'Chỉ mục đã được sửa.',
'Alter indexes' => 'Sửa chỉ mục',
'Add next' => 'Thêm tiếp',
'Index Type' => 'Loại chỉ mục',
'Column (length)' => 'Cột (độ dài)',
'Foreign keys' => 'Các khoá ngoại',
'Foreign key' => 'Khoá ngoại',
'Foreign key has been dropped.' => 'Khoá ngoại đã bị xoá.',
'Foreign key has been altered.' => 'Khoá ngoại đã được sửa.',
'Foreign key has been created.' => 'Khoá ngoại đã được tạo.',
'Target table' => 'Bảng đích',
'Change' => 'Thay đổi',
'Source' => 'Nguồn',
'Target' => 'Đích',
'Add column' => 'Thêm cột',
'Alter' => 'Sửa',
'Add foreign key' => 'Thêm khoá ngoại',
'ON DELETE' => 'Khi xoá',
'ON UPDATE' => 'Khi cập nhật',
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'Cột gốc và cột đích phải cùng kiểu, phải đặt chỉ mục trong cột đích và dữ liệu tham chiếu phải tồn tại.',
'Triggers' => 'Phản xạ',
'Add trigger' => 'Thêm phản xạ',
'Trigger has been dropped.' => 'Đã xoá phản xạ.',
'Trigger has been altered.' => 'Đã sửa phản xạ.',
'Trigger has been created.' => 'Đã tạo phản xạ.',
'Alter trigger' => 'Sửa phản xạ',
'Create trigger' => 'Tạo phản xạ',
'Time' => 'Thời gian',
'Event' => 'Sự kiện',
'Name' => 'Tên',
'select' => 'xem',
'Select' => 'Xem',
'Select data' => 'Xem dữ liệu',
'Functions' => 'Các chức năng',
'Aggregation' => 'Tổng hợp',
'Search' => 'Tìm kiếm',
'anywhere' => 'bất cứ đâu',
'Search data in tables' => 'Tìm kiếm dữ liệu trong các bảng',
'Sort' => 'Sắp xếp',
'descending' => 'giảm dần',
'Limit' => 'Giới hạn',
'Text length' => 'Chiều dài văn bản',
'Action' => 'Hành động',
'Full table scan' => 'Quét toàn bộ bảng',
'Unable to select the table' => 'Không thể xem dữ liệu',
'No rows.' => 'Không có dòng dữ liệu nào.',
'%d row(s)' => '%s dòng',
'Page' => 'trang',
'last' => 'cuối',
'Load more data' => 'Xem thêm dữ liệu',
'Loading' => 'Đang nạp',
'Whole result' => 'Toàn bộ kết quả',
'%d byte(s)' => '%d byte(s)',
'Import' => 'Nhập khẩu',
'%d row(s) have been imported.' => 'Đã nhập % dòng dữ liệu.',
'File must be in UTF-8 encoding.' => 'Tệp phải mã hoá bằng chuẩn UTF-8.',
// in-place editing in select
'Modify' => 'Sửa',
'Ctrl+click on a value to modify it.' => 'Nhấn Ctrl và bấm vào giá trị để sửa.',
'Use edit link to modify this value.' => 'Dùng nút sửa để thay đổi giá trị này.',
// %s can contain auto-increment value
'Item%s has been inserted.' => 'Đã thêm%s.',
'Item has been deleted.' => 'Đã xoá.',
'Item has been updated.' => 'Đã cập nhật.',
'%d item(s) have been affected.' => '%d phần đã thay đổi.',
'New item' => 'Thêm',
'original' => 'bản gốc',
// label for value '' in enum data type
'empty' => 'trống',
'edit' => 'sửa',
'Edit' => 'Sửa',
'Insert' => 'Thêm',
'Save' => 'Lưu',
'Save and continue edit' => 'Lưu và tiếp tục sửa',
'Save and insert next' => 'Lưu và thêm tiếp',
'Selected' => 'Chọn',
'Clone' => 'Sao chép',
'Delete' => 'Xoá',
'You have no privileges to update this table.' => 'Bạn không có quyền sửa bảng này.',
'E-mail' => 'Địa chỉ email',
'From' => 'Người gửi',
'Subject' => 'Chủ đề',
'Attachments' => 'Đính kèm',
'Send' => 'Gửi',
'%d e-mail(s) have been sent.' => '%d thư đã gửi.',
// data type descriptions
'Numbers' => 'Số',
'Date and time' => 'Ngày giờ',
'Strings' => 'Chuỗi',
'Binary' => 'Mã máy',
'Lists' => 'Danh sách',
'Network' => 'Mạng',
'Geometry' => 'Toạ độ',
'Relations' => 'Quan hệ',
'Editor' => 'Biên tập',
// date format in Editor: $1 yyyy, $2 yy, $3 mm, $4 m, $5 dd, $6 d
'$1-$3-$5' => '$1-$3-$5',
// hint for date format - use language equivalents for day, month and year shortcuts
'[yyyy]-mm-dd' => '[yyyy]-mm-dd',
// hint for time format - use language equivalents for hour, minute and second shortcuts
'HH:MM:SS' => 'HH:MM:SS',
'now' => 'hiện tại',
'yes' => 'có',
'no' => 'không',
// general SQLite error in create, drop or rename database
'File exists.' => 'Tệp đã có rồi.',
'Please use one of the extensions %s.' => 'Cần phải dùng một trong các phần mở rộng sau: %s.',
// PostgreSQL and MS SQL schema support
'Alter schema' => 'Thay đổi schema',
'Create schema' => 'Tạo schema',
'Schema has been dropped.' => 'Đã xoá schema.',
'Schema has been created.' => 'Đã tạo schema.',
'Schema has been altered.' => 'Đã thay đổi schema.',
'Schema' => 'Schema',
'Invalid schema.' => 'Schema không hợp lệ.',
// PostgreSQL sequences support
'Sequences' => 'Dãy số',
'Create sequence' => 'Tạo dãy số',
'Sequence has been dropped.' => 'Dãy số đã bị xoá.',
'Sequence has been created.' => 'Đã tạo dãy số.',
'Sequence has been altered.' => 'Đã sửa dãy số.',
'Alter sequence' => 'Thay đổi dãy số',
// PostgreSQL user types support
'User types' => 'Kiểu tự định nghĩa',
'Create type' => 'Tạo kiểu',
'Type has been dropped.' => 'Đã xoá kiểu.',
'Type has been created.' => 'Đã tạo kiểu.',
'Alter type' => 'Sửa kiểu dữ liệu',
'Drop %s?' => null,
'as a regular expression' => null,
'Materialized view' => null,
'overwrite' => null,
'DB' => null,
'Copy to clipboard' => null,
'ATTACH queries are not supported.' => null,
'Warnings' => null,
'%d / ' => array(),
'Limit rows' => null,
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
'Default value' => null,
'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null,
'There is a space in the input password which might be the cause.' => null,
'If you did not send this request from Adminer then close this page.' => null,
'You are offline.' => null,
'Saving' => null,
'Unknown error.' => null,
'Database does not support password.' => null,
'Disable %s or enable %s or %s extensions.' => null,
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'A newer version of AdminerEvo is available, download it now!' => null,
);

View file

@ -1,355 +0,0 @@
<?php
$translations = array(
// label for database system selection (MySQL, SQLite, ...)
'System' => 'Xx',
'Server' => 'Xx',
'Username' => 'Xx',
'Password' => 'Xx',
'Permanent login' => 'Xx',
'Login' => 'Xx',
'Logout' => 'Xx',
'Logged as: %s' => 'Xx: %s',
'Logout successful.' => 'Xx.',
'Invalid server or credentials.' => 'Xx.',
'There is a space in the input password which might be the cause.' => 'Xx.',
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Xx, <a href="https://www.adminer.org/en/password/"%s>xx</a>.',
'Database does not support password.' => 'Xx.',
'Too many unsuccessful logins, try again in %d minute(s).' => array('Xx %d.', 'Xx %d.'),
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => '<a href="https://www.adminer.org/en/extension/"%s>Xx</a> %s xx.',
'Language' => 'Xx',
'Invalid CSRF token. Send the form again.' => 'Xx.',
'If you did not send this request from Adminer then close this page.' => 'Xx.',
'No extension' => 'Xx',
'None of the supported PHP extensions (%s) are available.' => 'Xx (%s).',
'Connecting to privileged ports is not allowed.' => 'Xx.',
'Disable %s or enable %s or %s extensions.' => 'Xx %s xx %s xx %s xx.',
'Session support must be enabled.' => 'Xx.',
'Session expired, please login again.' => 'Xx.',
'The action will be performed after successful login with the same credentials.' => 'Xx.',
'%s version: %s through PHP extension %s' => '%s xx: %s xx %s',
'Refresh' => 'Xx',
// text direction - 'ltr' or 'rtl'
'ltr' => 'xx',
'Privileges' => 'Xx',
'Create user' => 'Xx',
'User has been dropped.' => 'Xx.',
'User has been altered.' => 'Xx.',
'User has been created.' => 'Xx.',
'Hashed' => 'Xx',
'Column' => 'Xx',
'Routine' => 'Xx',
'Grant' => 'Xx',
'Revoke' => 'Xx',
'Process list' => 'Xx',
'%d process(es) have been killed.' => array('%d xx.', '%d xx.'),
'Kill' => 'Xx',
'Variables' => 'Xx',
'Status' => 'Xx',
'SQL command' => 'Xx',
'%d query(s) executed OK.' => array('%d xx.', '%d xx.'),
'Query executed OK, %d row(s) affected.' => array('Xx, %d.', 'Xx, %d.'),
'No commands to execute.' => 'Xx.',
'Error in query' => 'Xx',
'Unknown error.' => 'Xx.',
'Warnings' => 'Xx',
'ATTACH queries are not supported.' => 'Xx.',
'Execute' => 'Xx',
'Stop on error' => 'Xx',
'Show only errors' => 'Xx',
// sprintf() format for time of the command
'%.3f s' => '%.3f xx',
'History' => 'Xx',
'Clear' => 'Xx',
'Edit all' => 'Xx',
'File upload' => 'Xx',
'From server' => 'Xx',
'Webserver file %s' => 'Xx %s',
'Run file' => 'Xx',
'File does not exist.' => 'Xx.',
'File uploads are disabled.' => 'Xx.',
'Unable to upload a file.' => 'Xx.',
'Maximum allowed file size is %sB.' => 'Xx %sB.',
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'Xx %s.',
'You can upload a big SQL file via FTP and import it from server.' => 'Xx.',
'You are offline.' => 'Xx.',
'Export' => 'Xx',
'Output' => 'Xx',
'open' => 'xx',
'save' => 'xx',
'Saving' => 'Xx',
'Format' => 'Xx',
'Data' => 'Xx',
'Database' => 'Xx',
'database' => 'xx',
'DB' => 'XX',
'Use' => 'Xx',
'Select database' => 'Xx',
'Invalid database.' => 'Xx.',
'Database has been dropped.' => 'Xx.',
'Databases have been dropped.' => 'Xx.',
'Database has been created.' => 'Xx.',
'Database has been renamed.' => 'Xx.',
'Database has been altered.' => 'Xx.',
'Alter database' => 'Xx',
'Create database' => 'Xx',
'Database schema' => 'Xx',
// link to current database schema layout
'Permanent link' => 'Xx',
// thousands separator - must contain single byte
',' => 'x',
'0123456789' => 'xxxxxxxxxx',
'Engine' => 'Xx',
'Collation' => 'Xx',
'Data Length' => 'Xx',
'Index Length' => 'Xx',
'Data Free' => 'Xx',
'Rows' => 'Xx',
'%d in total' => '%d xx',
'Analyze' => 'Xx',
'Optimize' => 'Xx',
'Vacuum' => 'Xx',
'Check' => 'Xx',
'Repair' => 'Xx',
'Truncate' => 'Xx',
'Tables have been truncated.' => 'Xx.',
'Move to other database' => 'Xx',
'Move' => 'Xx',
'Tables have been moved.' => 'Xx.',
'Copy' => 'Xx',
'Tables have been copied.' => 'Xx.',
'overwrite' => 'xx',
'Routines' => 'Xx',
'Routine has been called, %d row(s) affected.' => array('Xx, %d.', 'Xx, %d.'),
'Call' => 'Xx',
'Parameter name' => 'Xx',
'Create procedure' => 'Xx',
'Create function' => 'Xx',
'Routine has been dropped.' => 'Xx.',
'Routine has been altered.' => 'Xx.',
'Routine has been created.' => 'Xx.',
'Alter function' => 'Xx',
'Alter procedure' => 'Xx',
'Return type' => 'Xx',
'Events' => 'Xx',
'Event has been dropped.' => 'Xx.',
'Event has been altered.' => 'Xx.',
'Event has been created.' => 'Xx.',
'Alter event' => 'Xx',
'Create event' => 'Xx',
'At given time' => 'Xx',
'Every' => 'Xx',
'Schedule' => 'Xx',
'Start' => 'Xx',
'End' => 'Xx',
'On completion preserve' => 'Xx',
'Tables' => 'Xx',
'Tables and views' => 'Xx',
'Table' => 'Xx',
'No tables.' => 'Xx.',
'Alter table' => 'Xx',
'Create table' => 'Xx',
'Table has been dropped.' => 'Xx.',
'Tables have been dropped.' => 'Xx.',
'Tables have been optimized.' => 'Xx.',
'Table has been altered.' => 'Xx.',
'Table has been created.' => 'Xx.',
'Table name' => 'Xx',
'Show structure' => 'Xx',
'engine' => 'xx',
'collation' => 'xx',
'Column name' => 'Xx',
'Type' => 'Xx',
'Length' => 'Xx',
'Auto Increment' => 'Xx',
'Options' => 'Xx',
'Comment' => 'Xx',
'Default value' => 'Xx',
'Default values' => 'Xx',
'Drop' => 'Xx',
'Drop %s?' => 'Xx %s?',
'Are you sure?' => 'Xx?',
'Size' => 'Xx',
'Compute' => 'Xx',
'Move up' => 'Xx',
'Move down' => 'Xx',
'Remove' => 'Xx',
'Maximum number of allowed fields exceeded. Please increase %s.' => 'Xx %s.',
'Partition by' => 'Xx',
'Partitions' => 'Xx',
'Partition name' => 'Xx',
'Values' => 'Xx',
'View' => 'Xx',
'Materialized view' => 'Xx',
'View has been dropped.' => 'Xx.',
'View has been altered.' => 'Xx.',
'View has been created.' => 'Xx.',
'Alter view' => 'Xx',
'Create view' => 'Xx',
'Indexes' => 'Xx',
'Indexes have been altered.' => 'Xx.',
'Alter indexes' => 'Xx',
'Add next' => 'Xx',
'Index Type' => 'Xx',
'Column (length)' => 'Xx',
'Foreign keys' => 'Xx',
'Foreign key' => 'Xx',
'Foreign key has been dropped.' => 'Xx.',
'Foreign key has been altered.' => 'Xx.',
'Foreign key has been created.' => 'Xx.',
'Target table' => 'Xx',
'Change' => 'Xx',
'Source' => 'Xx',
'Target' => 'Xx',
'Add column' => 'Xx',
'Alter' => 'Xx',
'Add foreign key' => 'Xx',
'ON DELETE' => 'Xx',
'ON UPDATE' => 'Xx',
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'Xx.',
'Triggers' => 'Xx',
'Add trigger' => 'Xx',
'Trigger has been dropped.' => 'Xx.',
'Trigger has been altered.' => 'Xx.',
'Trigger has been created.' => 'Xx.',
'Alter trigger' => 'Xx',
'Create trigger' => 'Xx',
'Time' => 'Xx',
'Event' => 'Xx',
'Name' => 'Xx',
'select' => 'xx',
'Select' => 'Xx',
'Select data' => 'Xx',
'Functions' => 'Xx',
'Aggregation' => 'Xx',
'Search' => 'Xx',
'anywhere' => 'xx',
'Search data in tables' => 'Xx',
'Sort' => 'Xx',
'descending' => 'xx',
'Limit' => 'Xx',
'Limit rows' => 'Xx',
'Text length' => 'Xx',
'Action' => 'Xx',
'Full table scan' => 'Xx',
'Unable to select the table' => 'Xx',
'No rows.' => 'Xx.',
'%d / ' => '%d / ',
'%d row(s)' => array('%d xx', '%d xx'),
'Page' => 'Xx',
'last' => 'xx',
'Load more data' => 'Xx',
'Loading' => 'Xx',
'Whole result' => 'Xx',
'%d byte(s)' => array('%d xx', '%d xx'),
'Import' => 'Xx',
'%d row(s) have been imported.' => array('%d xx.', '%d xx.'),
'File must be in UTF-8 encoding.' => 'Xx.',
// in-place editing in select
'Modify' => 'Xx',
'Ctrl+click on a value to modify it.' => 'Xx.',
'Use edit link to modify this value.' => 'Xx.',
// %s can contain auto-increment value
'Item%s has been inserted.' => 'Xx%s.',
'Item has been deleted.' => 'Xx.',
'Item has been updated.' => 'Xx.',
'%d item(s) have been affected.' => array('%d xx.', '%d xx.'),
'New item' => 'Xx',
'original' => 'xx',
// label for value '' in enum data type
'empty' => 'xx',
'edit' => 'xx',
'Edit' => 'Xx',
'Insert' => 'Xx',
'Save' => 'Xx',
'Save and continue edit' => 'Xx',
'Save and insert next' => 'Xx',
'Selected' => 'Xx',
'Clone' => 'Xx',
'Delete' => 'Xx',
'You have no privileges to update this table.' => 'Xx.',
'E-mail' => 'Xx',
'From' => 'Xx',
'Subject' => 'Xx',
'Attachments' => 'Xx',
'Send' => 'Xx',
'%d e-mail(s) have been sent.' => array('%d xx.', '%d xx.'),
// data type descriptions
'Numbers' => 'Xx',
'Date and time' => 'Xx',
'Strings' => 'Xx',
'Binary' => 'Xx',
'Lists' => 'Xx',
'Network' => 'Xx',
'Geometry' => 'Xx',
'Relations' => 'Xx',
'Editor' => 'Xx',
// date format in Editor: $1 yyyy, $2 yy, $3 mm, $4 m, $5 dd, $6 d
'$1-$3-$5' => 'xx',
// hint for date format - use language equivalents for day, month and year shortcuts
'[yyyy]-mm-dd' => 'xx',
// hint for time format - use language equivalents for hour, minute and second shortcuts
'HH:MM:SS' => 'Xx',
'now' => 'xx',
'yes' => 'xx',
'no' => 'xx',
// general SQLite error in create, drop or rename database
'File exists.' => 'Xx.',
'Please use one of the extensions %s.' => 'Xx %s.',
// PostgreSQL and MS SQL schema support
'Alter schema' => 'Xx',
'Create schema' => 'Xx',
'Schema has been dropped.' => 'Xx.',
'Schema has been created.' => 'Xx.',
'Schema has been altered.' => 'Xx.',
'Schema' => 'Xx',
'Invalid schema.' => 'Xx.',
// PostgreSQL sequences support
'Sequences' => 'Xx',
'Create sequence' => 'Xx',
'Sequence has been dropped.' => 'Xx.',
'Sequence has been created.' => 'Xx.',
'Sequence has been altered.' => 'Xx.',
'Alter sequence' => 'Xx',
// PostgreSQL user types support
'User types' => 'Xx',
'Create type' => 'Xx',
'Type has been dropped.' => 'Xx.',
'Type has been created.' => 'Xx.',
'Alter type' => 'Xx',
'as a regular expression' => null,
'Copy to clipboard' => null,
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'A newer version of AdminerEvo is available, download it now!' => null,
);

View file

@ -1,355 +0,0 @@
<?php
$translations = array(
// label for database system selection (MySQL, SQLite, ...)
'System' => '資料庫系統',
'Server' => '伺服器',
'Username' => '帳號',
'Password' => '密碼',
'Permanent login' => '永久登入',
'Login' => '登入',
'Logout' => '登出',
'Logged as: %s' => '登錄為: %s',
'Logout successful.' => '成功登出。',
'Invalid server or credentials.' => null,
'There is a space in the input password which might be the cause.' => '您輸入的密碼中有一個空格,這可能是導致問題的原因。',
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Adminer預設不支援訪問沒有密碼的資料庫<a href="https://www.adminer.org/en/password/"%s>詳情見這裡</a>.',
'Database does not support password.' => '資料庫不支援密碼。',
'Too many unsuccessful logins, try again in %d minute(s).' => '登錄失敗次數過多,請 %d 分鐘後重試。',
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => '主密碼已過期。<a href="https://www.adminer.org/en/extension/"%s>請擴展</a> %s 方法讓它永久化。',
'Language' => '語言',
'Invalid CSRF token. Send the form again.' => '無效的 CSRF token。請重新發送表單。',
'If you did not send this request from Adminer then close this page.' => '如果您並沒有從Adminer發送請求請關閉此頁面。',
'No extension' => '無擴充模組',
'None of the supported PHP extensions (%s) are available.' => '沒有任何支援的 PHP 擴充模組(%s。',
'Connecting to privileged ports is not allowed.' => '不允許連接到特權埠。',
'Disable %s or enable %s or %s extensions.' => '禁用 %s 或啟用 %s 或 %s 擴充模組。',
'Session support must be enabled.' => 'Session 必須被啟用。',
'Session expired, please login again.' => 'Session 已過期,請重新登入。',
'The action will be performed after successful login with the same credentials.' => '此操作將在成功使用相同的憑據登錄後執行。',
'%s version: %s through PHP extension %s' => '%s 版本:%s 透過 PHP 擴充模組 %s',
'Refresh' => '重新載入',
// text direction - 'ltr' or 'rtl'
'ltr' => 'ltr',
'Privileges' => '權限',
'Create user' => '建立使用者',
'User has been dropped.' => '已刪除使用者。',
'User has been altered.' => '已修改使用者。',
'User has been created.' => '已建立使用者。',
'Hashed' => 'Hashed',
'Column' => '欄位',
'Routine' => '程序',
'Grant' => '授權',
'Revoke' => '廢除',
'Process list' => '處理程序列表',
'%d process(es) have been killed.' => '%d 個 Process(es) 被終止',
'Kill' => '終止',
'Variables' => '變數',
'Status' => '狀態',
'SQL command' => 'SQL 命令',
'%d query(s) executed OK.' => '已順利執行 %d 個查詢。',
'Query executed OK, %d row(s) affected.' => '執行查詢 OK%d 行受影響。',
'No commands to execute.' => '沒有命令可執行。',
'Error in query' => '查詢發生錯誤',
'Unknown error.' => '未知錯誤。',
'Warnings' => '警告',
'ATTACH queries are not supported.' => '不支援ATTACH查詢。',
'Execute' => '執行',
'Stop on error' => '出錯時停止',
'Show only errors' => '僅顯示錯誤訊息',
// sprintf() format for time of the command
'%.3f s' => '%.3f 秒',
'History' => '紀錄',
'Clear' => '清除',
'Edit all' => '編輯全部',
'File upload' => '檔案上傳',
'From server' => '從伺服器',
'Webserver file %s' => '網頁伺服器檔案 %s',
'Run file' => '執行檔案',
'File does not exist.' => '檔案不存在',
'File uploads are disabled.' => '檔案上傳已經被停用。',
'Unable to upload a file.' => '無法上傳檔案。',
'Maximum allowed file size is %sB.' => '允許的檔案上限大小為 %sB',
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'POST 資料太大。減少資料或者增加 %s 的設定值。',
'You can upload a big SQL file via FTP and import it from server.' => '您可以通過FTP上傳大型SQL檔並從伺服器導入。',
'You are offline.' => '您離線了。',
'Export' => '匯出',
'Output' => '輸出',
'open' => '打開',
'save' => '儲存',
'Saving' => '保存中',
'Format' => '格式',
'Data' => '資料',
'Database' => '資料庫',
'database' => '資料庫',
'DB' => '資料庫',
'Use' => '使用',
'Select database' => '選擇資料庫',
'Invalid database.' => '無效的資料庫。',
'Database has been dropped.' => '資料庫已刪除。',
'Databases have been dropped.' => '資料庫已刪除。',
'Database has been created.' => '已建立資料庫。',
'Database has been renamed.' => '已重新命名資料庫。',
'Database has been altered.' => '已修改資料庫。',
'Alter database' => '修改資料庫',
'Create database' => '建立資料庫',
'Database schema' => '資料庫結構',
// link to current database schema layout
'Permanent link' => '永久連結',
// thousands separator - must contain single byte
',' => ',',
'0123456789' => '0123456789',
'Engine' => '引擎',
'Collation' => '校對',
'Data Length' => '資料長度',
'Index Length' => '索引長度',
'Data Free' => '資料空閒',
'Rows' => '行數',
'%d in total' => '總共 %d 個',
'Analyze' => '分析',
'Optimize' => '最佳化',
'Vacuum' => '整理Vacuum',
'Check' => '檢查',
'Repair' => '修復',
'Truncate' => '清空',
'Tables have been truncated.' => '已清空資料表。',
'Move to other database' => '轉移到其它資料庫',
'Move' => '轉移',
'Tables have been moved.' => '已轉移資料表。',
'Copy' => '複製',
'Tables have been copied.' => '資料表已經複製',
'overwrite' => '覆蓋',
'Routines' => '程序',
'Routine has been called, %d row(s) affected.' => '程序已被執行,%d 行被影響',
'Call' => '呼叫',
'Parameter name' => '參數名稱',
'Create procedure' => '建立預存程序',
'Create function' => '建立函式',
'Routine has been dropped.' => '已刪除程序。',
'Routine has been altered.' => '已修改子程序。',
'Routine has been created.' => '已建立子程序。',
'Alter function' => '修改函式',
'Alter procedure' => '修改預存程序',
'Return type' => '回傳類型',
'Events' => '事件',
'Event has been dropped.' => '已刪除事件。',
'Event has been altered.' => '已修改事件。',
'Event has been created.' => '已建立事件。',
'Alter event' => '修改事件',
'Create event' => '建立事件',
'At given time' => '在指定時間',
'Every' => '每',
'Schedule' => '排程',
'Start' => '開始',
'End' => '結束',
'On completion preserve' => '在完成後儲存',
'Tables' => '資料表',
'Tables and views' => '資料表和檢視表',
'Table' => '資料表',
'No tables.' => '沒有資料表。',
'Alter table' => '修改資料表',
'Create table' => '建立資料表',
'Table has been dropped.' => '已經刪除資料表。',
'Tables have been dropped.' => '已經將資料表刪除。',
'Tables have been optimized.' => '已優化資料表。',
'Table has been altered.' => '資料表已修改。',
'Table has been created.' => '資料表已建立。',
'Table name' => '資料表名稱',
'Show structure' => '顯示結構',
'engine' => '引擎',
'collation' => '校對',
'Column name' => '欄位名稱',
'Type' => '類型',
'Length' => '長度',
'Auto Increment' => '自動遞增',
'Options' => '選項',
'Comment' => '註解',
'Default value' => '預設值',
'Default values' => '預設值',
'Drop' => '刪除',
'Drop %s?' => '刪除 %s?',
'Are you sure?' => '你確定嗎?',
'Size' => '大小',
'Compute' => '計算',
'Move up' => '上移',
'Move down' => '下移',
'Remove' => '移除',
'Maximum number of allowed fields exceeded. Please increase %s.' => '超過允許的字段數量的最大值。請增加 %s。',
'Partition by' => '分區類型',
'Partitions' => '分區',
'Partition name' => '分區名稱',
'Values' => '值',
'View' => '檢視表',
'Materialized view' => '物化視圖',
'View has been dropped.' => '已刪除檢視表。',
'View has been altered.' => '已修改檢視表。',
'View has been created.' => '已建立檢視表。',
'Alter view' => '修改檢視表',
'Create view' => '建立檢視表',
'Indexes' => '索引',
'Indexes have been altered.' => '已修改索引。',
'Alter indexes' => '修改索引',
'Add next' => '新增下一筆',
'Index Type' => '索引類型',
'Column (length)' => '欄位(長度)',
'Foreign keys' => '外來鍵',
'Foreign key' => '外來鍵',
'Foreign key has been dropped.' => '已刪除外來鍵。',
'Foreign key has been altered.' => '已修改外來鍵。',
'Foreign key has been created.' => '已建立外來鍵。',
'Target table' => '目標資料表',
'Change' => '變更',
'Source' => '來源',
'Target' => '目標',
'Add column' => '新增欄位',
'Alter' => '修改',
'Add foreign key' => '新增外來鍵',
'ON DELETE' => 'ON DELETE',
'ON UPDATE' => 'ON UPDATE',
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => '來源列和目標列必須具有相同的資料類型,在目標列上必須有一個索引並且引用的資料必須存在。',
'Triggers' => '觸發器',
'Add trigger' => '建立觸發器',
'Trigger has been dropped.' => '已刪除觸發器。',
'Trigger has been altered.' => '已修改觸發器。',
'Trigger has been created.' => '已建立觸發器。',
'Alter trigger' => '修改觸發器',
'Create trigger' => '建立觸發器',
'Time' => '時間',
'Event' => '事件',
'Name' => '名稱',
'select' => '選擇',
'Select' => '選擇',
'Select data' => '選擇資料',
'Functions' => '函式',
'Aggregation' => '集合',
'Search' => '搜尋',
'anywhere' => '任意位置',
'Search data in tables' => '在資料庫搜尋',
'Sort' => '排序',
'descending' => '降冪 (遞減)',
'Limit' => '限定',
'Limit rows' => '限制行數',
'Text length' => 'Text 長度',
'Action' => '動作',
'Full table scan' => '全資料表掃描',
'Unable to select the table' => '無法選擇該資料表',
'No rows.' => '沒有資料行。',
'%d / ' => '%d / ',
'%d row(s)' => '%d 行',
'Page' => '頁',
'last' => '最後一頁',
'Load more data' => '載入更多資料',
'Loading' => '載入中',
'Whole result' => '所有結果',
'%d byte(s)' => '%d byte(s)',
'Import' => '匯入',
'%d row(s) have been imported.' => '已匯入 %d 行。',
'File must be in UTF-8 encoding.' => '檔必須使用UTF-8編碼。',
// in-place editing in select
'Modify' => '修改',
'Ctrl+click on a value to modify it.' => '按住Ctrl並按一下某個值進行修改。',
'Use edit link to modify this value.' => '使用編輯連結來修改。',
// %s can contain auto-increment value
'Item%s has been inserted.' => '已新增項目 %s。',
'Item has been deleted.' => '該項目已被刪除',
'Item has been updated.' => '已更新項目。',
'%d item(s) have been affected.' => '%d 個項目受到影響。',
'New item' => '新增項目',
'original' => '原始',
// label for value '' in enum data type
'empty' => '空值',
'edit' => '編輯',
'Edit' => '編輯',
'Insert' => '新增',
'Save' => '儲存',
'Save and continue edit' => '儲存並繼續編輯',
'Save and insert next' => '儲存並新增下一筆',
'Selected' => '已選中',
'Clone' => '複製',
'Delete' => '刪除',
'You have no privileges to update this table.' => '您沒有許可權更新這個資料表。',
'E-mail' => '電子郵件',
'From' => '來自',
'Subject' => '主旨',
'Attachments' => '附件',
'Send' => '寄出',
'%d e-mail(s) have been sent.' => '已寄出 %d 封郵件。',
// data type descriptions
'Numbers' => '數字',
'Date and time' => '日期時間',
'Strings' => '字串',
'Binary' => '二進位',
'Lists' => '列表',
'Network' => '網路',
'Geometry' => '幾何',
'Relations' => '關聯',
'Editor' => '編輯器',
// date format in Editor: $1 yyyy, $2 yy, $3 mm, $4 m, $5 dd, $6 d
'$1-$3-$5' => '$1.$3.$5',
// hint for date format - use language equivalents for day, month and year shortcuts
'[yyyy]-mm-dd' => '[yyyy].mm.dd',
// hint for time format - use language equivalents for hour, minute and second shortcuts
'HH:MM:SS' => 'HH:MM:SS',
'now' => '現在',
'yes' => '是',
'no' => '否',
// general SQLite error in create, drop or rename database
'File exists.' => '檔案已存在。',
'Please use one of the extensions %s.' => '請使用下列其中一個擴充模組 %s。',
// PostgreSQL and MS SQL schema support
'Alter schema' => '修改資料表結構',
'Create schema' => '建立資料表結構',
'Schema has been dropped.' => '已刪除資料表結構。',
'Schema has been created.' => '已建立資料表結構。',
'Schema has been altered.' => '已修改資料表結構。',
'Schema' => '資料表結構',
'Invalid schema.' => '無效的資料表結構。',
// PostgreSQL sequences support
'Sequences' => '序列',
'Create sequence' => '建立序列',
'Sequence has been dropped.' => '已刪除序列。',
'Sequence has been created.' => '已建立序列。',
'Sequence has been altered.' => '已修改序列。',
'Alter sequence' => '修改序列',
// PostgreSQL user types support
'User types' => '使用者類型',
'Create type' => '建立類型',
'Type has been dropped.' => '已刪除類型。',
'Type has been created.' => '已建立類型。',
'Alter type' => '修改類型',
'as a regular expression' => null,
'Copy to clipboard' => null,
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'A newer version of AdminerEvo is available, download it now!' => null,
);

View file

@ -1,355 +0,0 @@
<?php
$translations = array(
// label for database system selection (MySQL, SQLite, ...)
'System' => '系统',
'Server' => '服务器',
'Username' => '用户名',
'Password' => '密码',
'Permanent login' => '保持登录',
'Login' => '登录',
'Logout' => '登出',
'Logged as: %s' => '登录用户:%s',
'Logout successful.' => '成功登出。',
'Invalid server or credentials.' => null,
'There is a space in the input password which might be the cause.' => '您输入的密码中有一个空格,这可能是导致问题的原因。',
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Adminer默认不支持访问没有密码的数据库<a href="https://www.adminer.org/en/password/"%s>详情见这里</a>.',
'Database does not support password.' => '数据库不支持密码。',
'Too many unsuccessful logins, try again in %d minute(s).' => '登录失败次数过多,请 %d 分钟后重试。',
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => '主密码已过期。<a href="https://www.adminer.org/en/extension/"%s>请扩展</a> %s 方法让它永久化。',
'Language' => '语言',
'Invalid CSRF token. Send the form again.' => '无效 CSRF 令牌。请重新发送表单。',
'If you did not send this request from Adminer then close this page.' => '如果您并没有从Adminer发送请求请关闭此页面。',
'No extension' => '没有扩展',
'None of the supported PHP extensions (%s) are available.' => '没有支持的 PHP 扩展可用(%s。',
'Connecting to privileged ports is not allowed.' => '不允许连接到特权端口。',
'Disable %s or enable %s or %s extensions.' => '禁用 %s 或启用 %s 或 %s 扩展。',
'Session support must be enabled.' => '必须启用会话支持。',
'Session expired, please login again.' => '会话已过期,请重新登录。',
'The action will be performed after successful login with the same credentials.' => '此操作将在成功使用相同的凭据登录后执行。',
'%s version: %s through PHP extension %s' => '%s 版本:%s 使用PHP扩展 %s',
'Refresh' => '刷新',
// text direction - 'ltr' or 'rtl'
'ltr' => 'ltr',
'Privileges' => '权限',
'Create user' => '创建用户',
'User has been dropped.' => '已删除用户。',
'User has been altered.' => '已修改用户。',
'User has been created.' => '已创建用户。',
'Hashed' => 'Hashed',
'Column' => '列',
'Routine' => '子程序',
'Grant' => '授权',
'Revoke' => '废除',
'Process list' => '进程列表',
'%d process(es) have been killed.' => '%d 个进程被终止',
'Kill' => '终止',
'Variables' => '变量',
'Status' => '状态',
'SQL command' => 'SQL命令',
'%d query(s) executed OK.' => '%d 条查询已成功执行。',
'Query executed OK, %d row(s) affected.' => '查询执行完毕,%d 行受影响。',
'No commands to execute.' => '没有命令被执行。',
'Error in query' => '查询出错',
'Unknown error.' => '未知错误。',
'Warnings' => '警告',
'ATTACH queries are not supported.' => '不支持ATTACH查询。',
'Execute' => '执行',
'Stop on error' => '出错时停止',
'Show only errors' => '仅显示错误',
// sprintf() format for time of the command
'%.3f s' => '%.3f 秒',
'History' => '历史',
'Clear' => '清除',
'Edit all' => '编辑全部',
'File upload' => '文件上传',
'From server' => '来自服务器',
'Webserver file %s' => 'Web服务器文件 %s',
'Run file' => '运行文件',
'File does not exist.' => '文件不存在。',
'File uploads are disabled.' => '文件上传被禁用。',
'Unable to upload a file.' => '不能上传文件。',
'Maximum allowed file size is %sB.' => '最多允许的文件大小为 %sB。',
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'POST 数据太大。请减少数据或者增加 %s 配置命令。',
'You can upload a big SQL file via FTP and import it from server.' => '您可以通过FTP上传大型SQL文件并从服务器导入。',
'You are offline.' => '您离线了。',
'Export' => '导出',
'Output' => '输出',
'open' => '打开',
'save' => '保存',
'Saving' => '保存中',
'Format' => '格式',
'Data' => '数据',
'Database' => '数据库',
'database' => '数据库',
'DB' => '数据库',
'Use' => '使用',
'Select database' => '选择数据库',
'Invalid database.' => '无效数据库。',
'Database has been dropped.' => '已删除数据库。',
'Databases have been dropped.' => '已删除数据库。',
'Database has been created.' => '已创建数据库。',
'Database has been renamed.' => '已重命名数据库。',
'Database has been altered.' => '已修改数据库。',
'Alter database' => '修改数据库',
'Create database' => '创建数据库',
'Database schema' => '数据库概要',
// link to current database schema layout
'Permanent link' => '固定链接',
// thousands separator - must contain single byte
',' => ',',
'0123456789' => '0123456789',
'Engine' => '引擎',
'Collation' => '校对',
'Data Length' => '数据长度',
'Index Length' => '索引长度',
'Data Free' => '数据空闲',
'Rows' => '行数',
'%d in total' => '共计 %d',
'Analyze' => '分析',
'Optimize' => '优化',
'Vacuum' => '整理Vacuum',
'Check' => '检查',
'Repair' => '修复',
'Truncate' => '清空',
'Tables have been truncated.' => '已清空表。',
'Move to other database' => '转移到其它数据库',
'Move' => '转移',
'Tables have been moved.' => '已转移表。',
'Copy' => '复制',
'Tables have been copied.' => '已复制表。',
'overwrite' => '覆盖',
'Routines' => '子程序',
'Routine has been called, %d row(s) affected.' => '子程序被调用,%d 行被影响。',
'Call' => '调用',
'Parameter name' => '参数名',
'Create procedure' => '创建过程',
'Create function' => '创建函数',
'Routine has been dropped.' => '已删除子程序。',
'Routine has been altered.' => '已修改子程序。',
'Routine has been created.' => '已创建子程序。',
'Alter function' => '修改函数',
'Alter procedure' => '修改过程',
'Return type' => '返回类型',
'Events' => '事件',
'Event has been dropped.' => '已删除事件。',
'Event has been altered.' => '已修改事件。',
'Event has been created.' => '已创建事件。',
'Alter event' => '修改事件',
'Create event' => '创建事件',
'At given time' => '在指定时间',
'Every' => '每',
'Schedule' => '调度',
'Start' => '开始',
'End' => '结束',
'On completion preserve' => '完成后仍保留',
'Tables' => '表',
'Tables and views' => '表和视图',
'Table' => '表',
'No tables.' => '没有表。',
'Alter table' => '修改表',
'Create table' => '创建表',
'Table has been dropped.' => '已删除表。',
'Tables have been dropped.' => '已删除表。',
'Tables have been optimized.' => '已优化表。',
'Table has been altered.' => '已修改表。',
'Table has been created.' => '已创建表。',
'Table name' => '表名',
'Show structure' => '显示结构',
'engine' => '引擎',
'collation' => '校对',
'Column name' => '字段名',
'Type' => '类型',
'Length' => '长度',
'Auto Increment' => '自动增量',
'Options' => '选项',
'Comment' => '注释',
'Default value' => '默认值',
'Default values' => '默认值',
'Drop' => '删除',
'Drop %s?' => '删除 %s?',
'Are you sure?' => '您确定吗?',
'Size' => '大小',
'Compute' => '计算',
'Move up' => '上移',
'Move down' => '下移',
'Remove' => '移除',
'Maximum number of allowed fields exceeded. Please increase %s.' => '超过最多允许的字段数量。请增加 %s。',
'Partition by' => '分区类型',
'Partitions' => '分区',
'Partition name' => '分区名',
'Values' => '值',
'View' => '视图',
'Materialized view' => '物化视图',
'View has been dropped.' => '已删除视图。',
'View has been altered.' => '已修改视图。',
'View has been created.' => '已创建视图。',
'Alter view' => '修改视图',
'Create view' => '创建视图',
'Indexes' => '索引',
'Indexes have been altered.' => '已修改索引。',
'Alter indexes' => '修改索引',
'Add next' => '下一行插入',
'Index Type' => '索引类型',
'Column (length)' => '列(长度)',
'Foreign keys' => '外键',
'Foreign key' => '外键',
'Foreign key has been dropped.' => '已删除外键。',
'Foreign key has been altered.' => '已修改外键。',
'Foreign key has been created.' => '已创建外键。',
'Target table' => '目标表',
'Change' => '修改',
'Source' => '源',
'Target' => '目标',
'Add column' => '增加列',
'Alter' => '修改',
'Add foreign key' => '添加外键',
'ON DELETE' => 'ON DELETE',
'ON UPDATE' => 'ON UPDATE',
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => '源列和目标列必须具有相同的数据类型,在目标列上必须有一个索引并且引用的数据必须存在。',
'Triggers' => '触发器',
'Add trigger' => '创建触发器',
'Trigger has been dropped.' => '已删除触发器。',
'Trigger has been altered.' => '已修改触发器。',
'Trigger has been created.' => '已创建触发器。',
'Alter trigger' => '修改触发器',
'Create trigger' => '创建触发器',
'Time' => '时间',
'Event' => '事件',
'Name' => '名称',
'select' => '选择',
'Select' => '选择',
'Select data' => '选择数据',
'Functions' => '函数',
'Aggregation' => '集合',
'Search' => '搜索',
'anywhere' => '任意位置',
'Search data in tables' => '在表中搜索数据',
'Sort' => '排序',
'descending' => '降序',
'Limit' => '范围',
'Limit rows' => '限制行数',
'Text length' => '文本显示限制',
'Action' => '动作',
'Full table scan' => '全表扫描',
'Unable to select the table' => '不能选择该表',
'No rows.' => '无数据。',
'%d / ' => '%d / ',
'%d row(s)' => '%d 行',
'Page' => '页面',
'last' => '最后',
'Load more data' => '加载更多数据',
'Loading' => '加载中',
'Whole result' => '所有结果',
'%d byte(s)' => '%d 字节',
'Import' => '导入',
'%d row(s) have been imported.' => '%d 行已导入。',
'File must be in UTF-8 encoding.' => '文件必须使用UTF-8编码。',
// in-place editing in select
'Modify' => '修改',
'Ctrl+click on a value to modify it.' => '按住Ctrl并单击某个值进行修改。',
'Use edit link to modify this value.' => '使用编辑链接修改该值。',
// %s can contain auto-increment value
'Item%s has been inserted.' => '已插入项目%s。',
'Item has been deleted.' => '已删除项目。',
'Item has been updated.' => '已更新项目。',
'%d item(s) have been affected.' => '%d 个项目受到影响。',
'New item' => '新建数据',
'original' => '原始',
// label for value '' in enum data type
'empty' => '空',
'edit' => '编辑',
'Edit' => '编辑',
'Insert' => '插入',
'Save' => '保存',
'Save and continue edit' => '保存并继续编辑',
'Save and insert next' => '保存并插入下一个',
'Selected' => '已选中',
'Clone' => '复制',
'Delete' => '删除',
'You have no privileges to update this table.' => '您没有权限更新这个表。',
'E-mail' => '电子邮件',
'From' => '来自',
'Subject' => '主题',
'Attachments' => '附件',
'Send' => '发送',
'%d e-mail(s) have been sent.' => '%d 封邮件已发送。',
// data type descriptions
'Numbers' => '数字',
'Date and time' => '日期时间',
'Strings' => '字符串',
'Binary' => '二进制',
'Lists' => '列表',
'Network' => '网络',
'Geometry' => '几何图形',
'Relations' => '关联信息',
'Editor' => '编辑器',
// date format in Editor: $1 yyyy, $2 yy, $3 mm, $4 m, $5 dd, $6 d
'$1-$3-$5' => '$1.$3.$5',
// hint for date format - use language equivalents for day, month and year shortcuts
'[yyyy]-mm-dd' => '[yyyy].mm.dd',
// hint for time format - use language equivalents for hour, minute and second shortcuts
'HH:MM:SS' => 'HH:MM:SS',
'now' => '现在',
'yes' => '是',
'no' => '否',
// general SQLite error in create, drop or rename database
'File exists.' => '文件已存在。',
'Please use one of the extensions %s.' => '请使用其中一个扩展:%s。',
// PostgreSQL and MS SQL schema support
'Alter schema' => '修改模式',
'Create schema' => '创建模式',
'Schema has been dropped.' => '已删除模式。',
'Schema has been created.' => '已创建模式。',
'Schema has been altered.' => '已修改模式。',
'Schema' => '模式',
'Invalid schema.' => '非法模式。',
// PostgreSQL sequences support
'Sequences' => '序列',
'Create sequence' => '创建序列',
'Sequence has been dropped.' => '已删除序列。',
'Sequence has been created.' => '已创建序列。',
'Sequence has been altered.' => '已修改序列。',
'Alter sequence' => '修改序列',
// PostgreSQL user types support
'User types' => '用户类型',
'Create type' => '创建类型',
'Type has been dropped.' => '已删除类型。',
'Type has been created.' => '已创建类型。',
'Alter type' => '修改类型',
'as a regular expression' => null,
'Copy to clipboard' => null,
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'A newer version of AdminerEvo is available, download it now!' => null,
);

View file

@ -1,46 +0,0 @@
<?php
function adminer_object() {
// required to run any plugin
include_once "../plugins/plugin.php";
// autoloader
foreach (glob("../plugins/*.php") as $filename) {
include_once $filename;
}
// enable extra drivers just by including them
//~ include "../plugins/drivers/simpledb.php";
$plugins = array(
// specify enabled plugins here
new AdminerDatabaseHide(array('information_schema')),
new AdminerDumpJson,
new AdminerDumpBz2,
new AdminerDumpZip,
new AdminerDumpXml,
new AdminerDumpAlter,
//~ new AdminerSqlLog("past-" . rtrim(`git describe --tags --abbrev=0`) . ".sql"),
//~ new AdminerEditCalendar(script_src("../externals/jquery-ui/jquery-1.4.4.js") . script_src("../externals/jquery-ui/ui/jquery.ui.core.js") . script_src("../externals/jquery-ui/ui/jquery.ui.widget.js") . script_src("../externals/jquery-ui/ui/jquery.ui.datepicker.js") . script_src("../externals/jquery-ui/ui/jquery.ui.mouse.js") . script_src("../externals/jquery-ui/ui/jquery.ui.slider.js") . script_src("../externals/jquery-timepicker/jquery-ui-timepicker-addon.js") . "<link rel='stylesheet' href='../externals/jquery-ui/themes/base/jquery.ui.all.css'>\n<style>\n.ui-timepicker-div .ui-widget-header { margin-bottom: 8px; }\n.ui-timepicker-div dl { text-align: left; }\n.ui-timepicker-div dl dt { height: 25px; }\n.ui-timepicker-div dl dd { margin: -25px 0 10px 65px; }\n.ui-timepicker-div td { font-size: 90%; }\n</style>\n", "../externals/jquery-ui/ui/i18n/jquery.ui.datepicker-%s.js"),
//~ new AdminerTinymce("../externals/tinymce/jscripts/tiny_mce/tiny_mce_dev.js"),
//~ new AdminerWymeditor(array("../externals/wymeditor/src/jquery/jquery.js", "../externals/wymeditor/src/wymeditor/jquery.wymeditor.js", "../externals/wymeditor/src/wymeditor/jquery.wymeditor.explorer.js", "../externals/wymeditor/src/wymeditor/jquery.wymeditor.mozilla.js", "../externals/wymeditor/src/wymeditor/jquery.wymeditor.opera.js", "../externals/wymeditor/src/wymeditor/jquery.wymeditor.safari.js")),
new AdminerFileUpload(""),
new AdminerJsonColumn,
new AdminerSlugify,
new AdminerTranslation,
new AdminerForeignSystem,
new AdminerEnumOption,
new AdminerTablesFilter,
new AdminerEditForeign,
);
/* It is possible to combine customization and plugins:
class AdminerCustomization extends AdminerPlugin {
}
return new AdminerCustomization($plugins);
*/
return new AdminerPlugin($plugins);
}
// include original Adminer or Adminer Editor (usually named adminer.php)
include "./index.php";

View file

@ -1,29 +0,0 @@
<?php
page_header(lang('Privileges'));
echo '<p class="links"><a href="' . h(ME) . 'user=">' . lang('Create user') . "</a>";
$result = $connection->query("SELECT User, Host FROM mysql." . (DB == "" ? "user" : "db WHERE " . q(DB) . " LIKE Db") . " ORDER BY Host, User");
$grant = $result;
if (!$result) {
// list logged user, information_schema.USER_PRIVILEGES lists just the current user too
$result = $connection->query("SELECT SUBSTRING_INDEX(CURRENT_USER, '@', 1) AS User, SUBSTRING_INDEX(CURRENT_USER, '@', -1) AS Host");
}
echo "<form action=''><p>\n";
hidden_fields_get();
echo "<input type='hidden' name='db' value='" . h(DB) . "'>\n";
echo ($grant ? "" : "<input type='hidden' name='grant' value=''>\n");
echo "<table cellspacing='0'>\n";
echo "<thead><tr><th>" . lang('Username') . "<th>" . lang('Server') . "<th></thead>\n";
while ($row = $result->fetch_assoc()) {
echo '<tr' . odd() . '><td>' . h($row["User"]) . "<td>" . h($row["Host"]) . '<td><a href="' . h(ME . 'user=' . urlencode($row["User"]) . '&host=' . urlencode($row["Host"])) . '">' . lang('Edit') . "</a>\n";
}
if (!$grant || DB != "") {
echo "<tr" . odd() . "><td><input name='user' autocapitalize='off'><td><input name='host' value='localhost' autocapitalize='off'><td><input type='submit' value='" . lang('Edit') . "'>\n";
}
echo "</table>\n";
echo "</form>\n";

View file

@ -1,58 +0,0 @@
<?php
$PROCEDURE = ($_GET["name"] ? $_GET["name"] : $_GET["procedure"]);
$routine = (isset($_GET["function"]) ? "FUNCTION" : "PROCEDURE");
$row = $_POST;
$row["fields"] = (array) $row["fields"];
if ($_POST && !process_fields($row["fields"]) && !$error) {
$orig = routine($_GET["procedure"], $routine);
$temp_name = "$row[name]_adminer_" . uniqid();
drop_create(
"DROP $routine " . routine_id($PROCEDURE, $orig),
create_routine($routine, $row),
"DROP $routine " . routine_id($row["name"], $row),
create_routine($routine, array("name" => $temp_name) + $row),
"DROP $routine " . routine_id($temp_name, $row),
substr(ME, 0, -1),
lang('Routine has been dropped.'),
lang('Routine has been altered.'),
lang('Routine has been created.'),
$PROCEDURE,
$row["name"]
);
}
page_header(($PROCEDURE != "" ? (isset($_GET["function"]) ? lang('Alter function') : lang('Alter procedure')) . ": " . h($PROCEDURE) : (isset($_GET["function"]) ? lang('Create function') : lang('Create procedure'))), $error);
if (!$_POST && $PROCEDURE != "") {
$row = routine($_GET["procedure"], $routine);
$row["name"] = $PROCEDURE;
}
$collations = get_vals("SHOW CHARACTER SET");
sort($collations);
$routine_languages = routine_languages();
?>
<form action="" method="post" id="form">
<p><?php echo lang('Name'); ?>: <input name="name" value="<?php echo h($row["name"]); ?>" data-maxlength="64" autocapitalize="off">
<?php echo ($routine_languages ? lang('Language') . ": " . html_select("language", $routine_languages, $row["language"]) . "\n" : ""); ?>
<input type="submit" value="<?php echo lang('Save'); ?>">
<div class="scrollable">
<table cellspacing="0" class="nowrap">
<?php
edit_fields($row["fields"], $collations, $routine);
if (isset($_GET["function"])) {
echo "<tr><td>" . lang('Return type');
edit_type("returns", $row["returns"], $collations, array(), ($jush == "pgsql" ? array("void", "trigger") : array()));
}
?>
</table>
<?php echo script("editFields();"); ?>
</div>
<p><?php textarea("definition", $row["definition"]); ?>
<p>
<input type="submit" value="<?php echo lang('Save'); ?>">
<?php if ($PROCEDURE != "") { ?><input type="submit" name="drop" value="<?php echo lang('Drop'); ?>"><?php echo confirm(lang('Drop %s?', $PROCEDURE)); ?><?php } ?>
<input type="hidden" name="token" value="<?php echo $token; ?>">
</form>

View file

@ -1,61 +0,0 @@
<?php
if (support("kill")) {
if ($_POST && !$error) {
$killed = 0;
foreach ((array) $_POST["kill"] as $val) {
if (kill_process($val)) {
$killed++;
}
}
queries_redirect(ME . "processlist=", lang('%d process(es) have been killed.', $killed), $killed || !$_POST["kill"]);
}
}
page_header(lang('Process list'), $error);
?>
<form action="" method="post">
<div class="scrollable">
<table cellspacing="0" class="nowrap checkable">
<?php
echo script("mixin(qsl('table'), {onclick: tableClick, ondblclick: partialArg(tableClick, true)});");
// HTML valid because there is always at least one process
$i = -1;
foreach (process_list() as $i => $row) {
if (!$i) {
echo "<thead><tr lang='en'>" . (support("kill") ? "<th>" : "");
foreach ($row as $key => $val) {
echo "<th>$key" . doc_link(array(
'sql' => "show-processlist.html#processlist_" . strtolower($key),
'pgsql' => "monitoring-stats.html#PG-STAT-ACTIVITY-VIEW",
'oracle' => "REFRN30223",
));
}
echo "</thead>\n";
}
echo "<tr" . odd() . ">" . (support("kill") ? "<td>" . checkbox("kill[]", $row[$jush == "sql" ? "Id" : "pid"], 0) : "");
foreach ($row as $key => $val) {
echo "<td>" . (
($jush == "sql" && $key == "Info" && preg_match("~Query|Killed~", $row["Command"]) && $val != "") ||
($jush == "pgsql" && $key == "current_query" && $val != "<IDLE>") ||
($jush == "oracle" && $key == "sql_text" && $val != "")
? "<code class='jush-$jush'>" . shorten_utf8($val, 100, "</code>") . ' <a href="' . h(ME . ($row["db"] != "" ? "db=" . urlencode($row["db"]) . "&" : "") . "sql=" . urlencode($val)) . '">' . lang('Clone') . '</a>'
: h($val)
);
}
echo "\n";
}
?>
</table>
</div>
<p>
<?php
if (support("kill")) {
echo ($i + 1) . "/" . lang('%d in total', max_connections());
echo "<p><input type='submit' value='" . lang('Kill') . "'>\n";
}
?>
<input type="hidden" name="token" value="<?php echo $token; ?>">
</form>
<?php echo script("tableCheck();"); ?>

View file

@ -1,110 +0,0 @@
<?php
page_header(lang('Database schema'), "", array(), h(DB . ($_GET["ns"] ? ".$_GET[ns]" : "")));
$table_pos = array();
$table_pos_js = array();
$SCHEMA = ($_GET["schema"] ? $_GET["schema"] : $_COOKIE["adminer_schema-" . str_replace(".", "_", DB)]); // $_COOKIE["adminer_schema"] was used before 3.2.0 //! ':' in table name
preg_match_all('~([^:]+):([-0-9.]+)x([-0-9.]+)(_|$)~', $SCHEMA, $matches, PREG_SET_ORDER);
foreach ($matches as $i => $match) {
$table_pos[$match[1]] = array($match[2], $match[3]);
$table_pos_js[] = "\n\t'" . js_escape($match[1]) . "': [ $match[2], $match[3] ]";
}
$top = 0;
$base_left = -1;
$schema = array(); // table => array("fields" => array(name => field), "pos" => array(top, left), "references" => array(table => array(left => array(source, target))))
$referenced = array(); // target_table => array(table => array(left => target_column))
$lefts = array(); // float => bool
foreach (table_status('', true) as $table => $table_status) {
if (is_view($table_status)) {
continue;
}
$pos = 0;
$schema[$table]["fields"] = array();
foreach (fields($table) as $name => $field) {
$pos += 1.25;
$field["pos"] = $pos;
$schema[$table]["fields"][$name] = $field;
}
$schema[$table]["pos"] = ($table_pos[$table] ? $table_pos[$table] : array($top, 0));
foreach ($adminer->foreignKeys($table) as $val) {
if (!$val["db"]) {
$left = $base_left;
if ($table_pos[$table][1] || $table_pos[$val["table"]][1]) {
$left = min(floatval($table_pos[$table][1]), floatval($table_pos[$val["table"]][1])) - 1;
} else {
$base_left -= .1;
}
while ($lefts[(string) $left]) {
// find free $left
$left -= .0001;
}
$schema[$table]["references"][$val["table"]][(string) $left] = array($val["source"], $val["target"]);
$referenced[$val["table"]][$table][(string) $left] = $val["target"];
$lefts[(string) $left] = true;
}
}
$top = max($top, $schema[$table]["pos"][0] + 2.5 + $pos);
}
?>
<div id="schema" style="height: <?php echo $top; ?>em;">
<script<?php echo nonce(); ?>>
qs('#schema').onselectstart = function () { return false; };
var tablePos = {<?php echo implode(",", $table_pos_js) . "\n"; ?>};
var em = qs('#schema').offsetHeight / <?php echo $top; ?>;
document.onmousemove = schemaMousemove;
document.onmouseup = partialArg(schemaMouseup, '<?php echo js_escape(DB); ?>');
</script>
<?php
foreach ($schema as $name => $table) {
echo "<div class='table' style='top: " . $table["pos"][0] . "em; left: " . $table["pos"][1] . "em;'>";
echo '<a href="' . h(ME) . 'table=' . urlencode($name) . '"><b>' . h($name) . "</b></a>";
echo script("qsl('div').onmousedown = schemaMousedown;");
foreach ($table["fields"] as $field) {
$val = '<span' . type_class($field["type"]) . ' title="' . h($field["full_type"] . ($field["null"] ? " NULL" : '')) . '">' . h($field["field"]) . '</span>';
echo "<br>" . ($field["primary"] ? "<i>$val</i>" : $val);
}
foreach ((array) $table["references"] as $target_name => $refs) {
foreach ($refs as $left => $ref) {
$left1 = $left - $table_pos[$name][1];
$i = 0;
foreach ($ref[0] as $source) {
echo "\n<div class='references' title='" . h($target_name) . "' id='refs$left-" . ($i++) . "' style='left: $left1" . "em; top: " . $table["fields"][$source]["pos"] . "em; padding-top: .5em;'><div style='border-top: 1px solid Gray; width: " . (-$left1) . "em;'></div></div>";
}
}
}
foreach ((array) $referenced[$name] as $target_name => $refs) {
foreach ($refs as $left => $columns) {
$left1 = $left - $table_pos[$name][1];
$i = 0;
foreach ($columns as $target) {
echo "\n<div class='references' title='" . h($target_name) . "' id='refd$left-" . ($i++) . "' style='left: $left1" . "em; top: " . $table["fields"][$target]["pos"] . "em; height: 1.25em; background: url(../adminer/static/arrow.gif) no-repeat right center;'><div style='height: .5em; border-bottom: 1px solid Gray; width: " . (-$left1) . "em;'></div></div>";
}
}
}
echo "\n</div>\n";
}
foreach ($schema as $name => $table) {
foreach ((array) $table["references"] as $target_name => $refs) {
foreach ($refs as $left => $ref) {
$min_pos = $top;
$max_pos = -10;
foreach ($ref[0] as $key => $source) {
$pos1 = $table["pos"][0] + $table["fields"][$source]["pos"];
$pos2 = $schema[$target_name]["pos"][0] + $schema[$target_name]["fields"][$ref[1][$key]]["pos"];
$min_pos = min($min_pos, $pos1, $pos2);
$max_pos = max($max_pos, $pos1, $pos2);
}
echo "<div class='references' id='refl$left' style='left: $left" . "em; top: $min_pos" . "em; padding: .5em 0;'><div style='border-right: 1px solid Gray; margin-top: 1px; height: " . ($max_pos - $min_pos) . "em;'></div></div>\n";
}
}
}
?>
</div>
<p class="links"><a href="<?php echo h(ME . "schema=" . urlencode($SCHEMA)); ?>" id="schema-link"><?php echo lang('Permanent link'); ?></a>

View file

@ -1,38 +0,0 @@
<?php
$row = $_POST;
if ($_POST && !$error) {
$link = preg_replace('~ns=[^&]*&~', '', ME) . "ns=";
if ($_POST["drop"]) {
query_redirect("DROP SCHEMA " . idf_escape($_GET["ns"]), $link, lang('Schema has been dropped.'));
} else {
$name = trim($row["name"]);
$link .= urlencode($name);
if ($_GET["ns"] == "") {
query_redirect("CREATE SCHEMA " . idf_escape($name), $link, lang('Schema has been created.'));
} elseif ($_GET["ns"] != $name) {
query_redirect("ALTER SCHEMA " . idf_escape($_GET["ns"]) . " RENAME TO " . idf_escape($name), $link, lang('Schema has been altered.')); //! sp_rename in MS SQL
} else {
redirect($link);
}
}
}
page_header($_GET["ns"] != "" ? lang('Alter schema') : lang('Create schema'), $error);
if (!$row) {
$row["name"] = $_GET["ns"];
}
?>
<form action="" method="post">
<p><input name="name" id="name" value="<?php echo h($row["name"]); ?>" autocapitalize="off">
<?php echo script("focus(qs('#name'));"); ?>
<input type="submit" value="<?php echo lang('Save'); ?>">
<?php
if ($_GET["ns"] != "") {
echo "<input type='submit' name='drop' value='" . lang('Drop') . "'>" . confirm(lang('Drop %s?', $_GET["ns"])) . "\n";
}
?>
<input type="hidden" name="token" value="<?php echo $token; ?>">
</form>

Some files were not shown because too many files have changed in this diff Show more