sofav 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +35 -0
  4. data/Rakefile +34 -0
  5. data/app/builders/admin/form_builder.rb +250 -0
  6. data/app/controllers/application_controller.rb +23 -0
  7. data/app/decorators/base_decorator.rb +172 -0
  8. data/app/helpers/admin/core_helper.rb +237 -0
  9. data/app/helpers/admin/show_view_helper.rb +69 -0
  10. data/app/helpers/admin/tags_helper.rb +104 -0
  11. data/app/services/active_record/search_service.rb +121 -0
  12. data/app/views/admin/application/_breadcrumb_nav.html.erb +10 -0
  13. data/app/views/admin/application/_collection.html.erb +79 -0
  14. data/app/views/admin/application/_save_js.js.erb +20 -0
  15. data/app/views/admin/application/_sidebar.html.erb +62 -0
  16. data/app/views/admin/application/_topbar.html.erb +32 -0
  17. data/app/views/admin/application/actions/charge.html.erb +3 -0
  18. data/app/views/admin/application/actions/destroy.html.erb +5 -0
  19. data/app/views/admin/application/actions/edit.html.erb +1 -0
  20. data/app/views/admin/application/actions/edit_sights.html.erb +1 -0
  21. data/app/views/admin/application/actions/feedback.html.erb +4 -0
  22. data/app/views/admin/application/actions/index_charge.html.erb +1 -0
  23. data/app/views/admin/application/actions/index_destroy.html.erb +1 -0
  24. data/app/views/admin/application/actions/index_edit.html.erb +1 -0
  25. data/app/views/admin/application/actions/index_edit_sights.html.erb +1 -0
  26. data/app/views/admin/application/actions/index_show.html.erb +1 -0
  27. data/app/views/admin/application/actions/new.html.erb +1 -0
  28. data/app/views/admin/application/create.js.erb +1 -0
  29. data/app/views/admin/application/destroy.js.erb +6 -0
  30. data/app/views/admin/application/edit.html.erb +18 -0
  31. data/app/views/admin/application/index.html.erb +23 -0
  32. data/app/views/admin/application/new.html.erb +18 -0
  33. data/app/views/admin/application/partials/_map_pos_picker.html.erb +101 -0
  34. data/app/views/admin/application/partials/_sort_script.html.erb +32 -0
  35. data/app/views/admin/application/show.html.erb +16 -0
  36. data/app/views/admin/application/update.js.erb +1 -0
  37. data/app/views/admin/dashboard/index.html.erb +8 -0
  38. data/app/views/layouts/admin.html.erb +30 -0
  39. data/config/locales/devise.en.yml +64 -0
  40. data/config/locales/devise.zh-CN.yml +120 -0
  41. data/config/locales/doorkeeper.en.yml +124 -0
  42. data/config/locales/doorkeeper.zh-CN.yml +132 -0
  43. data/config/locales/en.yml +23 -0
  44. data/config/locales/enumerize/defaults.zh-CN.yml +7 -0
  45. data/config/locales/kaminari.zh-CN.yml +17 -0
  46. data/config/locales/rails.zh-CN.yml +204 -0
  47. data/config/locales/views/actions.zh-CN.yml +21 -0
  48. data/config/locales/views/attributes.zh-CN.yml +15 -0
  49. data/config/locales/views/breadcrumb.zh-CN.yml +5 -0
  50. data/config/locales/views/common.zh-CN.yml +7 -0
  51. data/config/locales/views/enums.zh-CN.yml +13 -0
  52. data/config/locales/views/profiles.zh-CN.yml +3 -0
  53. data/lib/generators/sofav/USAGE +0 -0
  54. data/lib/generators/sofav/sofav_generator.rb +50 -0
  55. data/lib/generators/sofav/templates/activerecord.zh-CN.yml +4 -0
  56. data/lib/generators/sofav/templates/attribute_types.zh-CN.yml +2 -0
  57. data/lib/sofav.rb +6 -0
  58. data/lib/sofav/decorator.rb +47 -0
  59. data/lib/sofav/local.rb +52 -0
  60. data/lib/sofav/version.rb +3 -0
  61. data/lib/tasks/sofa_tasks.rake +4 -0
  62. data/vendor/assets/javascripts/admin/here.js +0 -0
  63. data/vendor/assets/javascripts/bootbox.js +1020 -0
  64. data/vendor/assets/javascripts/bootstrap.js +2377 -0
  65. data/vendor/assets/javascripts/jquery-ui.js +5169 -0
  66. data/vendor/assets/javascripts/select2.js +5725 -0
  67. data/vendor/assets/stylesheets/bootstrap.css +6800 -0
  68. data/vendor/assets/stylesheets/bootstrap.css.map +1 -0
  69. data/vendor/assets/stylesheets/jquery-ui.css +453 -0
  70. data/vendor/assets/stylesheets/select2.css +484 -0
  71. metadata +211 -0
@@ -0,0 +1,16 @@
1
+ <div class="card">
2
+ <div class="title">
3
+ <span>
4
+ <%= decorate.try(:show_page_title) || "查看" %>
5
+ </span>
6
+ <div class="pull-right btn-groups">
7
+ <%= yield(:permitted_methods).presence || render_class_actions(decorator) %>
8
+ </div>
9
+ </div>
10
+ <div class="body">
11
+ <%= yield(:breadcrumb_nav).presence || render('breadcrumb_nav') %>
12
+ <div class="show-box">
13
+ <%= build_view_for(:show_page_attributes) %>
14
+ </div>
15
+ </div>
16
+ </div>
@@ -0,0 +1 @@
1
+ <%= render 'save_js' %>
@@ -0,0 +1,8 @@
1
+ <div class="card">
2
+ <div class="title">
3
+ <span>Dashboard</span>
4
+ </div>
5
+ <div class="body" style="text-align:center;">
6
+ <h2>欢迎来到Sofa系统</h2>
7
+ </div>
8
+ </div>
@@ -0,0 +1,30 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title><%= yield(:title).presence %></title>
5
+ <meta charset="utf-8">
6
+ <%= csrf_meta_tags %>
7
+
8
+ <%= favicon_link_tag asset_url("favicon.png"), type: 'image/png'%>
9
+ <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
10
+ <meta name="viewport" content="width=800">
11
+ <meta name="renderer" content="webkit">
12
+ <%= stylesheet_link_tag 'admin/application', media: 'all', 'data-turbolinks-track': 'reload' %>
13
+ <%= javascript_include_tag 'admin/application', 'data-turbolinks-track': 'reload' %>
14
+ <meta name="viewport" content="initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
15
+ </head>
16
+
17
+ <body>
18
+ <div class="admin">
19
+ <%= render 'topbar' %>
20
+
21
+ <div class="main">
22
+ <%= render 'sidebar' %>
23
+ <div class="content">
24
+ <%= yield %>
25
+ </div>
26
+ </div>
27
+ </div>
28
+
29
+ </body>
30
+ </html>
@@ -0,0 +1,64 @@
1
+ # Additional translations at https://github.com/plataformatec/devise/wiki/I18n
2
+
3
+ en:
4
+ devise:
5
+ confirmations:
6
+ confirmed: "Your email address has been successfully confirmed."
7
+ send_instructions: "You will receive an email with instructions for how to confirm your email address in a few minutes."
8
+ send_paranoid_instructions: "If your email address exists in our database, you will receive an email with instructions for how to confirm your email address in a few minutes."
9
+ failure:
10
+ already_authenticated: "You are already signed in."
11
+ inactive: "Your account is not activated yet."
12
+ invalid: "Invalid %{authentication_keys} or password."
13
+ locked: "Your account is locked."
14
+ last_attempt: "You have one more attempt before your account is locked."
15
+ not_found_in_database: "Invalid %{authentication_keys} or password."
16
+ timeout: "Your session expired. Please sign in again to continue."
17
+ unauthenticated: "You need to sign in or sign up before continuing."
18
+ unconfirmed: "You have to confirm your email address before continuing."
19
+ mailer:
20
+ confirmation_instructions:
21
+ subject: "Confirmation instructions"
22
+ reset_password_instructions:
23
+ subject: "Reset password instructions"
24
+ unlock_instructions:
25
+ subject: "Unlock instructions"
26
+ email_changed:
27
+ subject: "Email Changed"
28
+ password_change:
29
+ subject: "Password Changed"
30
+ omniauth_callbacks:
31
+ failure: "Could not authenticate you from %{kind} because \"%{reason}\"."
32
+ success: "Successfully authenticated from %{kind} account."
33
+ passwords:
34
+ no_token: "You can't access this page without coming from a password reset email. If you do come from a password reset email, please make sure you used the full URL provided."
35
+ send_instructions: "You will receive an email with instructions on how to reset your password in a few minutes."
36
+ send_paranoid_instructions: "If your email address exists in our database, you will receive a password recovery link at your email address in a few minutes."
37
+ updated: "Your password has been changed successfully. You are now signed in."
38
+ updated_not_active: "Your password has been changed successfully."
39
+ registrations:
40
+ destroyed: "Bye! Your account has been successfully cancelled. We hope to see you again soon."
41
+ signed_up: "Welcome! You have signed up successfully."
42
+ signed_up_but_inactive: "You have signed up successfully. However, we could not sign you in because your account is not yet activated."
43
+ signed_up_but_locked: "You have signed up successfully. However, we could not sign you in because your account is locked."
44
+ signed_up_but_unconfirmed: "A message with a confirmation link has been sent to your email address. Please follow the link to activate your account."
45
+ update_needs_confirmation: "You updated your account successfully, but we need to verify your new email address. Please check your email and follow the confirm link to confirm your new email address."
46
+ updated: "Your account has been updated successfully."
47
+ sessions:
48
+ signed_in: "Signed in successfully."
49
+ signed_out: "Signed out successfully."
50
+ already_signed_out: "Signed out successfully."
51
+ unlocks:
52
+ send_instructions: "You will receive an email with instructions for how to unlock your account in a few minutes."
53
+ send_paranoid_instructions: "If your account exists, you will receive an email with instructions for how to unlock it in a few minutes."
54
+ unlocked: "Your account has been unlocked successfully. Please sign in to continue."
55
+ errors:
56
+ messages:
57
+ already_confirmed: "was already confirmed, please try signing in"
58
+ confirmation_period_expired: "needs to be confirmed within %{period}, please request a new one"
59
+ expired: "has expired, please request a new one"
60
+ not_found: "not found"
61
+ not_locked: "was not locked"
62
+ not_saved:
63
+ one: "1 error prohibited this %{resource} from being saved:"
64
+ other: "%{count} errors prohibited this %{resource} from being saved:"
@@ -0,0 +1,120 @@
1
+ zh-CN:
2
+ activerecord:
3
+ attributes:
4
+ user:
5
+ current_password: "密码"
6
+ email: "电子邮箱"
7
+ password: "密码"
8
+ password_confirmation: "密码确认"
9
+ remember_me: "记住登录信息"
10
+ reset_password_token:
11
+ unlock_token:
12
+ models:
13
+ user: "用户"
14
+ devise:
15
+ confirmations:
16
+ confirmed: "恭喜您,注册成功,现在可以登录了"
17
+ new:
18
+ resend_confirmation_instructions: "重新发送确认邮件"
19
+ send_instructions: "几分钟后,您将收到确认帐号的电子邮件."
20
+ send_paranoid_instructions: "您将收到一封确认账号的邮件.,请注意查收"
21
+ failure:
22
+ already_authenticated: "登录成功"
23
+ inactive: "您的账号还未激活"
24
+ invalid: "*手机号或密码错误"
25
+ last_attempt: "你还有一次尝试正确的密码,过后你的帐户会被锁住"
26
+ locked: "该手机号已被注册占用"
27
+ not_found_in_database: "*手机号或密码错误"
28
+ timeout: "登录超时,请重新登录."
29
+ unauthenticated: ""
30
+ unconfirmed: "继续操作前请先确认您的帐号."
31
+ mailer:
32
+ confirmation_instructions:
33
+ action: "确认我的帐户"
34
+ greeting: "欢迎 %{recipient}!"
35
+ instruction: "您可以通过下面的链接确认您的帐户的电子邮件:"
36
+ subject: "确认信息"
37
+ password_change:
38
+ greeting:
39
+ message:
40
+ subject:
41
+ reset_password_instructions:
42
+ action: "更改我的密码"
43
+ greeting: "你好 %{recipient}!"
44
+ instruction: "有人要求更改密码的链接,您可以通过下面的链接更改密码:"
45
+ instruction_2: "如果您没有要求请求更改密码,请忽略此电子邮件。"
46
+ instruction_3: "如果你没有访问上面的链接并更改密码,你的密码就不会被改变。"
47
+ subject: "重置密码信息"
48
+ unlock_instructions:
49
+ action: "帐户解锁"
50
+ greeting: "你好 %{recipient}!"
51
+ instruction: "点击下面的链接到您的帐户解锁:"
52
+ message: "由于多次的不成功的登入尝试,您的帐户已被锁定。"
53
+ subject: "解锁信息"
54
+ omniauth_callbacks:
55
+ failure: "因为%{reason},所以您无法从%{kind}获得授权."
56
+ success: "成功地从%{kind}获得授权."
57
+ passwords:
58
+ edit:
59
+ change_my_password: "更改我的密码"
60
+ change_your_password: "更改您的密码"
61
+ confirm_new_password: "确认新密码"
62
+ new_password: "新密码"
63
+ new:
64
+ forgot_your_password: "找回密码"
65
+ send_me_reset_password_instructions: "请给我发送重设密码的邮件"
66
+ no_token: "您暂时不能访问此页面。您需要通过密码重置邮件中的重置链接来访问此页面,如果您正是通过重置链接访问,请确定链接的正确性。"
67
+ send_instructions: "几分钟后,您将收到重置密码的手机短信."
68
+ send_paranoid_instructions: "如果您的邮箱存在于我们的数据库中,您将收到一封找回密码的邮件."
69
+ updated: "您的密码已修改成功,您现在已登录."
70
+ updated_not_active: "密码修改成功."
71
+ registrations:
72
+ destroyed: "再见!您的帐户已成功注销。我们希望很快可以再见到您."
73
+ edit:
74
+ are_you_sure: "你确定吗?"
75
+ cancel_my_account: "取消我的帐户"
76
+ currently_waiting_confirmation_for_email: "等待 %{email} 的确认"
77
+ leave_blank_if_you_don_t_want_to_change_it: "你不想去改变它,不需要填写"
78
+ title: "修改 %{resource}"
79
+ unhappy: "不喜欢"
80
+ update: "更新"
81
+ we_need_your_current_password_to_confirm_your_changes: "我们需要您的当前密码以确认您的更改"
82
+ new:
83
+ sign_up: "注册"
84
+ signed_up: "欢迎您!您已注册成功."
85
+ signed_up_but_inactive: "谢谢您!然而您的账号还未被激活,在这之前无法登陆。"
86
+ signed_up_but_locked: "谢谢您!然而您的账号已被锁定,无法登陆。"
87
+ signed_up_but_unconfirmed: "谢谢您!一封确认邮件已经发至您的邮箱,请点击其中的链接激活您的账号。"
88
+ update_needs_confirmation: "新的账号信息已成功提交,一封确认邮件已经发至您的邮箱,请点击其中的链接以使您的新E-mail地址生效。"
89
+ updated: "帐号资料更新成功."
90
+ sessions:
91
+ already_signed_out: "成功的登出"
92
+ new:
93
+ sign_in: "登录"
94
+ signed_in: "登录成功."
95
+ signed_out: "退出成功."
96
+ shared:
97
+ links:
98
+ back: "返回"
99
+ didn_t_receive_confirmation_instructions: "没有收到确认邮件?"
100
+ didn_t_receive_unlock_instructions: "没有收到解锁邮件?"
101
+ forgot_your_password: "忘记密码?"
102
+ sign_in: "登录"
103
+ sign_in_with_provider: "用 %{provider} 登录"
104
+ sign_up: "注册"
105
+ unlocks:
106
+ new:
107
+ resend_unlock_instructions: "重发解锁邮件"
108
+ send_instructions: "几分钟后,您将收到一封解锁帐号的邮件."
109
+ send_paranoid_instructions: "如果您的邮箱存在于我们的数据库中,您将收到一封解锁账号的邮件."
110
+ unlocked: "您的帐号已成功解锁,您现在已登录."
111
+ errors:
112
+ messages:
113
+ already_confirmed: "已经确认,请重新登录."
114
+ confirmation_period_expired: "必须在 %{period} 以内确认,请重新申请"
115
+ expired: "您已过期,请重新申请"
116
+ not_found: "手机未注册"
117
+ not_locked: "未锁定"
118
+ not_saved:
119
+ one: "因为1个错误导致此%{resource}保存失败:"
120
+ other: "因为%{count}个错误导致此%{resource}保存失败:"
@@ -0,0 +1,124 @@
1
+ en:
2
+ activerecord:
3
+ attributes:
4
+ doorkeeper/application:
5
+ name: 'Name'
6
+ redirect_uri: 'Redirect URI'
7
+ errors:
8
+ models:
9
+ doorkeeper/application:
10
+ attributes:
11
+ redirect_uri:
12
+ fragment_present: 'cannot contain a fragment.'
13
+ invalid_uri: 'must be a valid URI.'
14
+ relative_uri: 'must be an absolute URI.'
15
+ secured_uri: 'must be an HTTPS/SSL URI.'
16
+
17
+ doorkeeper:
18
+ applications:
19
+ confirmations:
20
+ destroy: 'Are you sure?'
21
+ buttons:
22
+ edit: 'Edit'
23
+ destroy: 'Destroy'
24
+ submit: 'Submit'
25
+ cancel: 'Cancel'
26
+ authorize: 'Authorize'
27
+ form:
28
+ error: 'Whoops! Check your form for possible errors'
29
+ help:
30
+ redirect_uri: 'Use one line per URI'
31
+ native_redirect_uri: 'Use %{native_redirect_uri} for local tests'
32
+ scopes: 'Separate scopes with spaces. Leave blank to use the default scopes.'
33
+ edit:
34
+ title: 'Edit application'
35
+ index:
36
+ title: 'Your applications'
37
+ new: 'New Application'
38
+ name: 'Name'
39
+ callback_url: 'Callback URL'
40
+ new:
41
+ title: 'New Application'
42
+ show:
43
+ title: 'Application: %{name}'
44
+ application_id: 'Application Id'
45
+ secret: 'Secret'
46
+ scopes: 'Scopes'
47
+ callback_urls: 'Callback urls'
48
+ actions: 'Actions'
49
+
50
+ authorizations:
51
+ buttons:
52
+ authorize: 'Authorize'
53
+ deny: 'Deny'
54
+ error:
55
+ title: 'An error has occurred'
56
+ new:
57
+ title: 'Authorization required'
58
+ prompt: 'Authorize %{client_name} to use your account?'
59
+ able_to: 'This application will be able to'
60
+ show:
61
+ title: 'Authorization code'
62
+
63
+ authorized_applications:
64
+ confirmations:
65
+ revoke: 'Are you sure?'
66
+ buttons:
67
+ revoke: 'Revoke'
68
+ index:
69
+ title: 'Your authorized applications'
70
+ application: 'Application'
71
+ created_at: 'Created At'
72
+ date_format: '%Y-%m-%d %H:%M:%S'
73
+
74
+ errors:
75
+ messages:
76
+ # Common error messages
77
+ invalid_request: 'The request is missing a required parameter, includes an unsupported parameter value, or is otherwise malformed.'
78
+ invalid_redirect_uri: 'The redirect uri included is not valid.'
79
+ unauthorized_client: 'The client is not authorized to perform this request using this method.'
80
+ access_denied: 'The resource owner or authorization server denied the request.'
81
+ invalid_scope: 'The requested scope is invalid, unknown, or malformed.'
82
+ server_error: 'The authorization server encountered an unexpected condition which prevented it from fulfilling the request.'
83
+ temporarily_unavailable: 'The authorization server is currently unable to handle the request due to a temporary overloading or maintenance of the server.'
84
+
85
+ # Configuration error messages
86
+ credential_flow_not_configured: 'Resource Owner Password Credentials flow failed due to Doorkeeper.configure.resource_owner_from_credentials being unconfigured.'
87
+ resource_owner_authenticator_not_configured: 'Resource Owner find failed due to Doorkeeper.configure.resource_owner_authenticator being unconfigured.'
88
+
89
+ # Access grant errors
90
+ unsupported_response_type: 'The authorization server does not support this response type.'
91
+
92
+ # Access token errors
93
+ invalid_client: 'Client authentication failed due to unknown client, no client authentication included, or unsupported authentication method.'
94
+ invalid_grant: 'The provided authorization grant is invalid, expired, revoked, does not match the redirection URI used in the authorization request, or was issued to another client.'
95
+ unsupported_grant_type: 'The authorization grant type is not supported by the authorization server.'
96
+
97
+ # Password Access token errors
98
+ invalid_resource_owner: 'The provided resource owner credentials are not valid, or resource owner cannot be found'
99
+
100
+ invalid_token:
101
+ revoked: "The access token was revoked"
102
+ expired: "The access token expired"
103
+ unknown: "The access token is invalid"
104
+
105
+ flash:
106
+ applications:
107
+ create:
108
+ notice: 'Application created.'
109
+ destroy:
110
+ notice: 'Application deleted.'
111
+ update:
112
+ notice: 'Application updated.'
113
+ authorized_applications:
114
+ destroy:
115
+ notice: 'Application revoked.'
116
+
117
+ layouts:
118
+ admin:
119
+ nav:
120
+ oauth2_provider: 'OAuth2 Provider'
121
+ applications: 'Applications'
122
+ home: 'Home'
123
+ application:
124
+ title: 'OAuth authorization required'
@@ -0,0 +1,132 @@
1
+ zh-CN:
2
+ activerecord:
3
+ attributes:
4
+ doorkeeper/application:
5
+ name: '名称'
6
+ redirect_uri: '登录回调地址'
7
+ scopes: 'Scopes'
8
+ errors:
9
+ models:
10
+ doorkeeper/application:
11
+ attributes:
12
+ redirect_uri:
13
+ fragment_present: '不能包含片段(#)'
14
+ invalid_uri: '必须是有效的 URL 格式'
15
+ relative_uri: '必须是绝对的 URL 地址'
16
+ secured_uri: '必须是 HTTPS/SSL 的 URL 地址'
17
+
18
+ doorkeeper:
19
+ applications:
20
+ confirmations:
21
+ destroy: '确定要删除应用吗?'
22
+ buttons:
23
+ edit: '编辑'
24
+ destroy: '删除'
25
+ submit: '提交'
26
+ cancel: '取消'
27
+ authorize: '授权'
28
+ form:
29
+ error: '抱歉! 提交信息的时候遇到了下面的错误'
30
+ help:
31
+ redirect_uri: '每行只能有一个 URL'
32
+ native_redirect_uri: '使用 %{native_redirect_uri} 作为本地测试'
33
+ scopes: '用空格隔开scope,留空则使用默认设置'
34
+ edit:
35
+ title: '修改应用'
36
+ index:
37
+ title: '你的应用'
38
+ new: '创建新应用'
39
+ name: '名称'
40
+ callback_url: '登录回调地址'
41
+ new:
42
+ title: '创建新应用'
43
+ show:
44
+ title: '应用: %{name}'
45
+ application_id: '应用 ID'
46
+ secret: '私钥'
47
+ scopes: 'Scopes'
48
+ callback_urls: '登录回调地址'
49
+ actions: '操作'
50
+
51
+ authorizations:
52
+ buttons:
53
+ authorize: '授权'
54
+ deny: '拒绝'
55
+ error:
56
+ title: '存在错误'
57
+ new:
58
+ title: '需要你授权'
59
+ prompt: '授权 %{client_name} 使用你的帐号?'
60
+ able_to: '此应用将会'
61
+ show:
62
+ title: '授权码'
63
+
64
+ authorized_applications:
65
+ confirmations:
66
+ revoke: '确定要注销此应用的认证信息吗?'
67
+ buttons:
68
+ revoke: '注销'
69
+ index:
70
+ title: '你授权的应用列表'
71
+ application: '应用'
72
+ created_at: '授权时间'
73
+ date_format: '%Y-%m-%d %H:%M:%S'
74
+
75
+ errors:
76
+ messages:
77
+ # Common error messages
78
+ vacant_mobile: "手机号码不能为空"
79
+ vacant_password: "密码不能为空"
80
+ invalid_mobile: "请输入正确有效的手机号码"
81
+ invalid_password: '请输入至少六位以上的密码'
82
+ invalid_account: '该帐号不存在'
83
+ invalid_request: '这个请求缺少必要的参数,或者参数值、格式不正确'
84
+ invalid_redirect_uri: '无效的登录回调地址'
85
+ unauthorized_client: '未授权的应用,请求无法执行'
86
+ access_denied: '用户或服务器拒绝了请求'
87
+ invalid_scope: '请求范围无效、未知或格式不正确'
88
+ server_error: '服务器异常,无法处理请求'
89
+ temporarily_unavailable: '服务器维护中,无法处理请求'
90
+ locked_account: '该帐号已被冻结'
91
+ account_deleted: '该账号已被管理员删除'
92
+
93
+ #configuration error messages
94
+ credential_flow_not_configured: 'Resource Owner Password Credentials flow failed due to Doorkeeper.configure.resource_owner_from_credentials being unconfigured.'
95
+ resource_owner_authenticator_not_configured: 'Resource Owner find failed due to Doorkeeper.configure.resource_owner_authenticator being unconfiged.'
96
+
97
+ # Access grant errors
98
+ unsupported_response_type: '服务器不支持这种 response type'
99
+
100
+ # Access token errors
101
+ invalid_client: '由于未知、不支持或没有客户端,认证失败'
102
+ invalid_grant: '请输入正确的手机号码和密码'
103
+ unsupported_grant_type: '服务器不支持此类型的授权方式'
104
+
105
+ # Password Access token errors
106
+ invalid_resource_owner: '资源所有者认证无效或没有所有者'
107
+
108
+ invalid_token:
109
+ revoked: "您的帐号已在其他设备登录,请重新登录"
110
+ expired: "帐号授权已过期,请重新登录"
111
+ unknown: "Access Token 无效"
112
+
113
+ flash:
114
+ applications:
115
+ create:
116
+ notice: '应用创建成功'
117
+ destroy:
118
+ notice: '应用删除成功'
119
+ update:
120
+ notice: '应用修改成功'
121
+ authorized_applications:
122
+ destroy:
123
+ notice: '已成功注销了应用的认证信息'
124
+
125
+ layouts:
126
+ admin:
127
+ nav:
128
+ oauth2_provider: 'OAuth2 Provider'
129
+ applications: '应用'
130
+ home: '首页'
131
+ application:
132
+ title: 'OAuth 认证'