Commit 116df568 authored by 朱招明's avatar 朱招明

鉴权接口

parent 35078fc8
......@@ -4,6 +4,12 @@ APP_KEY=
APP_DEBUG=true
APP_URL=http://localhost
API_STANDARDS_TREE=prs
API_SUBTYPE=smgapi
API_PREFIX=api
API_VERSION=v1
API_DEBUG=true
LOG_CHANNEL=stack
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug
......@@ -57,3 +63,4 @@ VITE_PUSHER_HOST="${PUSHER_HOST}"
VITE_PUSHER_PORT="${PUSHER_PORT}"
VITE_PUSHER_SCHEME="${PUSHER_SCHEME}"
VITE_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
<?php
return [
'name' => 'Admin'
];
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
return new class extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('admin_users', function (Blueprint $table) {
$table->increments('id');
$table->string('username', 190)->unique();
$table->string('password', 60);
$table->string('name');
$table->string('avatar')->nullable();
$table->string('salt');
$table->timestamps();
});
Schema::create('admin_roles', function (Blueprint $table) {
$table->increments('id');
$table->string('name', 50)->unique();
$table->string('slug', 50)->unique();
$table->timestamps();
});
Schema::create('admin_menus', function (Blueprint $table) {
$table->increments('id');
$table->integer('parent_id')->default(0);
$table->integer('order')->default(0);
$table->string('title', 50);
$table->string('icon', 50)->nullable();
$table->string('uri')->nullable();
$table->timestamps();
});
Schema::create('admin_role_users', function (Blueprint $table) {
$table->integer('role_id');
$table->integer('user_id');
$table->index(['role_id', 'user_id']);
$table->timestamps();
});
Schema::create('admin_role_menus', function (Blueprint $table) {
$table->integer('role_id');
$table->integer('menu_id');
$table->index(['role_id', 'menu_id']);
$table->timestamps();
});
Schema::create('admin_operation_logs', function (Blueprint $table) {
$table->increments('id');
$table->integer('user_id');
$table->string('path');
$table->string('method', 10);
$table->string('ip');
$table->text('input');
$table->index('user_id');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('admin_users');
Schema::dropIfExists('admin_roles');
Schema::dropIfExists('admin_menu');
Schema::dropIfExists('admin_role_users');
Schema::dropIfExists('admin_role_menu');
Schema::dropIfExists('admin_operation_log');
}
};
<?php
namespace Modules\Admin\Database\Seeders;
use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
class AdminDatabaseSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
DB::transaction(function (){
DB::table("admin_users")->insert([
"id" => "1",
"username" => "admin",
"name" => "admin",
"salt" => "4IpZw+?%MD1c",
"password" => password_hash(md5('1234564IpZw+?%MD1c'), PASSWORD_DEFAULT),
]);
DB::table("admin_roles")->insert([
"id" => "1",
"name" => "超级管理员",
"slug" => "超级管理员",
]);
DB::table("admin_role_users")->insert([
"role_id" => "1",
"user_id" => "1",
]);
});
}
}
<?php
/**
* @desc
* @author [ZZM]
* @since 2023/10/21
* @copyright
*/
namespace Modules\Admin\Entities;
use Illuminate\Database\Eloquent\Model;
class AdminMenu extends Model
{
protected $fillable = [
'title','uri', 'parent_id', 'icon'
];
}
\ No newline at end of file
<?php
/**
* @desc
* @author [ZZM]
* @since 2023/10/21
* @copyright
*/
namespace Modules\Admin\Entities;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Illuminate\Database\Eloquent\Relations\HasMany;
class AdminRole extends Model
{
protected $fillable = [
'name','slug',
];
public function menu(): BelongsToMany
{
return $this->belongsToMany(AdminMenu::class,'admin_role_menus','role_id','menu_id');
}
}
\ No newline at end of file
<?php
/**
* @desc
* @author [ZZM]
* @since 2023/10/21
* @copyright
*/
namespace Modules\Admin\Entities;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class AdminRoleMenu extends Model
{
protected $fillable = [
'role_id','menu_id'
];
}
\ No newline at end of file
<?php
/**
* @desc
* @author [ZZM]
* @since 2023/10/21
* @copyright
*/
namespace Modules\Admin\Entities;
use Illuminate\Database\Eloquent\Model;
class AdminRoleUser extends Model
{
protected $fillable = [
'role_id','user_id'
];
}
\ No newline at end of file
<?php
/**
* @desc
* @author [ZZM]
* @since 2023/10/21
* @copyright
*/
namespace Modules\Admin\Entities;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Support\Facades\Auth;
use PHPOpenSourceSaver\JWTAuth\Contracts\JWTSubject;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
class AdminUser extends Authenticatable implements JWTSubject
{
protected $fillable = [
'username','password', 'name', 'avatar', 'salt'
];
/**
* Get the identifier that will be stored in the subject claim of the JWT.
*
* @return mixed
*/
public function getJWTIdentifier()
{
return $this->getKey();
}
/**
* Return a key value array, containing any custom claims to be added to the JWT.
*
* @return array
*/
public function getJWTCustomClaims()
{
return [];
}
public function apiLoginAndGetTokenInfo()
{
$auth = auth('api');
return [
'access_token' => $auth->login($this),
'token_type' => 'Bearer',
'expires_in' => $auth->factory()->getTTL() * 60,
];
}
public function apiRefreshTokenTokenInfo()
{
$auth = auth('api');
return [
'access_token' => $auth->refresh(true,true),
'token_type' => 'Bearer',
'expires_in' => $auth->factory()->getTTL() * 60,
];
}
public function roles(): BelongsToMany
{
return $this->belongsToMany(AdminRole::class,'admin_role_users','user_id','role_id');
}
}
\ No newline at end of file
<?php
declare(strict_types=1);
namespace Modules\Admin\Http\Controllers;
use Exception;
use Dingo\Api\Http\Request;
use Illuminate\Support\Facades\DB;
use Modules\Admin\Entities\AdminMenu;
use Modules\Admin\Entities\AdminUser;
use Modules\Admin\Http\Transformers\AccessTokenTransformer;
use Modules\Admin\Http\Transformers\BaseTransformer;
use Modules\Admin\Http\Utils\Helper;
class AuthController extends BaseController
{
/**
* 登录授权
*
* @param Request $request
*/
public function login(Request $request)
{
$req = $request->all();
$username = $req["username"];
$password = $req["password"];
if ($username == "" || $password == "")
{
throw new \Exception("用户名或密码不能为空");
}
$user = AdminUser::where("username", $username)->first();
if (!$user)
{
throw new \Exception("用户名或密码错误");
}
if (!password_verify(md5($password.$user->salt),$user->password))
{
throw new \Exception("用户名或密码错误");
}
return $this->response->item($user, new AccessTokenTransformer())->setStatusCode(201);
}
/**
* 刷新token
* @desc
* @author [ZZM]
* @since 2023/10/21
* @modify
*/
public function refreshToken(){
return $this->response->item($this->user, new AccessTokenTransformer(true))->setStatusCode(201);
}
/**
* 登出
* @desc
* @author [ZZM]
* @since 2023/10/21
* @modify
*/
public function loginOut(){
auth('api')->logout(true);
return $this->response->noContent()->statusCode('204');
}
/**
* 获取配置
* @desc
*
* @param Request $request
*
* @return \Dingo\Api\Http\Response
* @author [ZZM]
* @since 2023/10/21
* @modify
*/
public function apiConfig(Request $request)
{
$user = $this->user;
#角色
$role = $user->roles()->first();
if($role->id == 1){
#超级管理员默认获取全部菜单
$menu = AdminMenu::get();
}else{
#菜单
$menu = $role->menu;
}
$menu = $menu->toArray();
$menu = Helper::makeTree($menu);
$data = [
"menus" => $menu,
];
return $this->response->array(['data'=>$data]);
}
}
<?php
/**
* @desc
* @author [ZZM]
* @since 2023/10/21
* @copyright
*/
namespace Modules\Admin\Http\Controllers;
use Dingo\Api\Routing\Helpers;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Routing\Controller;
class BaseController extends Controller
{
use Helpers,AuthorizesRequests, DispatchesJobs, ValidatesRequests;
}
\ No newline at end of file
<?php
/**
* @desc
* @author [ZZM]
* @since 2023/10/21
* @copyright
*/
namespace Modules\Admin\Http\Controllers;
use Dingo\Api\Http\Request;
use Modules\Admin\Entities\AdminMenu;
use Modules\Admin\Http\Requests\MenuRequest;
use Modules\Admin\Http\Utils\Helper;
class MenuController extends BaseController
{
public function list(){
$menu = AdminMenu::all()->toArray();
$menu = Helper::makeTree($menu);
return $this->response->array(['data'=>$menu]);
}
public function add(MenuRequest $request){
$params = $request->all(['title','uri','parent_id']);
AdminMenu::create($params);
return $this->response->noContent()->statusCode(201);
}
public function detail(){
}
public function edit(){
}
public function delete(){
}
}
\ No newline at end of file
<?php
/**
* @desc
* @author [ZZM]
* @since 2023/10/21
* @copyright
*/
namespace Modules\Admin\Http\Controllers;
use Dingo\Api\Http\Request;
use Illuminate\Support\Facades\DB;
use Modules\Admin\Entities\AdminMenu;
use Modules\Admin\Entities\AdminRole;
use Modules\Admin\Entities\AdminRoleMenu;
use Modules\Admin\Http\Requests\RoleRequest;
class RoleController extends BaseController
{
public function list(){
}
public function add(RoleRequest $request){
$params = $request->all(['name','slug']);
AdminRole::create($params);
return $this->response->noContent()->statusCode(201);
}
public function detail(){
}
public function edit(){
}
public function delete(){
}
public function setRoleMenu(Request $request,$role_id){
$params = $request->all(['menus']);
if(!is_array($params['menus'])){
abort(422,'格式错误');
}
if($role_id == 1){
abort(500,'超级管理员不可编辑权限');
}
$menus = AdminMenu::all()->toArray();
if($error = $this->checkMenu($menus,$params['menus'])){
abort(500,$error);
}
DB::transaction(function () use ($params,$role_id){
AdminRoleMenu::where('role_id',$role_id)->delete();
$insert = [];
foreach ($params['menus'] as $item){
$insert[] = [
'role_id' => $role_id,
'menu_id' => (int)$item,
];
}
if($insert){
AdminRoleMenu::insert($insert);
}
});
return $this->response->noContent()->statusCode(204);
}
/**
* 菜单格式是否正确
* @desc
*
* @param $menus
* @param $input_menu_ids
*
* @return string
* @since 2023/10/21
* @modify
* @author [ZZM]
*/
function checkMenu($menus,$input_menu_ids){
$menu_ids = array_column($menus,'id');
$menu_parent_ids = array_column($menus,'parent_id','id');
foreach ($input_menu_ids as $id){
#不存在的菜单
if(!in_array($id,$menu_ids)){
return '包含不存在的菜单';
}
#选择了子菜单,但是没包含父级菜单
$parent_id = $menu_parent_ids[$id];
if($parent_id > 0 && !in_array($parent_id,$input_menu_ids)){
return '未包含父级菜单';
}
}
return '';
}
}
\ No newline at end of file
<?php
/**
* @desc
* @author [ZZM]
* @since 2023/10/21
* @copyright
*/
namespace Modules\Admin\Http\Controllers;
use Dingo\Api\Http\Request;
use Illuminate\Support\Facades\DB;
use Modules\Admin\Entities\AdminRoleUser;
use Modules\Admin\Entities\AdminUser;
use Modules\Admin\Http\Requests\UserRequest;
use Modules\Admin\Http\Transformers\AdminUserTransformer;
use Modules\Admin\Http\Utils\Helper;
class UserController extends BaseController
{
public function list(){
$list = AdminUser::all();
return $this->response->collection($list,new AdminUserTransformer());
}
public function add(UserRequest $request){
$params = $request->all(['username','password','name','avatar','role_id']);
#默认密码
if(empty($params['password'])){
$params['password'] = '123456';
}
$params['salt'] = Helper::generateRandomString();
$params['password'] = password_hash(md5($params['password'].$params['salt']), PASSWORD_DEFAULT);
$user = DB::transaction(function () use ($params){
$role_id = $params['role_id'];
unset($params['role_id']);
$user = AdminUser::create($params);
AdminRoleUser::create(['role_id'=>$role_id,'user_id'=>$user->id]);
return $user;
});
return $this->response->item($user,new AdminUserTransformer());
}
public function detail(){
}
public function edit(){
}
public function delete(){
}
}
\ No newline at end of file
<?php
namespace Modules\Admin\Http\Requests;
use Dingo\Api\Http\FormRequest;
use Dingo\Api\Http\Request;
class BaseRequest extends FormRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
$method = strtolower($this->method()).'Rules';
$rules = $this->$method();
foreach ($rules as &$rule) {
if (is_string($rule) && strpos($rule, 'bail') === false) {
$rule = 'bail|'.$rule;
} elseif (is_array($rule) && !in_array('bail', $rule)) {
array_unshift($rule, 'bail');
}
}
return $rules;
}
protected function postRules()
{
return [];
}
protected function getRules()
{
return [];
}
protected function putRules()
{
return [];
}
protected function deleteRules()
{
return [];
}
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* @return bool
*/
public function isApi()
{
if ($this->container['request'] instanceof Request) {
return true;
}
return false;
}
}
<?php
namespace Modules\Admin\Http\Requests;
class MenuRequest extends BaseRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function postRules()
{
return [
'parent_id' => 'integer|exists:admin_menus',
'title' => 'bail|required',
];
}
public function messages()
{
return [
'title.required' => '菜单名称必须',
'parent_id.exists' => '父菜单不存在',
];
}
}
<?php
namespace Modules\Admin\Http\Requests;
class RoleRequest extends BaseRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function postRules()
{
return [
'name' => 'bail|required',
'slug' => 'bail|required',
];
}
public function messages()
{
return [
'name.required' => '名称必须',
'slug.required' => '描述必须',
];
}
}
<?php
namespace Modules\Admin\Http\Requests;
class UserRequest extends BaseRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function postRules()
{
return [
'username' => 'bail|required|unique:admin_users',
'name' => 'bail|required',
'role_id' => 'bail|required|exists:admin_roles,id',
];
}
public function messages()
{
return [
'username.required' => '用户名不能为空',
'username.unique' => '用户名重复',
'name.required' => '账号名称不能为空',
'role_id.required' => '角色必须',
'role_id.exists' => '角色不存在',
];
}
}
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2018/6/15
* Time: 9:47
*/
namespace Modules\Admin\Http\Transformers;
use Illuminate\Support\Traits\Macroable;
class AccessTokenTransformer extends BaseTransformer
{
use Macroable;
protected $refresh = false;
public function __construct($refresh = false) {
$this->refresh = $refresh;
parent::__construct();
}
protected array $availableIncludes = ['user'];
/**
* @OA\Schema(
* description="Token信息",
* type="object",
* schema="Token",
* @OA\Property(property="access_token", type="string", description="Token"),
* @OA\Property(property="token_type", type="string", description="Token类型"),
* @OA\Property(property="expires_in", type="integer", description="过期时间"),
* @OA\Property(property="user", type="object", description="用户", @OA\Property(property="data", type="object", ref="#/components/schemas/User"))
* )
*/
public function transform($user)
{
if($this->refresh){
return $user->apiRefreshTokenTokenInfo();
}
return $user->apiLoginAndGetTokenInfo();
}
public function includeUser($user)
{
return $this->item($user, new AdminUserTransformer());
}
}
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2018/6/13
* Time: 11:12
*/
namespace Modules\Admin\Http\Transformers;
use Illuminate\Support\Traits\Macroable;
use Modules\Admin\Entities\AdminUser;
use Modules\Admin\Http\Utils\Helper;
class AdminUserTransformer extends BaseTransformer
{
use Macroable;
protected $hideDetail = false;
public function __construct($hideDetail = false)
{
$this->hideDetail = $hideDetail;
parent::__construct();
}
/**
* @OA\Schema(
* description="用户信息",
* type="object",
* schema="User",
* @OA\Property(property="id", type="integer", description="用户ID"),
* @OA\Property(property="name", type="string", description="用户名"),
* @OA\Property(property="email", type="string", description="邮箱"),
* @OA\Property(property="phone", type="string", description="手机号"),
* @OA\Property(property="created_at", type="string", description="注册时间"),
* @OA\Property(property="updated_at", type="string", description="更新时间")
* )
*/
public function transform(AdminUser $user)
{
$return = ['id', 'username', 'avatar', 'name', 'sex', 'created_at', 'updated_at'];
return Helper::mapAttr($user,$return);
}
}
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2018/6/27
* Time: 17:44
*/
namespace Modules\Admin\Http\Transformers;
use League\Fractal\TransformerAbstract;
class BaseTransformer extends TransformerAbstract
{
protected static $extraIncludes = [];
protected static $extraDefaultIncludes = [];
public function __construct()
{
if (!isset(static::$extraIncludes[static::class])) {
static::$extraIncludes[static::class] = [];
}
if (!isset(static::$extraDefaultIncludes[static::class])) {
static::$extraDefaultIncludes[static::class] = [];
}
$this->availableIncludes = array_merge($this->availableIncludes, static::$extraIncludes[static::class]);
$this->defaultIncludes = array_merge($this->defaultIncludes, static::$extraDefaultIncludes[static::class]);
}
public static function addIncludes($name)
{
if (!isset(static::$extraIncludes[static::class])) {
static::$extraIncludes[static::class] = [];
}
$name = (array) $name;
$temp = [];
foreach ($name as $key => $value) {
if (is_string($key) && $value instanceof \Closure) {
static::macro('include'.ucfirst($key), $value);
$value = $key;
}
$temp[] = $value;
}
static::$extraIncludes[static::class] = array_merge(static::$extraIncludes[static::class], $temp);
}
public static function addDefaultIncludes($name)
{
if (!isset(static::$extraDefaultIncludes[static::class])) {
static::$extraDefaultIncludes[static::class] = [];
}
static::$extraDefaultIncludes[static::class] += (array) $name;
}
/**
* 修改返回
*
* @param $arr
*
* @return mixed
*/
public function alter($arr)
{
return $arr;
}
public static function checkExtraInclude($key)
{
static $extra_includes;
if ($extra_includes == null) {
$extra_includes = array_map('trim', explode(',', request('extra_include', '')));
}
return array_search($key, $extra_includes) === false ? false : true;
}
public function single($value, $transformer)
{
return $value ? $this->item($value, $transformer) : null;
}
protected function hasCount($model, $field)
{
return $this->primitive(optional($model->$field)->count??0);
}
}
<?php
declare(strict_types=1);
namespace Modules\Admin\Http\Utils;
use Carbon\Carbon;
class Helper {
static function makeTree(array $elements, $parentId = 0) {
$branch = [];
foreach ($elements as $element) {
if ($element['parent_id'] == $parentId) {
$children = self::makeTree($elements, $element['id']);
if ($children) {
$element['children'] = $children;
}
$branch[] = $element;
}
}
return $branch;
}
/**
* 随机字符串
* @desc
*
* @param int $length
*
* @return string
* @author [ZZM]
* @since 2023/10/21
* @modify
*/
static function generateRandomString($length = 12) {
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()-_+=<>?';
$charLength = strlen($characters);
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, $charLength - 1)];
}
return $randomString;
}
static function mapAttr($obj, $keys = [])
{
$request = request();
$temp = [];
$fields = $request->get('fields', '');
$fields = $fields == '' ? [] : explode(',', $fields);
$exclude_fields = $request->get('exclude_fields', '');
$exclude_fields = $exclude_fields == '' ? [] : explode(',', $exclude_fields);
foreach ($keys as $index => $key) {
if (!is_numeric($index)) {
if (is_string($key) && \Illuminate\Support\Str::startsWith($key, '_call:')) {
[$class, $method, $arg_str] = explode('@', substr($key, 6).'@@');
$args = explode(',', $arg_str);
array_unshift($args, $obj);
$temp[$index] = (new $class())->$method(...$args);
} else {
$temp[$index] = $key;
}
} else {
if (strpos($key, '.')) {
[$relation, $attr] = explode('.', $key);
$temp[$key] = optional($obj->$relation)->$attr;
} else {
if (!empty($fields) && !in_array($key, $fields)) {
continue;
}
if (in_array($key, $exclude_fields)) {
continue;
}
if (is_string($key) && \Illuminate\Support\Str::endsWith($key, '_full_url')) {
$key2 = substr($key, 0, -9);
$temp[$key] = $obj->$key ?? file_url($obj->$key2);
} else {
$temp[$key] = (is_object($obj->$key) && ($obj->$key instanceof Carbon)) ? $obj->$key->toDateTimeString() : $obj->$key;
}
}
}
}
return $temp;
}
}
<?php
declare(strict_types=1);
namespace Modules\Admin\Http\Utils;
use Illuminate\Support\Facades\Route;
class RouteRegister {
public static function registerApi($api,$route, $controller) {
#列表
$api->get("{$route}/list", "{$controller}@list");
#添加
$api->post("{$route}/add", "{$controller}@add");
#详情
$api->get("{$route}/{id}/show", "{$controller}@detail");
#编辑
$api->put("{$route}/{id}/edit", "{$controller}@edit");
#删除
$api->delete("{$route}/{id}/delete", "{$controller}@delete");
}
}
<?php
namespace Modules\Admin\Providers;
use Illuminate\Support\ServiceProvider;
use Modules\Admin\Http\Service\AuthService;
use Modules\Admin\Http\Utils\AuthInterface;
class AdminServiceProvider extends ServiceProvider
{
/**
* @var string $moduleName
*/
protected $moduleName = 'Admin';
/**
* @var string $moduleNameLower
*/
protected $moduleNameLower = 'admin';
/**
* Boot the application events.
*
* @return void
*/
public function boot()
{
$this->registerTranslations();
$this->registerConfig();
$this->registerViews();
$this->loadMigrationsFrom(module_path($this->moduleName, 'Database/Migrations'));
$this->registerAntOAInterfaces();
}
/**
* Register the service provider.
*
* @return void
*/
public function register()
{
$this->app->register(RouteServiceProvider::class);
}
/**
* Register config.
*
* @return void
*/
protected function registerConfig()
{
$this->publishes([
module_path($this->moduleName, 'Config/config.php') => config_path($this->moduleNameLower . '.php'),
], 'config');
$this->mergeConfigFrom(
module_path($this->moduleName, 'Config/config.php'), $this->moduleNameLower
);
}
/**
* Register views.
*
* @return void
*/
public function registerViews()
{
$viewPath = resource_path('views/modules/' . $this->moduleNameLower);
$sourcePath = module_path($this->moduleName, 'Resources/views');
$this->publishes([
$sourcePath => $viewPath
], ['views', $this->moduleNameLower . '-module-views']);
$this->loadViewsFrom(array_merge($this->getPublishableViewPaths(), [$sourcePath]), $this->moduleNameLower);
}
/**
* Register translations.
*
* @return void
*/
public function registerTranslations()
{
$langPath = resource_path('lang/modules/' . $this->moduleNameLower);
if (is_dir($langPath)) {
$this->loadTranslationsFrom($langPath, $this->moduleNameLower);
$this->loadJsonTranslationsFrom($langPath);
} else {
$this->loadTranslationsFrom(module_path($this->moduleName, 'Resources/lang'), $this->moduleNameLower);
$this->loadJsonTranslationsFrom(module_path($this->moduleName, 'Resources/lang'));
}
}
/**
* Get the services provided by the provider.
*
* @return array
*/
public function provides()
{
return [];
}
private function getPublishableViewPaths(): array
{
$paths = [];
foreach (config('view.paths') as $path) {
if (is_dir($path . '/modules/' . $this->moduleNameLower)) {
$paths[] = $path . '/modules/' . $this->moduleNameLower;
}
}
return $paths;
}
private function registerAntOAInterfaces() {
$this->app->bind(AuthInterface::class,AuthService::class);
}
}
<?php
namespace Modules\Admin\Providers;
use Illuminate\Support\Facades\Route;
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
class RouteServiceProvider extends ServiceProvider
{
/**
* The module namespace to assume when generating URLs to actions.
*
* @var string
*/
protected $moduleNamespace = 'Modules\Admin\Http\Controllers';
/**
* Called before routes are registered.
*
* Register any model bindings or pattern based filters.
*
* @return void
*/
public function boot()
{
parent::boot();
}
/**
* Define the routes for the application.
*
* @return void
*/
public function map()
{
$this->mapApiRoutes();
//
$this->mapWebRoutes();
}
/**
* Define the "web" routes for the application.
*
* These routes all receive session state, CSRF protection, etc.
*
* @return void
*/
protected function mapWebRoutes()
{
Route::middleware('web')
->namespace($this->moduleNamespace)
->group(module_path('Admin', '/Routes/web.php'));
}
/**
* Define the "api" routes for the application.
*
* These routes are typically stateless.
*
* @return void
*/
protected function mapApiRoutes()
{
Route::prefix('api')
->middleware('api')
->namespace($this->moduleNamespace)
->group(module_path('Admin', '/Routes/api.php'));
}
}
@extends('admin::layouts.master')
@section('content')
<h1>Hello World</h1>
<p>
This view is loaded from module: {!! config('admin.name') !!}
</p>
@endsection
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Module Admin</title>
{{-- Laravel Vite - CSS File --}}
{{-- {{ module_vite('build-admin', 'Resources/assets/sass/app.scss') }} --}}
</head>
<body>
@yield('content')
{{-- Laravel Vite - JS File --}}
{{-- {{ module_vite('build-admin', 'Resources/assets/js/app.js') }} --}}
</body>
</html>
<?php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| is assigned the "api" middleware group. Enjoy building your API!
|
*/
$api = app('Dingo\Api\Routing\Router');
$api->version('v1', [
'namespace' => 'Modules\Admin\Http\Controllers',
'prefix' => 'api',
], function ($api) {
#登录
$api->post('auth/login', 'AuthController@login');
$api->group(['middleware' => 'api.auth'], function ($api) {
#刷新token
$api->get('auth/refresh', 'AuthController@refreshToken');
#登出
$api->put('auth/login_out', 'AuthController@loginOut');
#配置
$api->get('configs', 'AuthController@apiConfig');
#菜单
\Modules\Admin\Http\Utils\RouteRegister::registerApi($api,'menu','MenuController');
#用户
\Modules\Admin\Http\Utils\RouteRegister::registerApi($api,'user','UserController');
#角色
\Modules\Admin\Http\Utils\RouteRegister::registerApi($api,'role','RoleController');
#角色权限
$api->put('role/{id}/set_menu', 'RoleController@setRoleMenu');
});
});
<?php
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
{
"name": "nwidart/admin",
"description": "",
"authors": [
{
"name": "Nicolas Widart",
"email": "n.widart@gmail.com"
}
],
"extra": {
"laravel": {
"providers": [],
"aliases": {
}
}
},
"autoload": {
"psr-4": {
"Modules\\Admin\\": ""
}
}
}
{
"name": "Admin",
"alias": "admin",
"description": "",
"keywords": [],
"priority": 0,
"providers": [
"Modules\\Admin\\Providers\\AdminServiceProvider"
],
"files": []
}
{
"private": true,
"scripts": {
"dev": "vite",
"build": "vite build"
},
"devDependencies": {
"axios": "^0.21.4",
"dotenv": "^10.0.0",
"dotenv-expand": "^5.1.0",
"laravel-vite-plugin": "^0.6.0",
"lodash": "^4.17.21",
"postcss": "^8.3.7",
"vite": "^3.0.9"
}
}
const dotenvExpand = require('dotenv-expand');
dotenvExpand(require('dotenv').config({ path: '../../.env'/*, debug: true*/}));
import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';
export default defineConfig({
build: {
outDir: '../../public/build-admin',
emptyOutDir: true,
manifest: true,
},
plugins: [
laravel({
publicDirectory: '../../public',
buildDirectory: 'build-admin',
input: [
__dirname + '/Resources/assets/sass/app.scss',
__dirname + '/Resources/assets/js/app.js'
],
refresh: true,
}),
],
});
<?php
namespace App\Admin\Controllers;
use Encore\Admin\Controllers\AuthController as BaseAuthController;
class AuthController extends BaseAuthController
{
}
<?php
namespace App\Admin\Controllers;
use Encore\Admin\Controllers\AdminController;
use Encore\Admin\Form;
use Encore\Admin\Grid;
use Encore\Admin\Show;
class ExampleController extends AdminController
{
/**
* Title for current resource.
*
* @var string
*/
protected $title = 'Example controller';
/**
* Make a grid builder.
*
* @return Grid
*/
protected function grid()
{
$grid = new Grid(new ExampleModel);
$grid->column('id', __('ID'))->sortable();
$grid->column('created_at', __('Created at'));
$grid->column('updated_at', __('Updated at'));
return $grid;
}
/**
* Make a show builder.
*
* @param mixed $id
* @return Show
*/
protected function detail($id)
{
$show = new Show(ExampleModel::findOrFail($id));
$show->field('id', __('ID'));
$show->field('created_at', __('Created at'));
$show->field('updated_at', __('Updated at'));
return $show;
}
/**
* Make a form builder.
*
* @return Form
*/
protected function form()
{
$form = new Form(new ExampleModel);
$form->display('id', __('ID'));
$form->display('created_at', __('Created At'));
$form->display('updated_at', __('Updated At'));
return $form;
}
}
<?php
namespace App\Admin\Controllers;
use App\Http\Controllers\Controller;
use Encore\Admin\Controllers\Dashboard;
use Encore\Admin\Layout\Column;
use Encore\Admin\Layout\Content;
use Encore\Admin\Layout\Row;
class HomeController extends Controller
{
public function index(Content $content)
{
return $content
->title('Dashboard')
->description('Description...')
->row(Dashboard::title())
->row(function (Row $row) {
$row->column(4, function (Column $column) {
$column->append(Dashboard::environment());
});
$row->column(4, function (Column $column) {
$column->append(Dashboard::extensions());
});
$row->column(4, function (Column $column) {
$column->append(Dashboard::dependencies());
});
});
}
}
<?php
/**
* Laravel-admin - admin builder based on Laravel.
* @author z-song <https://github.com/z-song>
*
* Bootstraper for Admin.
*
* Here you can remove builtin form field:
* Encore\Admin\Form::forget(['map', 'editor']);
*
* Or extend custom form field:
* Encore\Admin\Form::extend('php', PHPEditor::class);
*
* Or require js and css assets:
* Admin::css('/packages/prettydocs/css/styles.css');
* Admin::js('/packages/prettydocs/js/main.js');
*
*/
Encore\Admin\Form::forget(['map', 'editor']);
<?php
use Illuminate\Routing\Router;
Admin::routes();
Route::group([
'prefix' => config('admin.route.prefix'),
'namespace' => config('admin.route.namespace'),
'middleware' => config('admin.route.middleware'),
'as' => config('admin.route.prefix') . '.',
], function (Router $router) {
$router->get('/', 'HomeController@index')->name('home');
});
......@@ -6,15 +6,20 @@
"license": "MIT",
"require": {
"php": "^8.1",
"api-ecosystem-for-laravel/dingo-api": "^4.1",
"guzzlehttp/guzzle": "^7.2",
"laravel/framework": "^10.10",
"laravel/sanctum": "^3.2",
"laravel/tinker": "^2.8"
"laravel/framework": "10.*",
"laravel/tinker": "^2.8",
"namshi/jose": "^7.2",
"nesbot/carbon": "^2.71",
"nwidart/laravel-modules": "^10.0",
"php-open-source-saver/jwt-auth": "^2.1"
},
"require-dev": {
"fakerphp/faker": "^1.9.1",
"laravel/pint": "^1.0",
"laravel/sail": "^1.18",
"mnabialek/laravel-sql-logger": "^2.2",
"mockery/mockery": "^1.4.4",
"nunomaduro/collision": "^7.0",
"phpunit/phpunit": "^10.1",
......@@ -23,6 +28,7 @@
"autoload": {
"psr-4": {
"App\\": "app/",
"Modules\\": "Modules/",
"Database\\Factories\\": "database/factories/",
"Database\\Seeders\\": "database/seeders/"
}
......
This diff is collapsed.
<?php
return [
/*
|--------------------------------------------------------------------------
| Standards Tree
|--------------------------------------------------------------------------
|
| Versioning an API with Dingo revolves around content negotiation and
| custom MIME types. A custom type will belong to one of three
| standards trees, the Vendor tree (vnd), the Personal tree
| (prs), and the Unregistered tree (x).
|
| By default the Unregistered tree (x) is used, however, should you wish
| to you can register your type with the IANA. For more details:
| https://tools.ietf.org/html/rfc6838
|
*/
'standardsTree' => env('API_STANDARDS_TREE', 'x'),
/*
|--------------------------------------------------------------------------
| API Subtype
|--------------------------------------------------------------------------
|
| Your subtype will follow the standards tree you use when used in the
| "Accept" header to negotiate the content type and version.
|
| For example: Accept: application/x.SUBTYPE.v1+json
|
*/
'subtype' => env('API_SUBTYPE', ''),
/*
|--------------------------------------------------------------------------
| Default API Version
|--------------------------------------------------------------------------
|
| This is the default version when strict mode is disabled and your API
| is accessed via a web browser. It's also used as the default version
| when generating your APIs documentation.
|
*/
'version' => env('API_VERSION', 'v1'),
/*
|--------------------------------------------------------------------------
| Default API Prefix
|--------------------------------------------------------------------------
|
| A default prefix to use for your API routes so you don't have to
| specify it for each group.
|
*/
'prefix' => env('API_PREFIX', null),
/*
|--------------------------------------------------------------------------
| Default API Domain
|--------------------------------------------------------------------------
|
| A default domain to use for your API routes so you don't have to
| specify it for each group.
|
*/
'domain' => env('API_DOMAIN', null),
/*
|--------------------------------------------------------------------------
| Name
|--------------------------------------------------------------------------
|
| When documenting your API using the API Blueprint syntax you can
| configure a default name to avoid having to manually specify
| one when using the command.
|
*/
'name' => env('API_NAME', null),
/*
|--------------------------------------------------------------------------
| Conditional Requests
|--------------------------------------------------------------------------
|
| Globally enable conditional requests so that an ETag header is added to
| any successful response. Subsequent requests will perform a check and
| will return a 304 Not Modified. This can also be enabled or disabled
| on certain groups or routes.
|
*/
'conditionalRequest' => env('API_CONDITIONAL_REQUEST', true),
/*
|--------------------------------------------------------------------------
| Strict Mode
|--------------------------------------------------------------------------
|
| Enabling strict mode will require clients to send a valid Accept header
| with every request. This also voids the default API version, meaning
| your API will not be browsable via a web browser.
|
*/
'strict' => env('API_STRICT', false),
/*
|--------------------------------------------------------------------------
| Debug Mode
|--------------------------------------------------------------------------
|
| Enabling debug mode will result in error responses caused by thrown
| exceptions to have a "debug" key that will be populated with
| more detailed information on the exception.
|
*/
'debug' => env('API_DEBUG', false),
/*
|--------------------------------------------------------------------------
| Generic Error Format
|--------------------------------------------------------------------------
|
| When some HTTP exceptions are not caught and dealt with the API will
| generate a generic error response in the format provided. Any
| keys that aren't replaced with corresponding values will be
| removed from the final response.
|
*/
'errorFormat' => [
'message' => ':message',
'errors' => ':errors',
'code' => ':code',
'status_code' => ':status_code',
'debug' => ':debug',
],
/*
|--------------------------------------------------------------------------
| API Middleware
|--------------------------------------------------------------------------
|
| Middleware that will be applied globally to all API requests.
|
*/
'middleware' => [
],
/*
|--------------------------------------------------------------------------
| Authentication Providers
|--------------------------------------------------------------------------
|
| The authentication providers that should be used when attempting to
| authenticate an incoming API request.
|
*/
'auth' => [
'jwt' => 'Dingo\Api\Auth\Provider\JWT',
],
/*
|--------------------------------------------------------------------------
| Throttling / Rate Limiting
|--------------------------------------------------------------------------
|
| Consumers of your API can be limited to the amount of requests they can
| make. You can create your own throttles or simply change the default
| throttles.
|
*/
'throttling' => [
],
/*
|--------------------------------------------------------------------------
| Response Transformer
|--------------------------------------------------------------------------
|
| Responses can be transformed so that they are easier to format. By
| default a Fractal transformer will be used to transform any
| responses prior to formatting. You can easily replace
| this with your own transformer.
|
*/
'transformer' => env('API_TRANSFORMER', Dingo\Api\Transformer\Adapter\Fractal::class),
/*
|--------------------------------------------------------------------------
| Response Formats
|--------------------------------------------------------------------------
|
| Responses can be returned in multiple formats by registering different
| response formatters. You can also customize an existing response
| formatter with a number of options to configure its output.
|
*/
'defaultFormat' => env('API_DEFAULT_FORMAT', 'json'),
'formats' => [
'json' => Dingo\Api\Http\Response\Format\Json::class,
],
'formatsOptions' => [
'json' => [
'pretty_print' => env('API_JSON_FORMAT_PRETTY_PRINT_ENABLED', false),
'indent_style' => env('API_JSON_FORMAT_INDENT_STYLE', 'space'),
'indent_size' => env('API_JSON_FORMAT_INDENT_SIZE', 2),
],
],
];
......@@ -14,7 +14,7 @@ return [
*/
'defaults' => [
'guard' => 'web',
'guard' => 'api',
'passwords' => 'users',
],
......@@ -40,6 +40,10 @@ return [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'jwt',
'provider' => 'users',
],
],
/*
......@@ -62,7 +66,7 @@ return [
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Models\User::class,
'model' => \Modules\Admin\Entities\AdminUser::class,
],
// 'users' => [
......@@ -110,6 +114,4 @@ return [
|
*/
'password_timeout' => 10800,
];
This diff is collapsed.
This diff is collapsed.
<?php
use Laravel\Sanctum\Sanctum;
return [
/*
|--------------------------------------------------------------------------
| Stateful Domains
|--------------------------------------------------------------------------
|
| Requests from the following domains / hosts will receive stateful API
| authentication cookies. Typically, these should include your local
| and production domains which access your API via a frontend SPA.
|
*/
'stateful' => explode(',', env('SANCTUM_STATEFUL_DOMAINS', sprintf(
'%s%s',
'localhost,localhost:3000,127.0.0.1,127.0.0.1:8000,::1',
Sanctum::currentApplicationUrlWithPort()
))),
/*
|--------------------------------------------------------------------------
| Sanctum Guards
|--------------------------------------------------------------------------
|
| This array contains the authentication guards that will be checked when
| Sanctum is trying to authenticate a request. If none of these guards
| are able to authenticate the request, Sanctum will use the bearer
| token that's present on an incoming request for authentication.
|
*/
'guard' => ['web'],
/*
|--------------------------------------------------------------------------
| Expiration Minutes
|--------------------------------------------------------------------------
|
| This value controls the number of minutes until an issued token will be
| considered expired. If this value is null, personal access tokens do
| not expire. This won't tweak the lifetime of first-party sessions.
|
*/
'expiration' => null,
/*
|--------------------------------------------------------------------------
| Sanctum Middleware
|--------------------------------------------------------------------------
|
| When authenticating your first-party SPA with Sanctum you may need to
| customize some of the middleware Sanctum uses while processing the
| request. You may change the middleware listed below as required.
|
*/
'middleware' => [
'verify_csrf_token' => App\Http\Middleware\VerifyCsrfToken::class,
'encrypt_cookies' => App\Http\Middleware\EncryptCookies::class,
],
];
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('users');
}
};
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('password_reset_tokens', function (Blueprint $table) {
$table->string('email')->primary();
$table->string('token');
$table->timestamp('created_at')->nullable();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('password_reset_tokens');
}
};
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('failed_jobs', function (Blueprint $table) {
$table->id();
$table->string('uuid')->unique();
$table->text('connection');
$table->text('queue');
$table->longText('payload');
$table->longText('exception');
$table->timestamp('failed_at')->useCurrent();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('failed_jobs');
}
};
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('personal_access_tokens', function (Blueprint $table) {
$table->id();
$table->morphs('tokenable');
$table->string('name');
$table->string('token', 64)->unique();
$table->text('abilities')->nullable();
$table->timestamp('last_used_at')->nullable();
$table->timestamp('expires_at')->nullable();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('personal_access_tokens');
}
};
<?php
return [
'online' => 'متصل',
'login' => 'تسجيل الدخول',
'logout' => 'تسجيل الخروج',
'setting' => 'الضبط',
'name' => 'الاسم',
'username' => 'اسم المستخدم',
'password' => 'الرقم السري',
'password_confirmation' => 'تأكيد الرقم السري',
'remember_me' => 'تذكرني',
'user_setting' => 'ضبط المستخدم',
'avatar' => 'الصورة',
'list' => 'القائمة',
'new' => 'جديد',
'create' => 'انشاء',
'delete' => 'مسح',
'remove' => 'حذف',
'edit' => 'تعديل',
'view' => 'عرض',
'continue_editing' => 'مواصلة التحرير',
'continue_creating' => 'تواصل خلق',
'detail' => 'التفاصيل',
'browse' => 'تصفح',
'reset' => 'تفريغ',
'export' => 'تصدير',
'batch_delete' => 'مسح بالجملة',
'save' => 'حفظ',
'refresh' => 'تحديث',
'order' => 'ترتيب',
'expand' => 'تكبير',
'collapse' => 'تصغير',
'filter' => 'تصنيف',
'search' => 'بحث',
'close' => 'اغلاق',
'show' => 'عرض',
'entries' => 'المدخلات',
'captcha' => 'كود التحقق',
'action' => 'الحدث',
'title' => 'العنوان',
'description' => 'الوصف',
'back' => 'عودة',
'back_to_list' => 'العودة الى القائمة',
'submit' => 'ارسال',
'menu' => 'القائمة',
'input' => 'المدخل',
'succeeded' => 'تمت بنجاح',
'failed' => 'فشل',
'delete_confirm' => 'هل انت متاكد من مسح هذا العنصر ',
'delete_succeeded' => 'تم الحذف بنجاح ! ',
'delete_failed' => 'فشل الحذف !',
'update_succeeded' => 'تم التعديل بنجاح !',
'save_succeeded' => 'تم الحفظ !',
'refresh_succeeded' => 'تم التحديث !',
'login_successful' => 'تم تسجيل الدخول بنجاح',
'choose' => 'اختر',
'choose_file' => 'اختر الملف',
'choose_image' => 'اختر الصورة',
'more' => 'المزيد',
'deny' => 'ليس لديك الاذن',
'administrator' => 'مسئول',
'roles' => 'القواعد',
'permissions' => 'الصلاحيات',
'slug' => 'المعرف',
'created_at' => 'تاريخ الانشاء',
'updated_at' => 'تاريخ التعديل',
'alert' => 'تحذير',
'parent_id' => 'الاصل',
'icon' => 'الرمز',
'uri' => 'URI',
'operation_log' => 'سجل التشغيل',
'parent_select_error' => 'خطأ في تحديد الاصل',
'pagination' => [
'range' => 'عرض :first الى :last من :total المدخلات',
],
'role' => 'القاعدة',
'permission' => 'الصلاحية',
'route' => 'المسار',
'confirm' => 'تأكيد',
'cancel' => 'إلغاء',
'http' => [
'method' => 'HTTP method',
'path' => 'HTTP path',
],
'all_methods_if_empty' => 'كل الوسائل فارغة',
'all' => 'الكل',
'current_page' => 'الصفحة الحالية',
'selected_rows' => 'الصفوف المختارة',
'upload' => 'رفع',
'new_folder' => 'مجلد جديد',
'time' => 'الوقت',
'size' => 'الحجم',
'listbox' => [
'text_total' => 'عرض الكل {0}',
'text_empty' => 'قائمة فارغة',
'filtered' => '{0} / {1}',
'filter_clear' => 'عرض الكل',
'filter_placeholder' => 'تنقية',
],
'menu_titles' => [],
'prev' => 'السابق',
'next' => 'التالي',
'quick_create' => 'إضافة سريعة',
];
<?php
return [
'online' => 'Aktiv',
'login' => 'Giriş',
'logout' => 'Çıxış',
'setting' => 'Ayarlar',
'name' => 'Ad',
'username' => 'İstifadəçi adı',
'password' => 'Şifrə',
'password_confirmation' => 'Şifrənin tekrarı',
'remember_me' => 'Məni xatırla',
'user_setting' => 'İstifadəçi ayarları',
'avatar' => 'Profil şəkli',
'list' => 'List',
'new' => 'Yeni',
'create' => 'Yarat',
'delete' => 'Sil',
'remove' => 'Kənarlaşdırın',
'edit' => 'Yenilə',
'view' => 'Bax',
'detail' => 'Detallar',
'browse' => 'Göz atın',
'reset' => 'Təmizlə',
'export' => 'İxrac edin',
'batch_delete' => 'Hamısını sil',
'save' => 'Yaddaşa ver',
'refresh' => 'Yenile',
'order' => 'Sırala',
'expand' => 'Genişlət',
'collapse' => 'Daralt',
'filter' => 'Filtrlə',
'search' => 'axtarış',
'close' => 'Bağla',
'show' => 'Göstər',
'entries' => 'qeydlər',
'captcha' => 'Doğrulama',
'action' => 'Fəaliyyət',
'title' => 'Başlıq',
'description' => 'Açıqlama',
'back' => 'Geri',
'back_to_list' => 'Listə geri qayıt',
'submit' => 'Göndər',
'continue_editing' => 'Redaktəyə davam et',
'continue_creating' => 'Yaratmağa davam et',
'menu' => 'Menyu',
'input' => 'Giriş',
'succeeded' => 'Uğurlu',
'failed' => 'Xəta baş verdi',
'delete_confirm' => 'Silmək istədiyinizə əminsiniz?',
'delete_succeeded' => 'Uğurla silindi!',
'delete_failed' => 'Silinərkən xəta baş verdi!',
'update_succeeded' => 'Uğurla yeniləndi!',
'save_succeeded' => 'Uğurla yadda saxlanıldı!',
'refresh_succeeded' => 'Uğurla yeniləndi!',
'login_successful' => 'Giriş uğurlu oldu',
'choose' => 'Seçin',
'choose_file' => 'Fayl seçin',
'choose_image' => 'Şəkil seçin',
'more' => 'Daha çox',
'deny' => 'İcazə yoxdur',
'administrator' => 'Rəhbər',
'roles' => 'Rollar',
'permissions' => 'İcazələr',
'slug' => 'Qalıcı link',
'created_at' => 'Yaradılma tarixi',
'updated_at' => 'Yenilənmə tarixi',
'alert' => 'Xəbərdarlıq',
'parent_id' => 'Valideyn',
'icon' => 'İkon',
'uri' => 'URL',
'operation_log' => 'Əməliyyat tarixçəsi',
'parent_select_error' => 'Üst xəta',
'pagination' => [
'range' => ':total qeyd içindən :first dən :last -ə kimi',
],
'role' => 'Rol',
'permission' => 'İcazə',
'route' => 'Yol',
'confirm' => 'Təsdiqlə',
'cancel' => 'Ləğv',
'http' => [
'method' => 'HTTP methodu',
'path' => 'HTTP qovluğu',
],
'all_methods_if_empty' => 'Bütün metodlar boşdursa',
'all' => 'Hamısı',
'current_page' => 'Cari səhifə',
'selected_rows' => 'Seçilənlər',
'upload' => 'Yüklə',
'new_folder' => 'Yeni qovluq',
'time' => 'Zaman',
'size' => 'Ölçü',
'listbox' => [
'text_total' => 'Ümumi {0} qeyd',
'text_empty' => 'Boş list',
'filtered' => '{0} / {1}',
'filter_clear' => 'Hamısını göstər',
'filter_placeholder' => 'Filtrlə',
],
'menu_titles' => [],
];
<?php
return [
'online' => 'অনলাইন',
'login' => 'লগিন',
'logout' => 'লগ আউট',
'setting' => 'সেটিংস',
'name' => 'নাম',
'username' => 'ব্যবহারকারীর নাম',
'password' => 'পাসওয়ার্ড',
'password_confirmation' => 'পাসওয়ার্ড নিশ্চিতকরণ',
'remember_me' => 'আমাকে মনে রাখুন',
'user_setting' => 'ব্যবহারকারীর সেটিংস',
'avatar' => 'ছবি',
'list' => 'তালিকা',
'new' => 'নতুন',
'create' => 'তৈরি করুন',
'delete' => 'মুছে ফেলুন',
'remove' => 'সরান',
'edit' => 'সম্পাদনা',
'view' => 'দেখুন',
'continue_editing' => 'সম্পাদনা অব্যাহত রাখুন',
'continue_creating' => 'তৈরি অব্যাহত রাখুন',
'detail' => 'বিস্তারিত',
'browse' => 'ব্রাউজ করুন',
'reset' => 'রিসেট',
'export' => 'এক্সপোর্ট',
'batch_delete' => 'গুচ্ছ আকারে মুছুন',
'save' => 'সংরক্ষণ',
'refresh' => 'রিফ্রেশ',
'order' => 'ক্রম',
'expand' => 'বর্ধিত',
'collapse' => 'বন্ধ',
'filter' => 'ফিল্টার',
'search' => 'খুঁজুন',
'close' => 'বন্ধ',
'show' => 'দেখান',
'entries' => 'অন্তর্ভুক্তিগুলি',
'captcha' => 'ক্যাপচা',
'action' => 'একশন',
'title' => 'শিরোনাম',
'description' => 'বর্ণনা',
'back' => 'ফিরে যান',
'back_to_list' => 'তালিকায় ফিরে যান',
'submit' => 'সাবমিট করন',
'menu' => 'মেন্যু',
'input' => 'ইনপুট',
'succeeded' => 'সফল হয়েছে',
'failed' => 'ব্যর্থ হয়েছে',
'delete_confirm' => 'আপনি কি এই আইটেমটি মুছে ফেলার বিষয়ে নিশ্চিত?',
'delete_succeeded' => 'মুছে ফেলতে সক্ষম হয়েছে।',
'delete_failed' => 'মুছে ফেলতে ব্যর্থ হয়েছে',
'update_succeeded' => 'সফলভবে আপডেট হয়েছে।',
'save_succeeded' => 'সফলভবে সংরক্ষণ হয়েছে।',
'refresh_succeeded' => 'সফলভবে রিফ্রেশ হয়েছে।',
'login_successful' => 'লগিন সফল হয়ছে',
'choose' => 'বাছাই করুন',
'choose_file' => 'ফাইল নির্বাচন করুন',
'choose_image' => 'ছবি সফলভবে সংরক্ষণ হয়েছে।',
'more' => 'আরও',
'deny' => 'অনুমতি অগ্রাহ্য হয়েছে',
'administrator' => 'এডমিনিস্ট্রেটর',
'roles' => 'রোলসমূহ',
'permissions' => 'পারমিশন সমূহ',
'slug' => 'স্লাগ',
'created_at' => 'তৈরি করা হয়েছে',
'updated_at' => 'আপডেট করা হয়েছে',
'alert' => 'সতর্কীকরণ',
'parent_id' => 'প্যারেন্ট',
'icon' => 'আইকন',
'uri' => 'URI',
'operation_log' => 'অপারেশন লগ',
'parent_select_error' => 'প্যারেন্ট নির্বাচন ভুল',
'pagination' => [
'range' => ':total টি রেকর্ডের মধ্যে :first থেকে :last টি দেখানো হচ্ছে',
],
'role' => 'রোল',
'permission' => 'পারমিশন',
'route' => 'রাউট',
'confirm' => 'নিশ্চিত করুন',
'cancel' => 'বাতিল',
'http' => [
'method' => 'HTTP method',
'path' => 'HTTP path',
],
'all_methods_if_empty' => 'All methods if empty',
'all' => 'সকল',
'current_page' => 'বর্তমান পৃষ্ঠা',
'selected_rows' => 'নির্বাচিত সারিগুলি',
'upload' => 'আপলোড',
'new_folder' => 'নতুন ফোল্ডার',
'time' => 'স্ময়',
'size' => 'সাইজ',
'listbox' => [
'text_total' => 'সবগুলি দেখানো হচ্ছে {0}',
'text_empty' => 'খালি তালিকা',
'filtered' => '{0} / {1}',
'filter_clear' => 'সবগুলি দেখান',
'filter_placeholder' => 'ফিল্টার',
],
'grid_items_selected' => '{n} টি আইটেম নির্বাচিত হয়েছে',
'menu_titles' => [],
'prev' => 'পূর্ববর্তী',
'next' => 'পরবর্তী',
'quick_create' => 'দ্রুত তৈরি করুন',
];
<?php
return [
'online' => 'Online',
'login' => 'Anmelden',
'logout' => 'Abmelden',
'setting' => 'Einstellungen',
'name' => 'Name',
'username' => 'Benutzername',
'password' => 'Passwort',
'password_confirmation' => 'Passwort bestätigung',
'remember_me' => 'Remember me',
'user_setting' => 'Benutzer Einstellungen',
'avatar' => 'Avatar',
'list' => 'Liste',
'new' => 'Neu',
'create' => 'Erstellen',
'delete' => 'Löschen',
'remove' => 'Entfernen',
'edit' => 'Bearbeiten',
'view' => 'Ansehen',
'continue_editing' => 'Weiter bearbeiten',
'continue_creating' => 'Weitere erstellen',
'detail' => 'Details',
'browse' => 'Auswählen',
'reset' => 'Zurücksetzen',
'export' => 'Exportieren',
'batch_delete' => 'Chargenlöschung',
'save' => 'Speichern',
'refresh' => 'Aktualisieren',
'order' => 'Order',
'expand' => 'Aufklappen',
'collapse' => 'Zuklappen',
'filter' => 'Filter',
'search' => 'Suche',
'close' => 'Schließen',
'show' => 'Anzeigen',
'entries' => 'Einträge',
'captcha' => 'Captcha',
'action' => 'Aktion',
'title' => 'Titel',
'description' => 'Beschreibung',
'back' => 'Zurück',
'back_to_list' => 'Zurück zur Liste',
'submit' => 'Absenden',
'menu' => 'Menü',
'input' => 'Eingabe',
'succeeded' => 'Erfolgreich',
'failed' => 'Gescheitert',
'delete_confirm' => 'Wollen Sie diesen Eintrag wirklich löschen?',
'delete_succeeded' => 'Löschen erfolgreich!',
'delete_failed' => 'Löschen gescheitert!',
'update_succeeded' => 'Aktualisierung erfolgreich!',
'save_succeeded' => 'Speichern erfolgreich!',
'refresh_succeeded' => 'Aktualisierung erfolgreich!',
'login_successful' => 'Anmeldung erfolgreich',
'choose' => 'Auswählen',
'choose_file' => 'Datei auswählen',
'choose_image' => 'Bild auswählen',
'more' => 'Mehr',
'deny' => 'Zugriff verweigert',
'administrator' => 'Administrator',
'roles' => 'Rollen',
'permissions' => 'Rechte',
'slug' => 'Schlagwort',
'created_at' => 'Erstellt am',
'updated_at' => 'Aktualisiert am',
'alert' => 'Warnung',
'parent_id' => 'Übergeordnete ID',
'icon' => 'Icon',
'uri' => 'URL',
'operation_log' => 'Betriebs Log',
'parent_select_error' => 'Fehler bei der Parent Auswahl',
'pagination' => [
'range' => 'Zeigt :first bis :last von gesamt :total Einträgen',
],
'role' => 'Rolle',
'permission' => 'Rechte',
'route' => 'Route',
'confirm' => 'Bestätigen',
'cancel' => 'Abbrechen',
'http' => [
'method' => 'HTTP Methode',
'path' => 'HTTP Pfad',
],
'all_methods_if_empty' => 'Alle Methoden wenn leer',
'all' => 'Alle',
'current_page' => 'Aktuelle Seite',
'selected_rows' => 'Ausgewählte Zeilen',
'upload' => 'Hochladen',
'new_folder' => 'Neuer Ordner',
'time' => 'Zeit',
'size' => 'Größe',
'listbox' => [
'text_total' => 'Zeige alle {0}',
'text_empty' => 'Leere Liste',
'filtered' => '{0} / {1}',
'filter_clear' => 'Filter zurücksetzen',
'filter_placeholder' => 'Filtern',
],
'grid_items_selected' => '{n} Einträge ausgewählt',
'menu_titles' => [],
'prev' => 'Vorherige',
'next' => 'Nächste',
'quick_create' => 'Schnellerstellung',
];
<?php
return [
'online' => 'Online',
'login' => 'Login',
'logout' => 'Logout',
'setting' => 'Setting',
'name' => 'Name',
'username' => 'Username',
'password' => 'Password',
'password_confirmation' => 'Password confirmation',
'remember_me' => 'Remember me',
'user_setting' => 'User setting',
'avatar' => 'Avatar',
'list' => 'List',
'new' => 'New',
'create' => 'Create',
'delete' => 'Delete',
'remove' => 'Remove',
'edit' => 'Edit',
'view' => 'View',
'continue_editing' => 'Continue editing',
'continue_creating' => 'Continue creating',
'detail' => 'Detail',
'browse' => 'Browse',
'reset' => 'Reset',
'export' => 'Export',
'batch_delete' => 'Batch delete',
'save' => 'Save',
'refresh' => 'Refresh',
'order' => 'Order',
'expand' => 'Expand',
'collapse' => 'Collapse',
'filter' => 'Filter',
'search' => 'Search',
'close' => 'Close',
'show' => 'Show',
'entries' => 'entries',
'captcha' => 'Captcha',
'action' => 'Action',
'title' => 'Title',
'description' => 'Description',
'back' => 'Back',
'back_to_list' => 'Back to List',
'submit' => 'Submit',
'menu' => 'Menu',
'input' => 'Input',
'succeeded' => 'Succeeded',
'failed' => 'Failed',
'delete_confirm' => 'Are you sure to delete this item ?',
'delete_succeeded' => 'Delete succeeded !',
'delete_failed' => 'Delete failed !',
'update_succeeded' => 'Update succeeded !',
'save_succeeded' => 'Save succeeded !',
'refresh_succeeded' => 'Refresh succeeded !',
'login_successful' => 'Login successful',
'choose' => 'Choose',
'choose_file' => 'Select file',
'choose_image' => 'Select image',
'more' => 'More',
'deny' => 'Permission denied',
'administrator' => 'Administrator',
'roles' => 'Roles',
'permissions' => 'Permissions',
'slug' => 'Slug',
'created_at' => 'Created At',
'updated_at' => 'Updated At',
'alert' => 'Alert',
'parent_id' => 'Parent',
'icon' => 'Icon',
'uri' => 'URI',
'operation_log' => 'Operation log',
'parent_select_error' => 'Parent select error',
'pagination' => [
'range' => 'Showing :first to :last of :total entries',
],
'role' => 'Role',
'permission' => 'Permission',
'route' => 'Route',
'confirm' => 'Confirm',
'cancel' => 'Cancel',
'http' => [
'method' => 'HTTP method',
'path' => 'HTTP path',
],
'all_methods_if_empty' => 'All methods if empty',
'all' => 'All',
'current_page' => 'Current page',
'selected_rows' => 'Selected rows',
'upload' => 'Upload',
'new_folder' => 'New folder',
'time' => 'Time',
'size' => 'Size',
'listbox' => [
'text_total' => 'Showing all {0}',
'text_empty' => 'Empty list',
'filtered' => '{0} / {1}',
'filter_clear' => 'Show all',
'filter_placeholder' => 'Filter',
],
'grid_items_selected' => '{n} items selected',
'menu_titles' => [],
'prev' => 'Prev',
'next' => 'Next',
'quick_create' => 'Quick create',
];
<?php
return [
'online' => 'en línea',
'login' => 'Iniciar sesión',
'logout' => 'Cerrar sesión',
'setting' => 'Ajustes',
'name' => 'Nombre',
'username' => 'Nombre de usuario',
'password' => 'Contraseña',
'password_confirmation' => 'Confirmación de contraseña',
'remember_me' => 'Recordarme',
'user_setting' => 'Configuración del usuario',
'avatar' => 'Avatar',
'list' => 'Lista',
'new' => 'Nuevo',
'create' => 'Crear',
'delete' => 'Eliminar',
'remove' => 'Retirar',
'edit' => 'Editar',
'view' => 'Ver',
'continue_editing' => 'Continua editando',
'continue_creating' => 'Sigue creando',
'detail' => 'Detalle',
'browse' => 'vistazo',
'reset' => 'Restablecer',
'export' => 'Exportar',
'batch_delete' => 'Eliminar por lotes',
'save' => 'Guardar',
'refresh' => 'Refrescar',
'order' => 'Ordenar',
'expand' => 'Expandir',
'collapse' => 'Colapsar',
'filter' => 'Filtrar',
'search' => 'Buscar',
'close' => 'Cerrar',
'show' => 'Mostrar',
'entries' => 'Entradas',
'captcha' => 'Captcha',
'action' => 'Acción',
'title' => 'Título',
'description' => 'Descripción',
'back' => 'Volver',
'back_to_list' => 'Volver a la lista',
'submit' => 'Enviar',
'menu' => 'Menú',
'input' => 'Entrada',
'succeeded' => 'Exitoso',
'failed' => 'Fallido',
'delete_confirm' => '¿ Esta seguro de eliminar este elemento ?',
'delete_succeeded' => '¡ Eliminación exitosa !',
'delete_failed' => '¡ Eliminación fallida !',
'update_succeeded' => '¡ Actualización correcta !',
'save_succeeded' => '¡ Guardar con éxito !',
'refresh_succeeded' => '¡ Actualizar correctamente !',
'login_successful' => 'Inicio de sesión correcto',
'choose' => 'Elegir',
'choose_file' => 'Elegir archivo',
'choose_image' => 'Elegir imagen',
'more' => 'Más',
'deny' => 'Permiso denegado',
'administrator' => 'Administrador',
'roles' => 'Roles',
'permissions' => 'Permisos',
'slug' => 'Slug',
'created_at' => 'Creado el',
'updated_at' => 'Actualizado el',
'alert' => 'Alerta',
'parent_id' => 'Padre',
'icon' => 'Icono',
'uri' => 'URI',
'operation_log' => 'Registro',
'parent_select_error' => 'Error al seleccionar el elemento padre',
'pagination' => [
'range' => 'Mostrando :first a :last de :total elementos',
],
'role' => 'Rol',
'permission' => 'Permiso',
'route' => 'Route',
'confirm' => 'Confirmar',
'cancel' => 'Cancelar',
'http' => [
'method' => 'HTTP method',
'path' => 'HTTP path',
],
'all' => 'Todas',
'current_page' => 'Página actual',
'selected_rows' => 'Filas seleccionadas',
'menu_titles' => [],
];
<?php
return [
'online' => 'آنلاین',
'login' => 'ورود',
'logout' => 'خروج',
'setting' => 'تنظیمات',
'name' => 'نام',
'username' => 'نام کاربری',
'password' => 'کلمه عبور',
'password_confirmation' => 'تایید کلمه عبور',
'remember_me' => 'من را به خاطر بسپار',
'user_setting' => 'تنظیمات کاربر',
'avatar' => 'آواتار',
'list' => 'لیست',
'new' => 'جدید',
'create' => 'جدید',
'delete' => 'حذف کردن',
'remove' => 'پاک کردن',
'edit' => 'ویرایش کردن',
'view' => 'نمایش',
'continue_editing' => 'ادامه ویرایش',
'continue_creating' => 'ادامه را ایجاد کنید',
'detail' => 'جزئیات',
'browse' => 'پیمایش',
'reset' => 'نوسازی',
'export' => 'خروجی',
'batch_delete' => 'حذف گروهی',
'save' => 'ثبت کردن',
'refresh' => 'بروز سازی',
'order' => 'اولویت',
'expand' => 'گسترش',
'collapse' => 'بازکردن',
'filter' => 'فیلتر کردن',
'search' => 'جستجو کردن',
'close' => 'بستن',
'show' => 'نمایش',
'entries' => 'ورودی',
'captcha' => 'کپچا',
'action' => 'عملیات',
'title' => 'عنوان',
'description' => 'توضیحات',
'back' => 'بازگشت',
'back_to_list' => 'بازگشت به لیست',
'submit' => 'ثبت',
'menu' => 'منو',
'input' => 'ورودی',
'succeeded' => 'با موفقیت انجام شد',
'failed' => 'نا موفق',
'delete_confirm' => 'آیا از حذف این مورد اطمینان دارید؟',
'delete_succeeded' => 'حذف موفقیت آمیز انجام شد !',
'delete_failed' => 'حذف نا موفق بود !',
'update_succeeded' => 'ویرایش با موفقیت انجام شد !',
'save_succeeded' => 'ثبت با موفقیت انجام شد !',
'refresh_succeeded' => 'بروزسانی با موفقیت انجام شد !',
'login_successful' => 'ورود با موفقیت انجام شد',
'choose' => 'انتخاب کردن',
'choose_file' => 'انتخاب فایل',
'choose_image' => 'انتخاب عکس',
'more' => 'بیشتر',
'deny' => 'دسترسی غیر مجاز',
'administrator' => 'ادمین',
'roles' => 'دسترسی ها',
'permissions' => 'اجازه ها',
'slug' => 'نامک',
'created_at' => 'ساخته شده در',
'updated_at' => 'ویرایش شده در',
'alert' => 'هشدار',
'parent_id' => 'والد',
'icon' => 'آیکون',
'uri' => 'آدرس',
'operation_log' => 'لاگ عملیاتی',
'parent_select_error' => 'انتخاب والد با خطا مواجه شد',
'pagination' => [
'range' => 'نمایش از :first تا :last از کل :total',
],
'role' => 'دسترسی ها',
'permission' => 'اجازه ها',
'route' => 'مسیرها',
'confirm' => 'تایید',
'cancel' => 'لغو',
'http' => [
'method' => 'HTTP متد',
'path' => 'HTTP مسیر',
],
'all_methods_if_empty' => 'همه متدها خالی است',
'all' => 'همه',
'current_page' => 'همین صفحه',
'selected_rows' => 'انتخاب سطر',
'upload' => 'آپلود',
'new_folder' => 'پوشه جدید',
'time' => 'زمان',
'size' => 'حجم',
'listbox' => [
'text_total' => 'درحال نمایش همه {0}',
'text_empty' => 'لیست خالی است',
'filtered' => '{0} / {1}',
'filter_clear' => 'نمایش همه',
'filter_placeholder' => 'فیلتر کردن',
],
'menu_titles' => [
'dashboard' => 'داشبورد',
'admin' => 'ادمین',
'users' => 'کاربران',
'roles' => 'نقش ها',
'permission' => 'دسترسی ها',
'menu' => 'منو',
'operation_log' => 'گزارش عملیات',
],
];
<?php
return [
'online' => 'En ligne',
'login' => 'Connexion',
'logout' => 'Déconnexion',
'setting' => 'Paramètres',
'name' => 'Nom',
'username' => 'Nom d\'utilisateur',
'password' => 'Mot de passe',
'password_confirmation' => 'Confirmez votre mot de passe',
'remember_me' => 'Rester connecté',
'user_setting' => 'Paramètres',
'avatar' => 'Avatar',
'list' => 'Liste',
'new' => 'Nouveau',
'create' => 'Créer',
'delete' => 'Supprimer',
'remove' => 'Enlèver',
'edit' => 'Editer',
'view' => 'Voir',
'continue_editing' => 'Continuer l\'édition',
'continue_creating' => 'Continuer à créer',
'detail' => 'Détail',
'browse' => 'Naviguer',
'reset' => 'Réinitialiser',
'export' => 'Exporter',
'batch_delete' => 'Supprimer en masse',
'save' => 'Sauvegarder',
'refresh' => 'Rafraîchir',
'order' => 'Commander',
'expand' => 'Déplier',
'collapse' => 'Replier',
'filter' => 'Filtre',
'search' => 'Chercher',
'close' => 'Fermer',
'show' => 'Affiche',
'entries' => 'lignes',
'captcha' => 'Captcha',
'action' => 'Action',
'title' => 'Titre',
'description' => 'Description',
'back' => 'Retourner',
'back_to_list' => 'Retourne à la liste',
'submit' => 'Soumettre',
'menu' => 'Menu',
'input' => 'Entrée',
'succeeded' => 'Réussi',
'failed' => 'Failli',
'delete_confirm' => 'Êtes vous bien certain de vouloir supprimer cet élement ?',
'delete_succeeded' => 'L\'élement a bien été supprimé !',
'delete_failed' => 'L\'effacement a échoué !',
'update_succeeded' => 'Changements sont bien mis à jour !',
'save_succeeded' => 'Changements sauvés !',
'refresh_succeeded' => 'Rafraîchissement réussi !',
'login_successful' => 'Connexion réussie',
'choose' => 'Choisissez',
'choose_file' => 'Choisissez un fichier',
'choose_image' => 'Choisissez une image',
'more' => 'Plus',
'deny' => 'Permission refusée',
'administrator' => 'Administrateur',
'roles' => 'Rôles',
'permissions' => 'Droits',
'slug' => 'Slug',
'created_at' => 'Créé à',
'updated_at' => 'Mis à jour à',
'alert' => 'Alerte',
'parent_id' => 'Parent',
'icon' => 'Icône',
'uri' => 'URI',
'operation_log' => 'Journal des opérations',
'parent_select_error' => 'Parent select erreur',
'pagination' => [
'range' => ':first à :last de :total lignes',
],
'role' => 'Rôle',
'permission' => 'Permission',
'route' => 'Route',
'confirm' => 'Confirmer',
'cancel' => 'Annuler',
'http' => [
'method' => 'HTTP méthode',
'path' => 'HTTP chemin',
],
'all_methods_if_empty' => 'Toutes méthodes si vide',
'all' => 'Tous',
'current_page' => 'La page actuelle',
'selected_rows' => 'Les lignes sélectionnées',
'upload' => 'Téléverser',
'new_folder' => 'Nouveau dossier',
'time' => 'Temps',
'size' => 'Taille',
'listbox' => [
'text_total' => 'Affichant toutes {0}',
'text_empty' => 'Liste vide',
'filtered' => '{0} / {1}',
'filter_clear' => 'Affichez tous',
'filter_placeholder' => 'Filtre',
],
'menu_titles' => [],
];
<?php
return [
'online' => 'און ליין',
'login' => 'כניסה',
'logout' => 'יציאה',
'setting' => 'הגדרות',
'name' => 'שם',
'username' => 'שם משתמש',
'password' => 'סיסמא',
'password_confirmation' => 'שוב סיסמא',
'remember_me' => 'זכור אותי',
'user_setting' => 'הגדרות משתמש',
'avatar' => 'תמונה',
'list' => 'רשימה',
'new' => 'חדש',
'create' => 'יצירה',
'delete' => 'מחיקה',
'remove' => 'הסרה',
'edit' => 'עריכה',
'view' => 'צפייה',
'continue_editing' => 'המשך בעריכה',
'continue_creating' => 'המשך ליצור',
'detail' => 'פרט',
'browse' => 'דפדוף',
'reset' => 'אתחול',
'export' => 'ייצוא',
'batch_delete' => 'מחק מסומנים',
'save' => 'שמור',
'refresh' => 'רענן',
'order' => 'סדר',
'expand' => 'הרחב',
'collapse' => 'פתח',
'filter' => 'חיפוש',
'search' => 'לחפש',
'close' => 'סגור',
'show' => 'צפה',
'entries' => 'רשומות',
'captcha' => 'קאפצ\'ה',
'action' => 'פעולה',
'title' => 'כותרת',
'description' => 'תאור',
'back' => 'חזרה',
'back_to_list' => 'חזרה לרשימה',
'submit' => 'שלח',
'menu' => 'תפריט',
'input' => 'קלט',
'succeeded' => 'הצלחה',
'failed' => 'כשלון',
'delete_confirm' => 'אתה בטוח שאתה רוצה למחוק?',
'delete_succeeded' => 'מחיקה הצליחה',
'delete_failed' => 'מחיקה נכשלה',
'update_succeeded' => 'עודכן בהצלחה',
'save_succeeded' => 'נשמר בהצלחה',
'refresh_succeeded' => 'רענון הצליחה',
'login_successful' => 'כניסה הצליחה',
'choose' => 'בחר',
'choose_file' => 'בחר קובץ',
'choose_image' => 'בחר תמונה',
'more' => 'עוד',
'deny' => 'אין הרשאות',
'administrator' => 'מנהל מערכת',
'roles' => 'תפקידים',
'permissions' => 'הרשאות',
'slug' => 'טקסט',
'created_at' => 'נוצר ב',
'updated_at' => 'עודכן ב',
'alert' => 'אזהרה',
'parent_id' => 'אב',
'icon' => 'אייקון',
'uri' => 'כתובת',
'operation_log' => 'לוג מערכת',
'parent_select_error' => 'בעייה בבחירת האב',
'pagination' => [
'range' => ':last מ :total תוצאות',
],
'menu_titles' => [],
];
<?php
return [
'online' => 'Daring',
'login' => 'Masuk',
'logout' => 'Keluar',
'setting' => 'Pengaturan',
'name' => 'Nama',
'username' => 'Username',
'password' => 'Sandi',
'password_confirmation' => 'Konfirmasi Sandi',
'remember_me' => 'Ingatkan saya',
'user_setting' => 'Pengaturan Pengguna',
'avatar' => 'Avatar',
'list' => 'Daftar',
'new' => 'Baru',
'create' => 'Buat',
'delete' => 'Hapus',
'remove' => 'Hapus',
'edit' => 'Ubah',
'view' => 'Lihat',
'continue_editing' => 'Lanjutkan Pengubahan',
'continue_creating' => 'Terus ciptakan',
'detail' => 'Detail',
'browse' => 'Jelajahi',
'reset' => 'Reset',
'export' => 'Ekspor',
'batch_delete' => 'Hapus massal',
'save' => 'Simpan',
'refresh' => 'Segarkan',
'order' => 'Urutan',
'expand' => 'Bentangkan',
'collapse' => 'Ciutkan',
'filter' => 'Saringan',
'search' => 'Cari',
'close' => 'Tutup',
'show' => 'Perlihatkan',
'entries' => 'Masukan',
'captcha' => 'Captcha',
'action' => 'Aksi',
'title' => 'Judul',
'description' => 'Deskripsi',
'back' => 'Kembali',
'back_to_list' => 'Kembali ke daftar',
'submit' => 'Submit',
'menu' => 'Menu',
'input' => 'Masukan',
'succeeded' => 'Berhasil',
'failed' => 'Gagal',
'delete_confirm' => 'Anda yakin ingin menghapus ini ?',
'delete_succeeded' => 'Berhasil menghapus !',
'delete_failed' => 'Gagal menghapus !',
'update_succeeded' => 'Berhasil mengubah !',
'save_succeeded' => 'Berhasil menyimpan !',
'refresh_succeeded' => 'Berhasil menyegarkan!',
'login_successful' => 'Berhasil masuk',
'choose' => 'Pilih',
'choose_file' => 'Pilih berkas',
'choose_image' => 'Pilih gambar',
'more' => 'Lebih banyak',
'deny' => 'Akses ditolak',
'administrator' => 'Administrator',
'roles' => 'Aturan',
'permissions' => 'Hak Akses',
'slug' => 'Slug',
'created_at' => 'Dibuat pada',
'updated_at' => 'Diubah pada',
'alert' => 'Peringatan',
'parent_id' => 'Induk',
'icon' => 'Ikon',
'uri' => 'URI',
'operation_log' => 'Riwayat Kegiatan',
'parent_select_error' => 'Kesalahan pemilihan induk',
'pagination' => [
'range' => 'Menampilkan :first dari :last dari :total masukan',
],
'role' => 'Aturan',
'permission' => 'Hak akses',
'route' => 'Rute',
'confirm' => 'Konfirmasi',
'cancel' => 'Batalkan',
'http' => [
'method' => 'HTTP method',
'path' => 'HTTP path',
],
'all_methods_if_empty' => 'Semua metode kosong',
'all' => 'Semua',
'current_page' => 'Halaman ini',
'selected_rows' => 'Baris terpilih',
'upload' => 'Unggah',
'new_folder' => 'Folder Baru',
'time' => 'Waktu',
'size' => 'Ukuran',
'listbox' => [
'text_total' => 'Semua {0}',
'text_empty' => 'Daftar kosong',
'filtered' => '{0} / {1}',
'filter_clear' => 'Lihat semua',
'filter_placeholder' => 'Saringan',
],
'grid_items_selected' => '{n} Item dipilih',
'menu_titles' => [],
'prev' => 'Sebelumnya',
'next' => 'Selanjutnya',
];
<?php
return [
'online' => 'オンライン',
'login' => 'ログイン',
'logout' => 'ログアウト',
'setting' => '設定',
'name' => '名称',
'username' => 'ユーザーID',
'password' => 'パスワード',
'password_confirmation' => '確認用パスワード',
'remember_me' => 'ログイン状態を記憶',
'user_setting' => 'ユーザー設定',
'avatar' => 'アバター',
'list' => '一覧',
'new' => '新規',
'create' => '作成',
'delete' => '削除',
'remove' => '消去',
'edit' => '編集',
'view' => '表示',
'continue_editing' => '編集を続ける',
'continue_creating' => '作成を続行する',
'detail' => '詳細',
'browse' => '参照',
'reset' => 'リセット',
'export' => '出力',
'batch_delete' => '一括削除',
'save' => '保存',
'refresh' => '再読込',
'order' => '順序',
'expand' => '展開',
'collapse' => '縮小',
'filter' => 'フィルタ',
'search' => 'サーチ',
'close' => '閉じる',
'show' => '表示',
'entries' => '件',
'captcha' => 'Captcha',
'action' => '操作',
'title' => 'タイトル',
'description' => '概要',
'back' => '戻る',
'back_to_list' => '一覧へ戻る',
'submit' => '送信',
'menu' => 'メニュー',
'input' => '入力',
'succeeded' => '成功',
'failed' => '失敗',
'delete_confirm' => '本当に削除しますか?',
'delete_succeeded' => '削除しました!',
'delete_failed' => '削除に失敗しました!',
'update_succeeded' => '更新しました!',
'save_succeeded' => '保存しました!',
'refresh_succeeded' => '更新しました!',
'login_successful' => 'ログインしました!',
'choose' => '選択',
'choose_file' => 'ファイルを選択',
'choose_image' => '画像を選択',
'more' => '続き',
'deny' => '権限がありません。',
'administrator' => '管理者',
'roles' => '役割',
'permissions' => '権限',
'slug' => 'スラッグ',
'created_at' => '作成日時',
'updated_at' => '更新日時',
'alert' => '注意',
'parent_id' => '親ID',
'icon' => 'アイコン',
'uri' => 'URI',
'operation_log' => '操作ログ',
'parent_select_error' => '親ID選択エラー',
'pagination' => [
'range' => '全 :total 件中 :first - :last 件目',
],
'role' => '役割',
'permission' => '権限',
'route' => 'Route',
'confirm' => '確認',
'cancel' => '取消',
'http' => [
'method' => 'HTTP method',
'path' => 'HTTP path',
],
'all_methods_if_empty' => '空欄の場合は全て',
'all' => '全て',
'current_page' => '現在のページ',
'selected_rows' => '選択行のみ',
'upload' => 'アップロード',
'new_folder' => '新規フォルダ',
'time' => '日時',
'size' => 'サイズ',
'listbox' => [
'text_total' => '計 {0} 個のアイテム',
'text_empty' => '空のリスト',
'filtered' => '{0} / {1}',
'filter_clear' => '全て表示',
'filter_placeholder' => 'フィルタ',
],
'menu_titles' => [],
];
<?php
return [
'online' => '온라인',
'login' => '로그인',
'logout' => '로그아웃',
'setting' => '설정',
'name' => '이름',
'username' => '아이디',
'password' => '비밀번호',
'password_confirmation' => '비밀번호 확인',
'remember_me' => '자동로그인',
'user_setting' => '사용자 설정',
'avatar' => '프로필',
'list' => '목록',
'new' => '만들기',
'create' => '생성',
'delete' => '삭제',
'remove' => '제거',
'edit' => '편집',
'view' => '보기',
'continue_editing' => '편집',
'continue_creating' => '계속 생성하기',
'detail' => '세부 사항',
'browse' => '찾아보기',
'reset' => '초기화',
'export' => '내보내기',
'batch_delete' => '일괄 삭제',
'save' => '저장',
'refresh' => '새로고침',
'order' => '정렬',
'expand' => '확대',
'collapse' => '축소',
'filter' => '필터',
'search' => '검색',
'close' => '닫기',
'show' => '보기',
'entries' => '항목',
'captcha' => '캡차',
'action' => '동작',
'title' => '제목',
'description' => '설명',
'back' => '돌아가기',
'back_to_list' => '목록으로 돌아가기',
'submit' => '전송',
'menu' => '메뉴',
'input' => '입력',
'succeeded' => '성공',
'failed' => '실패',
'delete_confirm' => '이 항목을 삭제하시겠습니까?',
'delete_succeeded' => '삭제 성공 !',
'delete_failed' => '삭제 실패 !',
'update_succeeded' => '수정 성공 !',
'save_succeeded' => '저장 성공 !',
'refresh_succeeded' => '새로고침 성공 !',
'login_successful' => '로그인 성공',
'choose' => '선택',
'choose_file' => '파일 선택',
'choose_image' => '이미지 선택',
'more' => '더 보기',
'deny' => '권한 거부',
'administrator' => '관리자',
'roles' => '역할',
'permissions' => '권한',
'slug' => '',
'created_at' => '생성일',
'updated_at' => '수정일',
'alert' => '경계경보',
'parent_id' => '상위',
'icon' => '아이콘',
'uri' => 'URI',
'operation_log' => '작업 로그',
'parent_select_error' => '상위 선택 오류',
'pagination' => [
'range' => '전체 :total, :first 에서 :last 항목',
],
'role' => '역할',
'permission' => '권한',
'route' => '경로',
'confirm' => '확인',
'cancel' => '취소',
'http' => [
'method' => 'HTTP 방법',
'path' => 'HTTP 경로',
],
'all_methods_if_empty' => '비어 있는 경우 모든 방법',
'all' => '전체',
'current_page' => '현재 페이지',
'selected_rows' => '선택된 행',
'upload' => '업로드',
'new_folder' => '새 폴더',
'time' => '시간',
'size' => '크기',
'listbox' => [
'text_total' => '전체 {0}',
'text_empty' => '빈 목록',
'filtered' => '{0} / {1}',
'filter_clear' => '전체 보기',
'filter_placeholder' => '필터',
],
'grid_items_selected' => '{n} 선택한 항목',
'menu_titles' => [],
];
<?php
return [
'online' => 'Online',
'login' => 'Masuk',
'logout' => 'Log keluar',
'setting' => 'Menetapkan',
'name' => 'Nama',
'username' => 'Nama pengguna',
'password' => 'Kata laluan',
'password_confirmation' => 'Sahkan kata laluan',
'remember_me' => 'Ingat saya',
'user_setting' => 'Tetapan pengguna',
'avatar' => 'Avatar',
'list' => 'Senarai',
'new' => 'Tambah',
'create' => 'Buat',
'delete' => 'Padam',
'remove' => 'Keluarkan',
'edit' => 'Edit',
'continue_editing' => 'Teruskan mengedit',
'continue_creating' => 'Terus mencipta',
'view' => 'Lihat',
'detail' => 'Terperinci',
'browse' => 'Semak imbas',
'reset' => 'Tetapkan semula',
'export' => 'Eksport',
'batch_delete' => 'Padam tanggal',
'save' => 'Simpan',
'refresh' => 'Muat semula',
'order' => 'Isih',
'expand' => 'Perluas',
'collapse' => 'Runtuh',
'filter' => 'Pemeriksaan',
'search' => 'Carian',
'close' => 'Tutup',
'show' => 'Paparan',
'entries' => 'Perkara',
'captcha' => 'Kod pengesahan',
'action' => 'Operasi',
'title' => 'Tajuk',
'description' => 'Pengenalan',
'back' => 'Kembali',
'back_to_list' => 'Senarai pemulangan',
'submit' => 'Hantar',
'menu' => 'Menu',
'input' => 'Input',
'succeeded' => 'Kejayaan',
'failed' => 'Kegagalan',
'delete_confirm' => 'Sahkan pemadaman?',
'delete_succeeded' => 'Dihapuskan berjaya!',
'delete_failed' => 'Padam gagal!',
'update_succeeded' => 'Berjaya dikemas kini!',
'save_succeeded' => 'Disimpan berjaya!',
'refresh_succeeded' => 'Segarkan semula!',
'login_successful' => 'Log masuk yang berjaya!',
'choose' => 'Pilih',
'choose_file' => 'Pilih fail',
'choose_image' => 'Pilih gambar',
'more' => 'Lebih banyak',
'deny' => 'Tiada akses',
'administrator' => 'Pentadbir',
'roles' => 'Peranan',
'permissions' => 'Kebenaran',
'slug' => 'Pengenalan',
'created_at' => 'Dicipta pada',
'updated_at' => 'Dikemaskini pada',
'alert' => 'Perhatian',
'parent_id' => 'Menu ibu bapa',
'icon' => 'Ikon',
'uri' => 'Jalan',
'operation_log' => 'Log operasi',
'parent_select_error' => 'Ralat pemilihan ibu bapa',
'pagination' => [
'range' => 'Dari :first Untuk :last ,Jumlah :total Perkara',
],
'role' => 'Peranan',
'permission' => 'Kebenaran',
'route' => 'Routing',
'confirm' => 'Sahkan',
'cancel' => 'Batalkan',
'http' => [
'method' => 'Kaedah HTTP',
'path' => 'Laluan HTTP',
],
'all_methods_if_empty' => 'Kosongkan mungkir kepada semua kaedah',
'all' => 'Semua',
'current_page' => 'Halaman semasa',
'selected_rows' => 'Barisan terpilih',
'upload' => 'Muat naik',
'new_folder' => 'Folder baru',
'time' => 'Masa',
'size' => 'Saiz',
'listbox' => [
'text_total' => 'Jumlah {0} Perkara',
'text_empty' => 'Senarai kosong',
'filtered' => '{0} / {1}',
'filter_clear' => 'Tunjukkan semua',
'filter_placeholder' => 'Penapis',
],
'menu_titles' => [],
];
<?php
return [
'online' => 'Online',
'login' => 'Aanmelden',
'logout' => 'Afmelden',
'setting' => 'Instellingen',
'name' => 'Naam',
'username' => 'Gebruikersnaam',
'password' => 'Wachtwoord',
'password_confirmation' => 'Wachtwoord bevestigen',
'remember_me' => 'Ingelogd blijven',
'user_setting' => 'Instellingen',
'avatar' => 'Profielfoto',
'list' => 'Lijst',
'new' => 'Nieuw',
'create' => 'Maak',
'delete' => 'Wissen',
'remove' => 'Verwijder',
'edit' => 'Wijzigen',
'view' => 'Toon',
'continue_editing' => 'Verder editeren',
'continue_creating' => 'Doorgaan met maken',
'detail' => 'Gedetailleerd',
'browse' => 'Selecteer',
'reset' => 'Reset',
'export' => 'Exporteer',
'batch_delete' => 'Verwijder meerdere',
'save' => 'Opslaan',
'refresh' => 'Vernieuw',
'order' => 'Sorteer',
'expand' => 'Openklappen',
'collapse' => 'Dichtklappen',
'filter' => 'Filter',
'search' => 'Zoeken',
'close' => 'Sluit',
'show' => 'Toon',
'entries' => 'rijen',
'captcha' => 'captcha',
'action' => 'Actie',
'title' => 'Titel',
'description' => 'Omschrijving',
'back' => 'Terug',
'back_to_list' => 'Terug naar lijst',
'submit' => 'Bevestig',
'menu' => 'Menu',
'input' => 'Input',
'succeeded' => 'Gelukt',
'failed' => 'Mislukt',
'delete_confirm' => 'Bent u zeker dat u dit item wilt verwijderen ?',
'delete_succeeded' => 'Verwijderd !',
'delete_failed' => 'Kon niet verwijderen !',
'update_succeeded' => 'Bijgewerkt !',
'save_succeeded' => 'Opgeslaan !',
'refresh_succeeded' => 'Vernieuwd !',
'login_successful' => 'Ingelogd',
'choose' => 'Kies',
'choose_file' => 'Kies een bestand',
'choose_image' => 'Kies een afbeelding',
'more' => 'Meer',
'deny' => 'Toegang geweigerd',
'administrator' => 'Beheerder',
'roles' => 'Rollen',
'permissions' => 'Rechten',
'slug' => 'Slug',
'created_at' => 'Gemaakt op',
'updated_at' => 'Gewijzigd op',
'alert' => 'Alert',
'parent_id' => 'Parent',
'icon' => 'Icoon',
'uri' => 'URI',
'operation_log' => 'Bewerkingslog',
'parent_select_error' => '\'Parent select\' fout',
'pagination' => [
'range' => ':first tot :last van :total rijen',
],
'role' => 'Rol',
'permission' => 'Permissie',
'route' => 'Route',
'confirm' => 'Bevestig',
'cancel' => 'Annuleer',
'http' => [
'method' => 'HTTP methode',
'path' => 'HTTP pad',
],
'all_methods_if_empty' => 'Alle methodes indien geen geselecteerd',
'all' => 'Alle',
'current_page' => 'Huidige pagina',
'selected_rows' => 'Geselecteerde rijen',
'upload' => 'Uploaden',
'new_folder' => 'Nieuwe map',
'time' => 'Tijd',
'size' => 'Grootte',
'listbox' => [
'text_total' => 'Alle {0} getoond',
'text_empty' => 'Lege lijst',
'filtered' => '{0} / {1}',
'filter_clear' => 'Toon alle',
'filter_placeholder' => 'Filter',
],
'grid_items_selected' => '{n} items geselecteerd',
'prev' => 'Vorige',
'next' => 'Volgende',
'quick_create' => 'Snel aanmaken',
'menu_titles' => [],
];
<?php
return [
'online' => 'Online',
'login' => 'Login',
'logout' => 'Logout',
'setting' => 'Ustawienia',
'name' => 'Nazwa',
'username' => 'Użytkownik',
'password' => 'Hasło',
'password_confirmation' => 'Powtórz hasło',
'remember_me' => 'Zapamiętaj mnie',
'user_setting' => 'Ustawienia użytkownika',
'avatar' => 'Avatar',
'list' => 'Lista',
'new' => 'Nowy',
'create' => 'Utwórz',
'delete' => 'Usuń',
'remove' => 'Usuń',
'edit' => 'Edytuj',
'view' => 'Zobacz',
'continue_editing' => 'Kontynuuj edycję',
'continue_creating' => 'Kontynuuj tworzenie',
'detail' => 'Szczegół',
'reset' => 'Resetuj',
'export' => 'Eksportuj',
'batch_delete' => 'Usuń wsadowo',
'save' => 'Zapisz',
'refresh' => 'Odśwież',
'order' => 'Sortuj',
'expand' => 'Rozwiń',
'collapse' => 'Zwiń',
'filter' => 'Filtruj',
'search' => 'Szukaj',
'close' => 'Zamknij',
'show' => 'Wyświetl',
'items' => 'element',
'entries' => 'wpisy',
'captcha' => 'Captcha',
'action' => 'Akcja',
'title' => 'Tytuł',
'description' => 'Opis',
'back' => 'Wróć',
'back_to_list' => 'Wróć do listy',
'submit' => 'Wyślij',
'menu' => 'Menu',
'input' => 'Pole',
'succeeded' => 'Sukces',
'failed' => 'Błąd',
'delete_confirm' => 'Czy na pewno chcesz usunąć?',
'delete_succeeded' => 'Pomyślnie usunięto!',
'delete_failed' => 'Usuwawnie nie powiodło się!',
'update_succeeded' => 'Pomyślnie zmieniono!',
'save_succeeded' => 'Pomyślnie zapisano!',
'refresh_succeeded' => 'Pomyślnie odświeżono!',
'login_successful' => 'Pomyślnie zalogowano',
'choose' => 'Wybierz',
'choose_file' => 'Wybierz plik',
'choose_image' => 'Wybierz obraz',
'more' => 'Więcej',
'deny' => 'Brak dostępu',
'administrator' => 'Administrator',
'roles' => 'Role',
'permissions' => 'Uprawnienia',
'slug' => 'skrót',
'created_at' => 'Utworzono',
'updated_at' => 'zmieniono',
'alert' => 'Alarm',
'parent_id' => 'Rodzic',
'icon' => 'Ikona',
'uri' => 'URI',
'operation_log' => 'Dziennik operacji',
'parent_select_error' => 'Wybór rodzica nie powiódł się',
'pagination' => [
'range' => 'Wyświetlono :first do :last z wszystkich :total',
],
'menu_titles' => [],
];
<?php
return [
'online' => 'Online',
'login' => 'Login',
'logout' => 'Logout',
'setting' => 'Configurações',
'name' => 'Nome',
'username' => 'Usuário',
'password' => 'Senha',
'password_confirmation' => 'Confirmação da Senha',
'remember_me' => 'Lembrar-me',
'user_setting' => 'Configurações do Usuário',
'avatar' => 'Avatar',
'list' => 'Lista',
'new' => 'Novo',
'create' => 'Criar',
'delete' => 'Apagar',
'remove' => 'Remover',
'edit' => 'Editar',
'view' => 'Visualizar',
'continue_editing' => 'Continuar editando',
'continue_creating' => 'Continue criando',
'detail' => 'Detalhe',
'browse' => 'Escolher',
'reset' => 'Resetar',
'export' => 'Exportar',
'batch_delete' => 'Apagar vários',
'save' => 'Salvar',
'refresh' => 'Atualizar',
'order' => 'Ordenar',
'expand' => 'Expandir',
'collapse' => 'Diminuir',
'filter' => 'Filtrar',
'search' => 'Pesquisa',
'close' => 'Fechar',
'show' => 'Mostrar',
'entries' => 'Entradas',
'captcha' => 'Captcha',
'action' => 'Ação',
'title' => 'Título',
'description' => 'Descrição',
'back' => 'Voltar',
'back_to_list' => 'Voltar para Listagem',
'submit' => 'Submeter',
'menu' => 'Menu',
'input' => 'Entrada',
'succeeded' => 'Completado com Êxito',
'failed' => 'Falhou',
'delete_confirm' => 'Tem a certeza que deseja apagar este item?',
'delete_succeeded' => 'Remoção completada com sucesso!',
'delete_failed' => 'Remoção falhou!',
'update_succeeded' => 'Atualização completada com sucesso!',
'save_succeeded' => 'Gravação completada com sucesso!',
'refresh_succeeded' => 'Atualizado com sucesso!',
'login_successful' => 'Login com sucesso',
'choose' => 'Escolher',
'choose_file' => 'Selecionar pasta',
'choose_image' => 'Selecionar imagem',
'more' => 'Mais',
'deny' => 'Permissão Negada',
'administrator' => 'Administrador',
'roles' => 'Papéis',
'permissions' => 'Permissões',
'slug' => 'Slug',
'created_at' => 'Criado em',
'updated_at' => 'Atualizado em',
'alert' => 'Alerta',
'parent_id' => 'Pai',
'icon' => 'Ícone',
'uri' => 'URI',
'operation_log' => 'Registo de Operações',
'parent_select_error' => 'Erro ao selecionar o pai',
'pagination' => [
'range' => 'Mostrando :first até :last de :total registros',
],
'role' => 'Papel',
'permission' => 'Permissão',
'route' => 'Rota',
'confirm' => 'Confirmar',
'cancel' => 'Cancelar',
'http' => [
'method' => 'Método HTTP',
'path' => 'Caminho HTTP',
],
'all_methods_if_empty' => 'Todos os métodos por defeito caso vazio.',
'all' => 'Tudo',
'current_page' => 'Página Atual',
'selected_rows' => 'Linhas Selecionadas',
'upload' => 'Upload',
'new_folder' => 'Nova Pasta',
'time' => 'Tempo',
'size' => 'Tamanho',
'listbox' => [
'text_total' => 'Mostrando todos {0}',
'text_empty' => 'Listagem Vazia',
'filtered' => '{0} / {1}',
'filter_clear' => 'Mostrar tudo',
'filter_placeholder' => 'Filtrar',
],
'menu_titles' => [],
];
<?php
return [
'online' => 'Online',
'login' => 'Login',
'logout' => 'Logout',
'setting' => 'Configurações',
'name' => 'Nome',
'username' => 'Nome de Utilizador',
'password' => 'Palavra-Passe',
'password_confirmation' => 'Confirmação de Palavra-Passe',
'remember_me' => 'Lembrar',
'user_setting' => 'Configurações de Utilizador',
'avatar' => 'Avatar',
'list' => 'Lista',
'new' => 'Novo',
'create' => 'Criar',
'delete' => 'Apagar',
'remove' => 'Remover',
'edit' => 'Editar',
'view' => 'Visualizar',
'continue_editing' => 'Continuar edição',
'continue_creating' => 'Continue criando',
'detail' => 'Detalhe',
'browse' => 'Escolher',
'reset' => 'Reset',
'export' => 'Exportar',
'batch_delete' => 'Apagar vários',
'save' => 'Guardar',
'refresh' => 'Actualizar',
'order' => 'Ordenar',
'expand' => 'Expandir',
'collapse' => 'Diminuir',
'filter' => 'Filtrar',
'search' => 'Pesquisa',
'close' => 'Fechar',
'show' => 'Mostrar',
'entries' => 'Entradas',
'captcha' => 'Captcha',
'action' => 'Acção',
'title' => 'Título',
'description' => 'Descrição',
'back' => 'Voltar',
'back_to_list' => 'Voltar para Listagem',
'submit' => 'Submeter',
'menu' => 'Menu',
'input' => 'Entrada',
'succeeded' => 'Completado com Êxito',
'failed' => 'Falhou',
'delete_confirm' => 'Tem a certeza que deseja apagar este item?',
'delete_succeeded' => 'Remoção completada com sucesso!',
'delete_failed' => 'Remoção falhou!',
'update_succeeded' => 'Actualização completada com sucesso!',
'save_succeeded' => 'Gravação completada com sucesso!',
'refresh_succeeded' => 'Actualizado com sucesso!',
'login_successful' => 'Login com sucesso',
'choose' => 'Escolher',
'choose_file' => 'Selecionar ficheiro',
'choose_image' => 'Selecionar imagem',
'more' => 'Mais',
'deny' => 'Permissão Negada',
'administrator' => 'Administrador',
'roles' => 'Papéis',
'permissions' => 'Permissões',
'slug' => 'Slug',
'created_at' => 'Criado em',
'updated_at' => 'Actualizado em',
'alert' => 'Alerta',
'parent_id' => 'Pai',
'icon' => 'Icone',
'uri' => 'URI',
'operation_log' => 'Registo de Operações',
'parent_select_error' => 'Erro ao selecionar o pai',
'pagination' => [
'range' => 'Mostrando :first até :last de :total entradas',
],
'role' => 'Papel',
'permission' => 'Permissão',
'route' => 'Rota',
'confirm' => 'Confirmar',
'cancel' => 'Cancelar',
'http' => [
'method' => 'Método HTTP',
'path' => 'Caminho HTTP',
],
'all_methods_if_empty' => 'Todos os métodos por defeito caso vazio.',
'all' => 'Tudo',
'current_page' => 'Página Actual',
'selected_rows' => 'Linhas Selecionadas',
'upload' => 'Upload',
'new_folder' => 'Nova Pasta',
'time' => 'Tempo',
'size' => 'Tamanho',
'listbox' => [
'text_total' => 'Mostrando todos {0}',
'text_empty' => 'Listagem Vazia',
'filtered' => '{0} / {1}',
'filter_clear' => 'Mostrar tudo',
'filter_placeholder' => 'Filtrar',
],
'menu_titles' => [],
];
<?php
return [
'online' => 'Онлайн',
'login' => 'Войти',
'logout' => 'Выйти',
'setting' => 'Настройка',
'name' => 'Имя',
'username' => 'Логин',
'password' => 'Пароль',
'password_confirmation' => 'Подтверждение пароля',
'remember_me' => 'Запомнить',
'user_setting' => 'Настройки пользователя',
'avatar' => 'Аватар',
'list' => 'Список',
'new' => 'Добавить',
'create' => 'Новая запись',
'delete' => 'Удалить',
'remove' => 'Удалить',
'edit' => 'Редактировать',
'view' => 'Посмотреть',
'continue_editing' => 'Продолжить редактировать',
'continue_creating' => 'Продолжить создание',
'detail' => 'Подробно',
'browse' => 'Выбор файла',
'reset' => 'Сбросить',
'export' => 'Экспорт',
'batch_delete' => 'Пакетное удаление',
'save' => 'Сохранить',
'refresh' => 'Обновить',
'order' => 'Сортировка',
'expand' => 'Развернуть',
'collapse' => 'Свернуть',
'filter' => 'Фильтр',
'search' => 'Поиск',
'close' => 'Закрыть',
'show' => 'Показать',
'entries' => 'записей',
'captcha' => 'Защитный код',
'action' => 'Опции',
'title' => 'Название',
'description' => 'Описание',
'back' => 'Назад',
'back_to_list' => 'Вернуться к списку',
'submit' => 'Отправить',
'menu' => 'Меню',
'input' => 'Ввод',
'succeeded' => 'Завершена',
'failed' => 'Ошибка',
'delete_confirm' => 'Вы уверены, что хотите удалить эту запись?',
'delete_succeeded' => 'Успешно удалено!',
'delete_failed' => 'Ошибка при удалении!',
'update_succeeded' => 'Успешно изменено!',
'save_succeeded' => 'Успешно сохранено!',
'refresh_succeeded' => 'Успешно обновлено!',
'login_successful' => 'Авторизация успешна',
'choose' => 'Выбрать',
'choose_file' => 'Выбор файла',
'choose_image' => 'Выбор изображения',
'more' => 'Еще',
'deny' => 'Доступ запрещен',
'administrator' => 'Администратор',
'roles' => 'Роли',
'permissions' => 'Доступ',
'slug' => 'Слаг',
'created_at' => 'Дата создания',
'updated_at' => 'Дата обновления',
'alert' => 'Ошибка',
'parent_id' => 'Родитель',
'icon' => 'Иконка',
'uri' => 'URI',
'operation_log' => 'Журнал событий',
'parent_select_error' => 'Ошибка при выборе родителя',
'pagination' => [
'range' => 'Записи с :first по :last из :total',
],
'role' => 'Роль',
'permission' => 'Доступ',
'route' => 'Путь',
'confirm' => 'Подтвердить',
'cancel' => 'Отмена',
'http' => [
'method' => 'HTTP метод',
'path' => 'HTTP путь',
],
'all_methods_if_empty' => 'Все методы, если не указано',
'all' => 'Все',
'current_page' => 'Текущая страница',
'selected_rows' => 'Выбранные строки',
'upload' => 'Загрузить',
'new_folder' => 'Новая папка',
'time' => 'Время',
'size' => 'Размер',
'listbox' => [
'text_total' => 'Все: {0}',
'text_empty' => 'Пустой список',
'filtered' => '{0} / {1}',
'filter_clear' => 'Показать все',
'filter_placeholder' => 'Фильтр',
],
'grid_items_selected' => '{n} элементов выбрано',
'menu_titles' => [],
'prev' => 'Предыдущая',
'next' => 'Следующая',
'quick_create' => 'Быстрое добавление',
];
<?php
return [
'online' => 'Aktif',
'login' => 'Giriş',
'logout' => 'Çıkış',
'setting' => 'Ayarlar',
'name' => 'İsim',
'username' => 'Kullanıcı adı',
'password' => 'Parola',
'password_confirmation' => 'Parola tekrar',
'remember_me' => 'Beni hatırla',
'user_setting' => 'Kullanıcı ayarları',
'avatar' => 'Profil resmi',
'list' => 'Liste',
'new' => 'Yeni',
'create' => 'Oluştur',
'delete' => 'Sil',
'remove' => 'Kaldır',
'edit' => 'Düzenle',
'view' => 'Gör',
'detail' => 'Ayrıntılar',
'browse' => 'Gözat',
'reset' => 'Temizle',
'export' => 'Dışarı aktar',
'batch_delete' => 'Toplu sil',
'save' => 'Kaydet',
'refresh' => 'Yenile',
'order' => 'Sırala',
'expand' => 'Genişlet',
'collapse' => 'Daralt',
'filter' => 'Filtrele',
'search' => 'arama',
'close' => 'Kapat',
'show' => 'Göster',
'entries' => 'kayıtlar',
'captcha' => 'Doğrulama',
'action' => 'İşlem',
'title' => 'Başlık',
'description' => 'Açıklama',
'back' => 'Geri',
'back_to_list' => 'Listeye dön',
'submit' => 'Gönder',
'continue_editing' => 'Düzenlemeye devam et',
'continue_creating' => 'Oluşturmaya devam et',
'menu' => 'Menü',
'input' => 'Giriş',
'succeeded' => 'Başarılı',
'failed' => 'Hatalı',
'delete_confirm' => 'Silmek istediğinize emin misiniz?',
'delete_succeeded' => 'Silme başarılı!',
'delete_failed' => 'Silme hatalı!',
'update_succeeded' => 'Güncellemen başarılı!',
'save_succeeded' => 'Kaydetme başarılı!',
'refresh_succeeded' => 'Yenileme başarılı!',
'login_successful' => 'Giriş başarılı',
'choose' => 'Seçin',
'choose_file' => 'Dosya seçin',
'choose_image' => 'Resim seçin',
'more' => 'Daha',
'deny' => 'İzin yok',
'administrator' => 'Yönetici',
'roles' => 'Roller',
'permissions' => 'İzinler',
'slug' => 'Kalıcı link',
'created_at' => 'Oluşturulma tarihi',
'updated_at' => 'Güncellenme tarihi',
'alert' => 'Uyarı',
'parent_id' => 'Ebeveyn',
'icon' => 'İkon',
'uri' => 'URL',
'operation_log' => 'İşlem kayıtları',
'parent_select_error' => 'Üst hata',
'pagination' => [
'range' => ':total kayıt içinden :first den :last e kadar',
],
'role' => 'Rol',
'permission' => 'İzin',
'route' => 'Rota',
'confirm' => 'Onayla',
'cancel' => 'İptal',
'http' => [
'method' => 'HTTP metodu',
'path' => 'HTTP dizini',
],
'all_methods_if_empty' => 'Tüm metodlar boş ise',
'all' => 'Tümü',
'current_page' => 'Mevcut sayfa',
'selected_rows' => 'Seçilen kayıtlar',
'upload' => 'Yükle',
'new_folder' => 'Yeni dizin',
'time' => 'Zaman',
'size' => 'Boyut',
'listbox' => [
'text_total' => 'Toplam {0} kayıt',
'text_empty' => 'Boş liste',
'filtered' => '{0} / {1}',
'filter_clear' => 'Tümünü göster',
'filter_placeholder' => 'Filtrele',
],
'menu_titles' => [],
'grid_items_selected' => '{n} öğe seçildi',
'menu_titles' => [],
'prev' => 'Önceki',
'next' => 'Sonraki',
'quick_create' => 'Hemen oluştur',
];
<?php
return [
'online' => 'В мережі',
'login' => 'Увійти',
'logout' => 'Вийти',
'setting' => 'Налаштування',
'name' => 'Ім\'я',
'username' => 'Логін',
'password' => 'Пароль',
'password_confirmation' => 'Підтвердження пароля',
'remember_me' => 'Запам\'ятати',
'user_setting' => 'Налаштування користувача',
'avatar' => 'Аватар',
'list' => 'Список',
'new' => 'Додати',
'create' => 'Новий запис',
'delete' => 'Видалити',
'remove' => 'Видалити',
'edit' => 'Редагувати',
'view' => 'Переглянути',
'continue_editing' => 'Продовжити редагувати',
'continue_creating' => 'Продовжуйте створювати',
'detail' => 'Детально',
'browse' => 'Вибір файлу',
'reset' => 'Очистити',
'export' => 'Експорт',
'batch_delete' => 'Пакетне видалення',
'save' => 'Зберегти',
'refresh' => 'Оновити',
'order' => 'Сортування',
'expand' => 'Розгорнути',
'collapse' => 'Згорнути',
'filter' => 'Фільтр',
'search' => 'Пошук',
'close' => 'Закрити',
'show' => 'Показати',
'entries' => 'записи',
'captcha' => 'Захисний код',
'action' => 'Опції',
'title' => 'Назва',
'description' => 'Опис',
'back' => 'Назад',
'back_to_list' => 'Повернутися до списку',
'submit' => 'Створити',
'menu' => 'Меню',
'input' => 'Введення',
'succeeded' => 'Завершено',
'failed' => 'Помилка',
'delete_confirm' => 'Ви впевнені, що хочете видалити цей запис?',
'delete_succeeded' => 'Запис успішно видалено!',
'delete_failed' => 'Помилка при видаленні!',
'update_succeeded' => 'Запис успішно змінено!',
'save_succeeded' => 'Запис успішно створено!',
'refresh_succeeded' => 'Запис успішно оновлено!',
'login_successful' => 'Авторизація успішна',
'choose' => 'Вибрати',
'choose_file' => 'Вибір файлу',
'choose_image' => 'Вибір зображення',
'more' => 'Ще',
'deny' => 'Доступ заборонено',
'administrator' => 'Адміністратор',
'roles' => 'Ролі',
'permissions' => 'Доступ',
'slug' => 'Посилання',
'created_at' => 'Дата створення',
'updated_at' => 'Дата оновлення',
'alert' => 'Помилка',
'parent_id' => 'Батько',
'icon' => 'Іконка',
'uri' => 'URI',
'operation_log' => 'Журнал подій',
'parent_select_error' => 'Помилка при виборі батька',
'pagination' => [
'range' => 'Записи з :first по :last з :total',
],
'role' => 'Роль',
'permission' => 'Дозвіл',
'route' => 'Маршрут',
'confirm' => 'Підтвердити',
'cancel' => 'Скасувати',
'http' => [
'method' => 'HTTP метод',
'path' => 'шлях HTTP',
],
'all_methods_if_empty' => 'Усі методи, якщо це порожнє',
'all' => 'Усі',
'current_page' => 'Поточна сторінка',
'selected_rows' => 'Вибрані рядки',
'upload' => 'Завантажити',
'new_folder' => 'Нова папка',
'time' => 'Час',
'size' => 'Розмір',
'listbox' => [
'text_total' => 'Показано всі {0}',
'text_empty' => 'Пустий список',
'filtered' => '{0} / {1}',
'filter_clear' => 'Показати все',
'filter_placeholder'=> 'Фільтр',
],
'grid_items_selected' => '{n} елементів вибрано',
'menu_titles' => [],
'prev' => 'Попередня',
'next' => 'Наступна',
];
<?php
return [
'online' => 'جڑا ہوا۔',
'login' => 'لاگ ان کریں۔',
'logout' => 'سائن آؤٹ',
'setting' => 'ترتیبات۔',
'name' => 'نام۔',
'username' => 'صارف کا نام',
'password' => 'پاس ورڈ',
'password_confirmation' => 'پاسورڈ کی تو ثیق',
'remember_me' => 'مجھے پہچانتے ہو',
'user_setting' => 'صارف کی ترتیب۔',
'avatar' => 'اوتار۔',
'list' => 'فہرست۔',
'new' => 'نئی',
'create' => 'بنانا',
'delete' => 'حذف کریں۔',
'remove' => 'دور',
'edit' => 'ترمیم',
'view' => 'دیکھیں',
'continue_editing' => 'ترمیم جاری رکھیں۔',
'continue_creating' => 'بنانا جاری رکھیں۔',
'detail' => 'تفصیل',
'browse' => 'براؤز کریں۔',
'reset' => 'ری سیٹ کریں۔',
'export' => 'برآمد کریں۔',
'batch_delete' => 'بیچ ڈیلیٹ۔',
'save' => 'محفوظ کریں',
'refresh' => 'ریفریش',
'order' => 'ترتیب',
'expand' => 'پھیلائیں۔',
'collapse' => 'گرنے',
'filter' => 'فلٹر',
'search' => 'تلاش کریں۔',
'close' => 'بند کریں',
'show' => 'دکھائیں۔',
'entries' => 'اندراجات',
'captcha' => 'کیپچا۔',
'action' => 'عمل',
'title' => 'عنوان',
'description' => 'تفصیل',
'back' => 'پیچھے',
'back_to_list' => 'فہرست پر واپس جائیں۔',
'submit' => 'جمع کرائیں',
'menu' => 'مینو',
'input' => 'ان پٹ۔',
'succeeded' => 'کامیاب ہوا۔',
'failed' => 'ناکام ہوگیا۔',
'delete_confirm' => 'کیا آپ واقعی اس آئٹم کو حذف کرنا چاہتے ہیں؟',
'delete_succeeded' => 'حذف کرنے میں کامیاب!',
'delete_failed' => 'حذف کرنے میں ناکام!',
'update_succeeded' => 'اپ ڈیٹ کامیاب!',
'save_succeeded' => 'محفوظ کریں کامیاب!',
'refresh_succeeded' => 'ریفریش کامیاب!',
'login_successful' => 'لاگ ان کامیاب۔',
'choose' => 'منتخب کریں۔',
'choose_file' => 'فائل منتخب کریں۔',
'choose_image' => 'تصویر منتخب کریں۔',
'more' => 'مزید',
'deny' => 'اجازت نہیں دی گئی',
'administrator' => 'ایڈمنسٹریٹر۔',
'roles' => 'کردار۔',
'permissions' => 'اجازت',
'slug' => 'سلگ۔',
'created_at' => 'ایٹ تیار کیا گیا',
'updated_at' => 'تازہ کاری شدہ',
'alert' => 'انتباہ',
'parent_id' => 'والدین',
'icon' => 'شبیہہ۔',
'uri' => 'URI',
'operation_log' => 'آپریشن لاگ',
'parent_select_error' => 'بنیادی انتخاب غلطی',
'pagination' => [
'range' => 'دکھا رہا ہے۔ :first کرنے کے لئے :last کے :total اندراجات',
],
'role' => 'کردار۔',
'permission' => 'اجازت۔',
'route' => 'راسته',
'confirm' => 'تصدیق کریں۔',
'cancel' => 'منسوخ کریں',
'http' => [
'method' => 'HTTP method',
'path' => 'HTTP path',
],
'all_methods_if_empty' => 'اگر تمام خالی ہیں تو',
'all' => 'سب',
'current_page' => 'موجودہ صفحہ',
'selected_rows' => 'قطاریں منتخب کی گئیں۔',
'upload' => 'اپ لوڈ کریں۔',
'new_folder' => 'نیا فولڈر',
'time' => 'وقت',
'size' => 'سائز',
'listbox' => [
'text_total' => 'سب دکھا رہا ہے۔ {0}',
'text_empty' => 'خالی فہرست۔',
'filtered' => '{0} / {1}',
'filter_clear' => 'سارے دکھاو',
'filter_placeholder' => 'فلٹر',
],
'grid_items_selected' => '{n} آئٹمز منتخب',
'menu_titles' => [],
'prev' => 'پچھلا',
'next' => 'اگلے',
'quick_create' => 'فوری تخلیق کریں۔',
];
<?php
return [
'online' => '在线',
'login' => '登录',
'logout' => '登出',
'setting' => '设置',
'name' => '名称',
'username' => '用户名',
'password' => '密码',
'password_confirmation' => '确认密码',
'remember_me' => '记住我',
'user_setting' => '用户设置',
'avatar' => '头像',
'list' => '列表',
'new' => '新增',
'create' => '创建',
'delete' => '删除',
'remove' => '移除',
'edit' => '编辑',
'continue_editing' => '继续编辑',
'continue_creating' => '继续创建',
'view' => '查看',
'detail' => '详细',
'browse' => '浏览',
'reset' => '重置',
'export' => '导出',
'batch_delete' => '批量删除',
'save' => '保存',
'refresh' => '刷新',
'order' => '排序',
'expand' => '展开',
'collapse' => '收起',
'filter' => '筛选',
'search' => '搜索',
'close' => '关闭',
'show' => '显示',
'entries' => '条',
'captcha' => '验证码',
'action' => '操作',
'title' => '标题',
'description' => '简介',
'back' => '返回',
'back_to_list' => '返回列表',
'submit' => '提交',
'menu' => '菜单',
'input' => '输入',
'succeeded' => '成功',
'failed' => '失败',
'delete_confirm' => '确认删除?',
'delete_succeeded' => '删除成功 !',
'delete_failed' => '删除失败 !',
'update_succeeded' => '更新成功 !',
'save_succeeded' => '保存成功 !',
'refresh_succeeded' => '刷新成功 !',
'login_successful' => '登录成功 !',
'choose' => '选择',
'choose_file' => '选择文件',
'choose_image' => '选择图片',
'more' => '更多',
'deny' => '无权访问',
'administrator' => '管理员',
'roles' => '角色',
'permissions' => '权限',
'slug' => '标识',
'created_at' => '创建时间',
'updated_at' => '更新时间',
'alert' => '注意',
'parent_id' => '父级菜单',
'icon' => '图标',
'uri' => '路径',
'operation_log' => '操作日志',
'parent_select_error' => '父级选择错误',
'pagination' => [
'range' => '从 :first 到 :last ,总共 :total 条',
],
'role' => '角色',
'permission' => '权限',
'route' => '路由',
'confirm' => '确认',
'cancel' => '取消',
'http' => [
'method' => 'HTTP方法',
'path' => 'HTTP路径',
],
'all_methods_if_empty' => '为空默认为所有方法',
'all' => '全部',
'current_page' => '当前页',
'selected_rows' => '选择的行',
'upload' => '上传',
'new_folder' => '新建文件夹',
'time' => '时间',
'size' => '大小',
'listbox' => [
'text_total' => '总共 {0} 项',
'text_empty' => '空列表',
'filtered' => '{0} / {1}',
'filter_clear' => '显示全部',
'filter_placeholder' => '过滤',
],
'grid_items_selected' => '已选择 {n} 项',
'menu_titles' => [],
'prev' => '上一步',
'next' => '下一步',
'quick_create' => '快速创建',
];
<?php
return [
'online' => '在線',
'login' => '登錄',
'logout' => '登出',
'setting' => '設置',
'name' => '名稱',
'username' => '用戶名',
'password' => '密碼',
'password_confirmation' => '確認密碼',
'remember_me' => '記住我',
'user_setting' => '用戶設置',
'avatar' => '頭像',
'list' => '列表',
'new' => '新增',
'create' => '創建',
'delete' => '刪除',
'remove' => '移除',
'edit' => '編輯',
'view' => '查看',
'continue_editing' => '繼續編輯',
'continue_creating' => '繼續創建',
'detail' => '詳細',
'browse' => '瀏覽',
'reset' => '重置',
'export' => '匯出',
'batch_delete' => '批次刪除',
'save' => '儲存',
'refresh' => '重新整理',
'order' => '排序',
'expand' => '展開',
'collapse' => '收起',
'filter' => '篩選',
'search' => '搜索',
'close' => '關閉',
'show' => '顯示',
'entries' => '條',
'captcha' => '驗證碼',
'action' => '操作',
'title' => '標題',
'description' => '簡介',
'back' => '返回',
'back_to_list' => '返回列表',
'submit' => '送出',
'menu' => '目錄',
'input' => '輸入',
'succeeded' => '成功',
'failed' => '失敗',
'delete_confirm' => '確認刪除?',
'delete_succeeded' => '刪除成功!',
'delete_failed' => '刪除失敗!',
'update_succeeded' => '更新成功!',
'save_succeeded' => '儲存成功!',
'refresh_succeeded' => '成功重新整理!',
'login_successful' => '成功登入!',
'choose' => '選擇',
'choose_file' => '選擇檔案',
'choose_image' => '選擇圖片',
'more' => '更多',
'deny' => '權限不足',
'administrator' => '管理員',
'roles' => '角色',
'permissions' => '權限',
'slug' => '標誌',
'created_at' => '建立時間',
'updated_at' => '更新時間',
'alert' => '警告',
'parent_id' => '父目錄',
'icon' => '圖示',
'uri' => '路徑',
'operation_log' => '操作記錄',
'parent_select_error' => '父級選擇錯誤',
'pagination' => [
'range' => '從 :first 到 :last ,總共 :total 條',
],
'role' => '角色',
'permission' => '權限',
'route' => '路由',
'confirm' => '確認',
'cancel' => '取消',
'http' => [
'method' => 'HTTP方法',
'path' => 'HTTP路徑',
],
'all_methods_if_empty' => '為空默認為所有方法',
'all' => '全部',
'current_page' => '現在頁面',
'selected_rows' => '選擇的行',
'upload' => '上傳',
'new_folder' => '新建資料夾',
'time' => '時間',
'size' => '大小',
'listbox' => [
'text_total' => '總共 {0} 項',
'text_empty' => '空列表',
'filtered' => '{0} / {1}',
'filter_clear' => '顯示全部',
'filter_placeholder' => '過濾',
],
'menu_titles' => [],
'prev' => '上一步',
'next' => '下一步',
'quick_create' => '快速創建',
];
{
"Admin": true
}
\ No newline at end of file
......@@ -13,7 +13,3 @@ use Illuminate\Support\Facades\Route;
| be assigned to the "api" middleware group. Make something great!
|
*/
Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
return $request->user();
});
......@@ -11,8 +11,4 @@ use Illuminate\Support\Facades\Route;
| routes are loaded by the RouteServiceProvider and all of them will
| be assigned to the "web" middleware group. Make something great!
|
*/
Route::get('/', function () {
return view('welcome');
});
*/
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment