Compare commits
46 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bd74689079 | ||
|
|
248942bdea | ||
|
|
d9f203300b | ||
|
|
aceabc969f | ||
|
|
dedc24d3a7 | ||
|
|
6e583e78e8 | ||
|
|
c012e83355 | ||
|
|
264355d185 | ||
|
|
fdbfd1ec60 | ||
|
|
7a8b27a255 | ||
|
|
ec4bfac98b | ||
|
|
c63ffe37c9 | ||
|
|
d2f3ce82c9 | ||
|
|
3e24a0b0a4 | ||
|
|
1a07e29ff4 | ||
|
|
1aa46a8928 | ||
|
|
d9083f8b5f | ||
|
|
23d558a6d7 | ||
|
|
665a5b7b12 | ||
|
|
1d73418969 | ||
|
|
f67b5e4cc4 | ||
|
|
ae2515444f | ||
|
|
463e77f0a5 | ||
|
|
d7b796b1a7 | ||
|
|
9b07d53077 | ||
|
|
8ee9b2bc31 | ||
|
|
c5989477a4 | ||
|
|
96d8a4e4f8 | ||
|
|
e865e11731 | ||
|
|
f0997bfe0d | ||
|
|
8b67dad456 | ||
|
|
53fdac1038 | ||
|
|
534a7602e6 | ||
|
|
30f329fe43 | ||
|
|
4ce39951a9 | ||
|
|
0e9eb34626 | ||
|
|
0ff299c425 | ||
|
|
6366258ce9 | ||
|
|
bca69a026e | ||
|
|
adc26ea42a | ||
|
|
84422b10c8 | ||
|
|
d05ad0f8f4 | ||
|
|
3f70ddaffa | ||
|
|
b16e8d84d7 | ||
|
|
5ee405d5a0 | ||
|
|
a5b9470636 |
@@ -8,12 +8,12 @@ ClassVars:
|
|||||||
Enabled: false
|
Enabled: false
|
||||||
LineLength:
|
LineLength:
|
||||||
Max: 120
|
Max: 120
|
||||||
|
Lint/UriEscapeUnescape:
|
||||||
|
Enabled: false
|
||||||
MethodLength:
|
MethodLength:
|
||||||
Max: 20
|
Max: 20
|
||||||
Exclude:
|
Exclude:
|
||||||
- 'app/controllers/enumeration/cli_options.rb'
|
- 'app/controllers/enumeration/cli_options.rb'
|
||||||
Lint/UriEscapeUnescape:
|
|
||||||
Enabled: false
|
|
||||||
Metrics/AbcSize:
|
Metrics/AbcSize:
|
||||||
Max: 25
|
Max: 25
|
||||||
Metrics/BlockLength:
|
Metrics/BlockLength:
|
||||||
@@ -29,3 +29,6 @@ Style/Documentation:
|
|||||||
Enabled: false
|
Enabled: false
|
||||||
Style/FormatStringToken:
|
Style/FormatStringToken:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
|
Style/NumericPredicate:
|
||||||
|
Exclude:
|
||||||
|
- 'app/controllers/vuln_api.rb'
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
FROM ruby:2.6.2-alpine3.9 AS builder
|
FROM ruby:2.6.3-alpine AS builder
|
||||||
LABEL maintainer="WPScan Team <team@wpscan.org>"
|
LABEL maintainer="WPScan Team <team@wpscan.org>"
|
||||||
|
|
||||||
ARG BUNDLER_ARGS="--jobs=8 --without test development"
|
ARG BUNDLER_ARGS="--jobs=8 --without test development"
|
||||||
@@ -19,7 +19,7 @@ RUN rake install --trace
|
|||||||
RUN chmod -R a+r /usr/local/bundle
|
RUN chmod -R a+r /usr/local/bundle
|
||||||
|
|
||||||
|
|
||||||
FROM ruby:2.6.2-alpine3.9
|
FROM ruby:2.6.3-alpine
|
||||||
LABEL maintainer="WPScan Team <team@wpscan.org>"
|
LABEL maintainer="WPScan Team <team@wpscan.org>"
|
||||||
|
|
||||||
RUN adduser -h /wpscan -g WPScan -D wpscan
|
RUN adduser -h /wpscan -g WPScan -D wpscan
|
||||||
|
|||||||
36
README.md
36
README.md
@@ -17,7 +17,6 @@
|
|||||||
<a href="https://badge.fury.io/rb/wpscan" target="_blank"><img src="https://badge.fury.io/rb/wpscan.svg"></a>
|
<a href="https://badge.fury.io/rb/wpscan" target="_blank"><img src="https://badge.fury.io/rb/wpscan.svg"></a>
|
||||||
<a href="https://travis-ci.org/wpscanteam/wpscan" target="_blank"><img src="https://travis-ci.org/wpscanteam/wpscan.svg?branch=master"></a>
|
<a href="https://travis-ci.org/wpscanteam/wpscan" target="_blank"><img src="https://travis-ci.org/wpscanteam/wpscan.svg?branch=master"></a>
|
||||||
<a href="https://codeclimate.com/github/wpscanteam/wpscan" target="_blank"><img src="https://codeclimate.com/github/wpscanteam/wpscan/badges/gpa.svg"></a>
|
<a href="https://codeclimate.com/github/wpscanteam/wpscan" target="_blank"><img src="https://codeclimate.com/github/wpscanteam/wpscan/badges/gpa.svg"></a>
|
||||||
<a href="https://www.patreon.com/wpscan" target="_blank"><img src="https://img.shields.io/badge/patreon-donate-green.svg"></a>
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
# INSTALL
|
# INSTALL
|
||||||
@@ -85,33 +84,46 @@ For more options, open a terminal and type ```wpscan --help``` (if you built wps
|
|||||||
|
|
||||||
The DB is located at ~/.wpscan/db
|
The DB is located at ~/.wpscan/db
|
||||||
|
|
||||||
|
## Load CLI options from file/s
|
||||||
|
|
||||||
WPScan can load all options (including the --url) from configuration files, the following locations are checked (order: first to last):
|
WPScan can load all options (including the --url) from configuration files, the following locations are checked (order: first to last):
|
||||||
|
|
||||||
- ~/.wpscan/cli_options.json
|
- ~/.wpscan/scan.json
|
||||||
- ~/.wpscan/cli_options.yml
|
- ~/.wpscan/scan.yml
|
||||||
- pwd/.wpscan/cli_options.json
|
- pwd/.wpscan/scan.json
|
||||||
- pwd/.wpscan/cli_options.yml
|
- pwd/.wpscan/scan.yml
|
||||||
|
|
||||||
If those files exist, options from them will be loaded and overridden if found twice.
|
If those files exist, options from the `cli_options` key will be loaded and overridden if found twice.
|
||||||
|
|
||||||
e.g:
|
e.g:
|
||||||
|
|
||||||
~/.wpscan/cli_options.yml:
|
~/.wpscan/scan.yml:
|
||||||
|
|
||||||
```yml
|
```yml
|
||||||
proxy: 'http://127.0.0.1:8080'
|
cli_options:
|
||||||
verbose: true
|
proxy: 'http://127.0.0.1:8080'
|
||||||
|
verbose: true
|
||||||
```
|
```
|
||||||
|
|
||||||
pwd/.wpscan/cli_options.yml:
|
pwd/.wpscan/scan.yml:
|
||||||
|
|
||||||
```yml
|
```yml
|
||||||
proxy: 'socks5://127.0.0.1:9090'
|
cli_options:
|
||||||
url: 'http://target.tld'
|
proxy: 'socks5://127.0.0.1:9090'
|
||||||
|
url: 'http://target.tld'
|
||||||
```
|
```
|
||||||
|
|
||||||
Running ```wpscan``` in the current directory (pwd), is the same as ```wpscan -v --proxy socks5://127.0.0.1:9090 --url http://target.tld```
|
Running ```wpscan``` in the current directory (pwd), is the same as ```wpscan -v --proxy socks5://127.0.0.1:9090 --url http://target.tld```
|
||||||
|
|
||||||
|
## Save API Token in a file
|
||||||
|
|
||||||
|
The feature mentioned above is useful to keep the API Token in a config file and not have to supply it via the CLI each time. To do so, create the ~/.wpscan/scan.yml file containing the below:
|
||||||
|
|
||||||
|
```yml
|
||||||
|
cli_options:
|
||||||
|
api_token: YOUR_API_TOKEN
|
||||||
|
```
|
||||||
|
|
||||||
Enumerating usernames
|
Enumerating usernames
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require_relative 'controllers/core'
|
require_relative 'controllers/core'
|
||||||
|
require_relative 'controllers/vuln_api'
|
||||||
require_relative 'controllers/custom_directories'
|
require_relative 'controllers/custom_directories'
|
||||||
require_relative 'controllers/wp_version'
|
require_relative 'controllers/wp_version'
|
||||||
require_relative 'controllers/main_theme'
|
require_relative 'controllers/main_theme'
|
||||||
|
|||||||
30
app/controllers/vuln_api.rb
Normal file
30
app/controllers/vuln_api.rb
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
module WPScan
|
||||||
|
module Controller
|
||||||
|
# Controller to handle the API token
|
||||||
|
class VulnApi < CMSScanner::Controller::Base
|
||||||
|
def cli_options
|
||||||
|
[
|
||||||
|
OptString.new(['--api-token TOKEN', 'The WPVulnDB API Token to display vulnerability data'])
|
||||||
|
]
|
||||||
|
end
|
||||||
|
|
||||||
|
def before_scan
|
||||||
|
return unless ParsedCli.api_token
|
||||||
|
|
||||||
|
DB::VulnApi.token = ParsedCli.api_token
|
||||||
|
|
||||||
|
api_status = DB::VulnApi.status
|
||||||
|
|
||||||
|
raise Error::InvalidApiToken if api_status['error']
|
||||||
|
raise Error::ApiLimitReached if api_status['requests_remaining'] == 0
|
||||||
|
raise api_status['http_error'] if api_status['http_error']
|
||||||
|
end
|
||||||
|
|
||||||
|
def after_scan
|
||||||
|
output('status', status: DB::VulnApi.status, api_requests: WPScan.api_requests)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -20,9 +20,9 @@ module WPScan
|
|||||||
|
|
||||||
enumerate(potential_urls(opts), opts.merge(check_full_response: 200)) do |res|
|
enumerate(potential_urls(opts), opts.merge(check_full_response: 200)) do |res|
|
||||||
if res.effective_url.end_with?('.zip')
|
if res.effective_url.end_with?('.zip')
|
||||||
next unless res.headers['Content-Type'] =~ %r{\Aapplication/zip}i
|
next unless %r{\Aapplication/zip}i.match?(res.headers['Content-Type'])
|
||||||
else
|
else
|
||||||
next unless res.body =~ SQL_PATTERN
|
next unless SQL_PATTERN.match?(res.body)
|
||||||
end
|
end
|
||||||
|
|
||||||
found << Model::DbExport.new(res.request.url, found_by: DIRECT_ACCESS, confidence: 100)
|
found << Model::DbExport.new(res.request.url, found_by: DIRECT_ACCESS, confidence: 100)
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ module WPScan
|
|||||||
def aggressive(_opts = {})
|
def aggressive(_opts = {})
|
||||||
path = 'installer-log.txt'
|
path = 'installer-log.txt'
|
||||||
|
|
||||||
return unless target.head_and_get(path).body =~ /DUPLICATOR INSTALL-LOG/
|
return unless /DUPLICATOR INSTALL-LOG/.match?(target.head_and_get(path).body)
|
||||||
|
|
||||||
Model::DuplicatorInstallerLog.new(
|
Model::DuplicatorInstallerLog.new(
|
||||||
target.url(path),
|
target.url(path),
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ module WPScan
|
|||||||
pattern = %r{#{target.content_dir}/mu\-plugins/}i
|
pattern = %r{#{target.content_dir}/mu\-plugins/}i
|
||||||
|
|
||||||
target.in_scope_uris(target.homepage_res) do |uri|
|
target.in_scope_uris(target.homepage_res) do |uri|
|
||||||
next unless uri.path =~ pattern
|
next unless uri.path&.match?(pattern)
|
||||||
|
|
||||||
url = target.url('wp-content/mu-plugins/')
|
url = target.url('wp-content/mu-plugins/')
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ module WPScan
|
|||||||
path = 'wp-content/uploads/dump.sql'
|
path = 'wp-content/uploads/dump.sql'
|
||||||
res = target.head_and_get(path, [200], get: { headers: { 'Range' => 'bytes=0-3000' } })
|
res = target.head_and_get(path, [200], get: { headers: { 'Range' => 'bytes=0-3000' } })
|
||||||
|
|
||||||
return unless res.body =~ SQL_PATTERN
|
return unless SQL_PATTERN.match?(res.body)
|
||||||
|
|
||||||
Model::UploadSQLDump.new(
|
Model::UploadSQLDump.new(
|
||||||
target.url(path),
|
target.url(path),
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ module WPScan
|
|||||||
|
|
||||||
def valid_credentials?(response)
|
def valid_credentials?(response)
|
||||||
response.code == 302 &&
|
response.code == 302 &&
|
||||||
response.headers['Set-Cookie']&.any? { |cookie| cookie =~ /wordpress_logged_in_/i }
|
[*response.headers['Set-Cookie']]&.any? { |cookie| cookie =~ /wordpress_logged_in_/i }
|
||||||
end
|
end
|
||||||
|
|
||||||
def errored_response?(response)
|
def errored_response?(response)
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ module WPScan
|
|||||||
|
|
||||||
number = Regexp.last_match[1]
|
number = Regexp.last_match[1]
|
||||||
|
|
||||||
number if number =~ /[0-9]+/
|
number if /[0-9]+/.match?(number)
|
||||||
end
|
end
|
||||||
|
|
||||||
# @param [ String ] body
|
# @param [ String ] body
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ module WPScan
|
|||||||
#
|
#
|
||||||
# @return [ Plugin ] The detected plugin in the response, related to the config
|
# @return [ Plugin ] The detected plugin in the response, related to the config
|
||||||
def process_response(opts, response, slug, klass, config)
|
def process_response(opts, response, slug, klass, config)
|
||||||
return unless response.body =~ config['pattern']
|
return unless response.body&.match?(config['pattern'])
|
||||||
|
|
||||||
Model::Plugin.new(
|
Model::Plugin.new(
|
||||||
slug,
|
slug,
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ module WPScan
|
|||||||
response.html.xpath(config['xpath'] || '//comment()').each do |node|
|
response.html.xpath(config['xpath'] || '//comment()').each do |node|
|
||||||
comment = node.text.to_s.strip
|
comment = node.text.to_s.strip
|
||||||
|
|
||||||
next unless comment =~ config['pattern']
|
next unless comment&.match?(config['pattern'])
|
||||||
|
|
||||||
return Model::Plugin.new(
|
return Model::Plugin.new(
|
||||||
slug,
|
slug,
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ module WPScan
|
|||||||
found = []
|
found = []
|
||||||
|
|
||||||
enumerate(target_urls(opts), opts.merge(check_full_response: 400)) do |res|
|
enumerate(target_urls(opts), opts.merge(check_full_response: 400)) do |res|
|
||||||
next unless res.body =~ /no image specified/i
|
next unless /no image specified/i.match?(res.body)
|
||||||
|
|
||||||
found << Model::Timthumb.new(res.request.url, opts.merge(found_by: found_by, confidence: 100))
|
found << Model::Timthumb.new(res.request.url, opts.merge(found_by: found_by, confidence: 100))
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ module WPScan
|
|||||||
|
|
||||||
return found if error.empty? # Protection plugin / error disabled
|
return found if error.empty? # Protection plugin / error disabled
|
||||||
|
|
||||||
next unless error =~ /The password you entered for the username|Incorrect Password/i
|
next unless /The password you entered for the username|Incorrect Password/i.match?(error)
|
||||||
|
|
||||||
found << Model::User.new(username, found_by: found_by, confidence: 100)
|
found << Model::User.new(username, found_by: found_by, confidence: 100)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -15,9 +15,16 @@ module WPScan
|
|||||||
@uri = Addressable::URI.parse(blog.url(path_from_blog))
|
@uri = Addressable::URI.parse(blog.url(path_from_blog))
|
||||||
end
|
end
|
||||||
|
|
||||||
# @return [ JSON ]
|
# Retrieve the metadata from the vuln API if available (and a valid token is given),
|
||||||
|
# or the local metadata db otherwise
|
||||||
|
# @return [ Hash ]
|
||||||
|
def metadata
|
||||||
|
@metadata ||= db_data.empty? ? DB::Plugin.metadata_at(slug) : db_data
|
||||||
|
end
|
||||||
|
|
||||||
|
# @return [ Hash ]
|
||||||
def db_data
|
def db_data
|
||||||
@db_data ||= DB::Plugin.db_data(slug)
|
@db_data ||= DB::VulnApi.plugin_data(slug)
|
||||||
end
|
end
|
||||||
|
|
||||||
# @param [ Hash ] opts
|
# @param [ Hash ] opts
|
||||||
|
|||||||
@@ -21,9 +21,16 @@ module WPScan
|
|||||||
parse_style
|
parse_style
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Retrieve the metadata from the vuln API if available (and a valid token is given),
|
||||||
|
# or the local metadata db otherwise
|
||||||
# @return [ JSON ]
|
# @return [ JSON ]
|
||||||
|
def metadata
|
||||||
|
@metadata ||= db_data.empty? ? DB::Theme.metadata_at(slug) : db_data
|
||||||
|
end
|
||||||
|
|
||||||
|
# @return [ Hash ]
|
||||||
def db_data
|
def db_data
|
||||||
@db_data ||= DB::Theme.db_data(slug)
|
@db_data ||= DB::VulnApi.theme_data(slug)
|
||||||
end
|
end
|
||||||
|
|
||||||
# @param [ Hash ] opts
|
# @param [ Hash ] opts
|
||||||
|
|||||||
@@ -60,18 +60,18 @@ module WPScan
|
|||||||
|
|
||||||
# @return [ String ]
|
# @return [ String ]
|
||||||
def latest_version
|
def latest_version
|
||||||
@latest_version ||= db_data['latest_version'] ? Model::Version.new(db_data['latest_version']) : nil
|
@latest_version ||= metadata['latest_version'] ? Model::Version.new(metadata['latest_version']) : nil
|
||||||
end
|
end
|
||||||
|
|
||||||
# Not used anywhere ATM
|
# Not used anywhere ATM
|
||||||
# @return [ Boolean ]
|
# @return [ Boolean ]
|
||||||
def popular?
|
def popular?
|
||||||
@popular ||= db_data['popular']
|
@popular ||= metadata['popular'] ? true : false
|
||||||
end
|
end
|
||||||
|
|
||||||
# @return [ String ]
|
# @return [ String ]
|
||||||
def last_updated
|
def last_updated
|
||||||
@last_updated ||= db_data['last_updated']
|
@last_updated ||= metadata['last_updated']
|
||||||
end
|
end
|
||||||
|
|
||||||
# @return [ Boolean ]
|
# @return [ Boolean ]
|
||||||
|
|||||||
@@ -35,9 +35,16 @@ module WPScan
|
|||||||
@all_numbers.sort! { |a, b| Gem::Version.new(b) <=> Gem::Version.new(a) }
|
@all_numbers.sort! { |a, b| Gem::Version.new(b) <=> Gem::Version.new(a) }
|
||||||
end
|
end
|
||||||
|
|
||||||
# @return [ JSON ]
|
# Retrieve the metadata from the vuln API if available (and a valid token is given),
|
||||||
|
# or the local metadata db otherwise
|
||||||
|
# @return [ Hash ]
|
||||||
|
def metadata
|
||||||
|
@metadata ||= db_data.empty? ? DB::Version.metadata_at(number) : db_data
|
||||||
|
end
|
||||||
|
|
||||||
|
# @return [ Hash ]
|
||||||
def db_data
|
def db_data
|
||||||
@db_data ||= DB::Version.db_data(number)
|
@db_data ||= DB::VulnApi.wordpress_data(number)
|
||||||
end
|
end
|
||||||
|
|
||||||
# @return [ Array<Vulnerability> ]
|
# @return [ Array<Vulnerability> ]
|
||||||
@@ -55,12 +62,12 @@ module WPScan
|
|||||||
|
|
||||||
# @return [ String ]
|
# @return [ String ]
|
||||||
def release_date
|
def release_date
|
||||||
@release_date ||= db_data['release_date'] || 'Unknown'
|
@release_date ||= metadata['release_date'] || 'Unknown'
|
||||||
end
|
end
|
||||||
|
|
||||||
# @return [ String ]
|
# @return [ String ]
|
||||||
def status
|
def status
|
||||||
@status ||= db_data['status'] || 'Unknown'
|
@status ||= metadata['status'] || 'Unknown'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ _______________________________________________________________
|
|||||||
|
|
||||||
WordPress Security Scanner by the WPScan Team
|
WordPress Security Scanner by the WPScan Team
|
||||||
Version <%= WPScan::VERSION %>
|
Version <%= WPScan::VERSION %>
|
||||||
Sponsored by Sucuri - https://sucuri.net
|
<%= ' ' * ((63 - WPScan::DB::Sponsor.text.length)/2) + WPScan::DB::Sponsor.text %>
|
||||||
@_WPScan_, @ethicalhack3r, @erwan_lr, @_FireFart_
|
@_WPScan_, @ethicalhack3r, @erwan_lr, @_FireFart_
|
||||||
_______________________________________________________________
|
_______________________________________________________________
|
||||||
|
|
||||||
|
|||||||
13
app/views/cli/vuln_api/status.erb
Normal file
13
app/views/cli/vuln_api/status.erb
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<% unless @status.empty? -%>
|
||||||
|
<% if @status['http_error'] -%>
|
||||||
|
<%= critical_icon %> WPVulnDB API, <%= @status['http_error'].to_s %>
|
||||||
|
<% else -%>
|
||||||
|
<%= info_icon %> WPVulnDB API OK
|
||||||
|
| Plan: <%= @status['plan'] %>
|
||||||
|
| Requests Done (during the scan): <%= @api_requests %>
|
||||||
|
| Requests Remaining: <%= @status['requests_remaining'] %>
|
||||||
|
<% end -%>
|
||||||
|
<% else -%>
|
||||||
|
<%= warning_icon %> No WPVulnDB API Token given, as a result vulnerability data has not been output.
|
||||||
|
<%= warning_icon %> You can get a free API token with 50 daily requests by registering at https://wpvulndb.com/register.
|
||||||
|
<% end -%>
|
||||||
@@ -7,5 +7,5 @@
|
|||||||
"@erwan_lr",
|
"@erwan_lr",
|
||||||
"@_FireFart_"
|
"@_FireFart_"
|
||||||
],
|
],
|
||||||
"sponsored_by": "Sucuri - https://sucuri.net"
|
"sponsor": <%= WPScan::DB::Sponsor.text.to_json %>
|
||||||
},
|
},
|
||||||
|
|||||||
13
app/views/json/vuln_api/status.erb
Normal file
13
app/views/json/vuln_api/status.erb
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
"vuln_api": {
|
||||||
|
<% unless @status.empty? -%>
|
||||||
|
<% if @status['http_error'] -%>
|
||||||
|
"http_error": <%= @status['http_error'].to_s.to_json %>
|
||||||
|
<% else -%>
|
||||||
|
"plan": <%= @status['plan'].to_json %>,
|
||||||
|
"requests_done_during_scan": <%= @api_requests.to_json %>,
|
||||||
|
"requests_remaining": <%= @status['requests_remaining'].to_json %>
|
||||||
|
<% end -%>
|
||||||
|
<% else -%>
|
||||||
|
"error": "No WPVulnDB API Token given, as a result vulnerability data has not been output.\nYou can get a free API token with 50 daily requests by registering at https://wpvulndb.com/register."
|
||||||
|
<% end -%>
|
||||||
|
},
|
||||||
@@ -5,6 +5,7 @@ require 'wpscan'
|
|||||||
|
|
||||||
WPScan::Scan.new do |s|
|
WPScan::Scan.new do |s|
|
||||||
s.controllers <<
|
s.controllers <<
|
||||||
|
WPScan::Controller::VulnApi.new <<
|
||||||
WPScan::Controller::CustomDirectories.new <<
|
WPScan::Controller::CustomDirectories.new <<
|
||||||
WPScan::Controller::InterestingFindings.new <<
|
WPScan::Controller::InterestingFindings.new <<
|
||||||
WPScan::Controller::WpVersion.new <<
|
WPScan::Controller::WpVersion.new <<
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ require 'wpscan'
|
|||||||
report = MemoryProfiler.report(top: 15) do
|
report = MemoryProfiler.report(top: 15) do
|
||||||
WPScan::Scan.new do |s|
|
WPScan::Scan.new do |s|
|
||||||
s.controllers <<
|
s.controllers <<
|
||||||
|
WPScan::Controller::VulnApi.new <<
|
||||||
WPScan::Controller::CustomDirectories.new <<
|
WPScan::Controller::CustomDirectories.new <<
|
||||||
WPScan::Controller::InterestingFindings.new <<
|
WPScan::Controller::InterestingFindings.new <<
|
||||||
WPScan::Controller::WpVersion.new <<
|
WPScan::Controller::WpVersion.new <<
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ StackProf.run(mode: :cpu, out: '/tmp/stackprof-cpu.dump', interval: 500) do
|
|||||||
# require_relative 'wpscan' doesn't work
|
# require_relative 'wpscan' doesn't work
|
||||||
WPScan::Scan.new do |s|
|
WPScan::Scan.new do |s|
|
||||||
s.controllers <<
|
s.controllers <<
|
||||||
|
WPScan::Controller::VulnApi.new <<
|
||||||
WPScan::Controller::CustomDirectories.new <<
|
WPScan::Controller::CustomDirectories.new <<
|
||||||
WPScan::Controller::InterestingFindings.new <<
|
WPScan::Controller::InterestingFindings.new <<
|
||||||
WPScan::Controller::WpVersion.new <<
|
WPScan::Controller::WpVersion.new <<
|
||||||
|
|||||||
@@ -13,7 +13,8 @@ require 'uri'
|
|||||||
require 'time'
|
require 'time'
|
||||||
require 'readline'
|
require 'readline'
|
||||||
require 'securerandom'
|
require 'securerandom'
|
||||||
|
# Monkey Patches/Fixes/Override
|
||||||
|
require 'wpscan/typhoeus/response' # Adds a from_vuln_api? method
|
||||||
# Custom Libs
|
# Custom Libs
|
||||||
require 'wpscan/helper'
|
require 'wpscan/helper'
|
||||||
require 'wpscan/db'
|
require 'wpscan/db'
|
||||||
@@ -38,12 +39,28 @@ module WPScan
|
|||||||
APP_DIR = Pathname.new(__FILE__).dirname.join('..', 'app').expand_path
|
APP_DIR = Pathname.new(__FILE__).dirname.join('..', 'app').expand_path
|
||||||
DB_DIR = Pathname.new(Dir.home).join('.wpscan', 'db')
|
DB_DIR = Pathname.new(Dir.home).join('.wpscan', 'db')
|
||||||
|
|
||||||
|
Typhoeus.on_complete do |response|
|
||||||
|
next if response.cached? || !response.from_vuln_api?
|
||||||
|
|
||||||
|
self.api_requests += 1
|
||||||
|
end
|
||||||
|
|
||||||
# Override, otherwise it would be returned as 'wp_scan'
|
# Override, otherwise it would be returned as 'wp_scan'
|
||||||
#
|
#
|
||||||
# @return [ String ]
|
# @return [ String ]
|
||||||
def self.app_name
|
def self.app_name
|
||||||
'wpscan'
|
'wpscan'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# @return [ Integer ]
|
||||||
|
def self.api_requests
|
||||||
|
@@api_requests ||= 0
|
||||||
|
end
|
||||||
|
|
||||||
|
# @param [ Integer ] value
|
||||||
|
def self.api_requests=(value)
|
||||||
|
@@api_requests = value
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
require "#{WPScan::APP_DIR}/app"
|
require "#{WPScan::APP_DIR}/app"
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ module WPScan
|
|||||||
|
|
||||||
# @return [ String ]
|
# @return [ String ]
|
||||||
def default_user_agent
|
def default_user_agent
|
||||||
"WPScan v#{VERSION} (https://wpscan.org/)"
|
@default_user_agent ||= "WPScan v#{VERSION} (https://wpscan.org/)"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -7,9 +7,12 @@ require_relative 'db/plugins'
|
|||||||
require_relative 'db/themes'
|
require_relative 'db/themes'
|
||||||
require_relative 'db/plugin'
|
require_relative 'db/plugin'
|
||||||
require_relative 'db/theme'
|
require_relative 'db/theme'
|
||||||
|
require_relative 'db/sponsor'
|
||||||
require_relative 'db/wp_version'
|
require_relative 'db/wp_version'
|
||||||
require_relative 'db/fingerprints'
|
require_relative 'db/fingerprints'
|
||||||
|
|
||||||
|
require_relative 'db/vuln_api'
|
||||||
|
|
||||||
require_relative 'db/dynamic_finders/base'
|
require_relative 'db/dynamic_finders/base'
|
||||||
require_relative 'db/dynamic_finders/plugin'
|
require_relative 'db/dynamic_finders/plugin'
|
||||||
require_relative 'db/dynamic_finders/theme'
|
require_relative 'db/dynamic_finders/theme'
|
||||||
|
|||||||
@@ -4,9 +4,9 @@ module WPScan
|
|||||||
module DB
|
module DB
|
||||||
# Plugin DB
|
# Plugin DB
|
||||||
class Plugin < WpItem
|
class Plugin < WpItem
|
||||||
# @return [ String ]
|
# @return [ Hash ]
|
||||||
def self.db_file
|
def self.metadata
|
||||||
@db_file ||= DB_DIR.join('plugins.json').to_s
|
@metadata ||= super['plugins'] || {}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ module WPScan
|
|||||||
# WP Plugins
|
# WP Plugins
|
||||||
class Plugins < WpItems
|
class Plugins < WpItems
|
||||||
# @return [ JSON ]
|
# @return [ JSON ]
|
||||||
def self.db
|
def self.metadata
|
||||||
Plugin.db
|
Plugin.metadata
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
16
lib/wpscan/db/sponsor.rb
Normal file
16
lib/wpscan/db/sponsor.rb
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
module WPScan
|
||||||
|
module DB
|
||||||
|
class Sponsor
|
||||||
|
# @return [ Hash ]
|
||||||
|
def self.text
|
||||||
|
@text ||= file_path.exist? ? File.read(file_path).chomp : ''
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.file_path
|
||||||
|
@file_path ||= DB_DIR.join('sponsor.txt')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -4,9 +4,9 @@ module WPScan
|
|||||||
module DB
|
module DB
|
||||||
# Theme DB
|
# Theme DB
|
||||||
class Theme < WpItem
|
class Theme < WpItem
|
||||||
# @return [ String ]
|
# @return [ Hash ]
|
||||||
def self.db_file
|
def self.metadata
|
||||||
@db_file ||= DB_DIR.join('themes.json').to_s
|
@metadata ||= super['themes'] || {}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ module WPScan
|
|||||||
# WP Themes
|
# WP Themes
|
||||||
class Themes < WpItems
|
class Themes < WpItems
|
||||||
# @return [ JSON ]
|
# @return [ JSON ]
|
||||||
def self.db
|
def self.metadata
|
||||||
Theme.db
|
Theme.metadata
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -7,12 +7,15 @@ module WPScan
|
|||||||
class Updater
|
class Updater
|
||||||
# /!\ Might want to also update the Enumeration#cli_options when some filenames are changed here
|
# /!\ Might want to also update the Enumeration#cli_options when some filenames are changed here
|
||||||
FILES = %w[
|
FILES = %w[
|
||||||
plugins.json themes.json wordpresses.json
|
metadata.json wp_fingerprints.json
|
||||||
timthumbs-v3.txt config_backups.txt db_exports.txt
|
timthumbs-v3.txt config_backups.txt db_exports.txt
|
||||||
dynamic_finders.yml wp_fingerprints.json LICENSE
|
dynamic_finders.yml LICENSE sponsor.txt
|
||||||
].freeze
|
].freeze
|
||||||
|
|
||||||
OLD_FILES = %w[wordpress.db user-agents.txt dynamic_finders_01.yml].freeze
|
OLD_FILES = %w[
|
||||||
|
wordpress.db user-agents.txt dynamic_finders_01.yml
|
||||||
|
wordpresses.json plugins.json themes.json
|
||||||
|
].freeze
|
||||||
|
|
||||||
attr_reader :repo_directory
|
attr_reader :repo_directory
|
||||||
|
|
||||||
@@ -64,11 +67,12 @@ module WPScan
|
|||||||
# @return [ Hash ] The params for Typhoeus::Request
|
# @return [ Hash ] The params for Typhoeus::Request
|
||||||
# @note Those params can't be overriden by CLI options
|
# @note Those params can't be overriden by CLI options
|
||||||
def request_params
|
def request_params
|
||||||
{
|
@request_params ||= {
|
||||||
timeout: 600,
|
timeout: 600,
|
||||||
connecttimeout: 300,
|
connecttimeout: 300,
|
||||||
accept_encoding: 'gzip, deflate',
|
accept_encoding: 'gzip, deflate',
|
||||||
cache_ttl: 0
|
cache_ttl: 0,
|
||||||
|
headers: { 'User-Agent' => Browser.instance.default_user_agent, 'Referer' => nil }
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
78
lib/wpscan/db/vuln_api.rb
Normal file
78
lib/wpscan/db/vuln_api.rb
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
module WPScan
|
||||||
|
module DB
|
||||||
|
# WPVulnDB API
|
||||||
|
class VulnApi
|
||||||
|
NON_ERROR_CODES = [200, 401, 404].freeze
|
||||||
|
|
||||||
|
class << self
|
||||||
|
attr_accessor :token
|
||||||
|
end
|
||||||
|
|
||||||
|
# @return [ Addressable::URI ]
|
||||||
|
def self.uri
|
||||||
|
@uri ||= Addressable::URI.parse('https://wpvulndb.com/api/v3/')
|
||||||
|
end
|
||||||
|
|
||||||
|
# @param [ String ] path
|
||||||
|
# @param [ Hash ] params
|
||||||
|
#
|
||||||
|
# @return [ Hash ]
|
||||||
|
def self.get(path, params = {})
|
||||||
|
return {} unless token
|
||||||
|
|
||||||
|
res = Browser.get(uri.join(path), params.merge(request_params))
|
||||||
|
|
||||||
|
return JSON.parse(res.body) if NON_ERROR_CODES.include?(res.code)
|
||||||
|
|
||||||
|
raise Error::HTTP, res
|
||||||
|
rescue Error::HTTP => e
|
||||||
|
retries ||= 0
|
||||||
|
|
||||||
|
if (retries += 1) <= 3
|
||||||
|
sleep(1)
|
||||||
|
retry
|
||||||
|
end
|
||||||
|
|
||||||
|
{ 'http_error' => e }
|
||||||
|
end
|
||||||
|
|
||||||
|
# @return [ Hash ]
|
||||||
|
def self.plugin_data(slug)
|
||||||
|
get("plugins/#{slug}")&.dig(slug) || {}
|
||||||
|
end
|
||||||
|
|
||||||
|
# @return [ Hash ]
|
||||||
|
def self.theme_data(slug)
|
||||||
|
get("themes/#{slug}")&.dig(slug) || {}
|
||||||
|
end
|
||||||
|
|
||||||
|
# @return [ Hash ]
|
||||||
|
def self.wordpress_data(version_number)
|
||||||
|
get("wordpresses/#{version_number.tr('.', '')}")&.dig(version_number) || {}
|
||||||
|
end
|
||||||
|
|
||||||
|
# @return [ Hash ]
|
||||||
|
def self.status
|
||||||
|
json = get('status', params: { version: WPScan::VERSION }, cache_ttl: 0)
|
||||||
|
|
||||||
|
json['requests_remaining'] = 'Unlimited' if json['requests_remaining'] == -1
|
||||||
|
|
||||||
|
json
|
||||||
|
end
|
||||||
|
|
||||||
|
# @return [ Hash ]
|
||||||
|
def self.request_params
|
||||||
|
{
|
||||||
|
headers: {
|
||||||
|
'Host' => uri.host, # Reset in case user provided a --vhost for the target
|
||||||
|
'Referer' => nil, # Removes referer set by the cmsscanner to the target url
|
||||||
|
'User-Agent' => Browser.instance.default_user_agent,
|
||||||
|
'Authorization' => "Token token=#{token}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -6,14 +6,19 @@ module WPScan
|
|||||||
class WpItem
|
class WpItem
|
||||||
# @param [ String ] identifier The plugin/theme slug or version number
|
# @param [ String ] identifier The plugin/theme slug or version number
|
||||||
#
|
#
|
||||||
# @return [ Hash ] The JSON data from the DB associated to the identifier
|
# @return [ Hash ] The JSON data from the metadata associated to the identifier
|
||||||
def self.db_data(identifier)
|
def self.metadata_at(identifier)
|
||||||
db[identifier] || {}
|
metadata[identifier] || {}
|
||||||
end
|
end
|
||||||
|
|
||||||
# @return [ JSON ]
|
# @return [ JSON ]
|
||||||
def self.db
|
def self.metadata
|
||||||
@db ||= read_json_file(db_file)
|
@metadata ||= read_json_file(metadata_file)
|
||||||
|
end
|
||||||
|
|
||||||
|
# @return [ String ]
|
||||||
|
def self.metadata_file
|
||||||
|
@metadata_file ||= DB_DIR.join('metadata.json').to_s
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -6,17 +6,17 @@ module WPScan
|
|||||||
class WpItems
|
class WpItems
|
||||||
# @return [ Array<String> ] The slug of all items
|
# @return [ Array<String> ] The slug of all items
|
||||||
def self.all_slugs
|
def self.all_slugs
|
||||||
db.keys
|
metadata.keys
|
||||||
end
|
end
|
||||||
|
|
||||||
# @return [ Array<String> ] The slug of all popular items
|
# @return [ Array<String> ] The slug of all popular items
|
||||||
def self.popular_slugs
|
def self.popular_slugs
|
||||||
db.select { |_key, item| item['popular'] == true }.keys
|
metadata.select { |_key, item| item['popular'] == true }.keys
|
||||||
end
|
end
|
||||||
|
|
||||||
# @return [ Array<String> ] The slug of all vulnerable items
|
# @return [ Array<String> ] The slug of all vulnerable items
|
||||||
def self.vulnerable_slugs
|
def self.vulnerable_slugs
|
||||||
db.reject { |_key, item| item['vulnerabilities'].empty? }.keys
|
metadata.select { |_key, item| item['vulnerabilities'] == true }.keys
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -4,9 +4,9 @@ module WPScan
|
|||||||
module DB
|
module DB
|
||||||
# WP Version
|
# WP Version
|
||||||
class Version < WpItem
|
class Version < WpItem
|
||||||
# @return [ String ]
|
# @return [ Hash ]
|
||||||
def self.db_file
|
def self.metadata
|
||||||
@db_file ||= DB_DIR.join('wordpresses.json').to_s
|
@metadata ||= super['wordpress'] || {}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -12,5 +12,6 @@ end
|
|||||||
require_relative 'errors/enumeration'
|
require_relative 'errors/enumeration'
|
||||||
require_relative 'errors/http'
|
require_relative 'errors/http'
|
||||||
require_relative 'errors/update'
|
require_relative 'errors/update'
|
||||||
|
require_relative 'errors/vuln_api'
|
||||||
require_relative 'errors/wordpress'
|
require_relative 'errors/wordpress'
|
||||||
require_relative 'errors/xmlrpc'
|
require_relative 'errors/xmlrpc'
|
||||||
|
|||||||
20
lib/wpscan/errors/vuln_api.rb
Normal file
20
lib/wpscan/errors/vuln_api.rb
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
module WPScan
|
||||||
|
module Error
|
||||||
|
# Error raised when the token given via --api-token is invalid
|
||||||
|
class InvalidApiToken < Standard
|
||||||
|
def to_s
|
||||||
|
'The API token provided is invalid'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Error raised when the number of API requests has been reached
|
||||||
|
# currently not implemented on the API side
|
||||||
|
class ApiLimitReached < Standard
|
||||||
|
def to_s
|
||||||
|
'Your API limit has been reached'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -4,7 +4,7 @@ module WPScan
|
|||||||
module Finders
|
module Finders
|
||||||
module DynamicFinder
|
module DynamicFinder
|
||||||
module Version
|
module Version
|
||||||
# Version finder using Body Pattern method. Tipically used when the response is not
|
# Version finder using Body Pattern method. Typically used when the response is not
|
||||||
# an HTML doc and Xpath can't be used
|
# an HTML doc and Xpath can't be used
|
||||||
class BodyPattern < Finders::DynamicFinder::Version::Finder
|
class BodyPattern < Finders::DynamicFinder::Version::Finder
|
||||||
# @return [ Hash ]
|
# @return [ Hash ]
|
||||||
@@ -16,7 +16,7 @@ module WPScan
|
|||||||
# @param [ Hash ] opts
|
# @param [ Hash ] opts
|
||||||
# @return [ Version ]
|
# @return [ Version ]
|
||||||
def find(response, _opts = {})
|
def find(response, _opts = {})
|
||||||
return unless response.body =~ self.class::PATTERN
|
return unless response.code != 404 && response.body =~ self.class::PATTERN
|
||||||
|
|
||||||
create_version(
|
create_version(
|
||||||
Regexp.last_match[:v],
|
Regexp.last_match[:v],
|
||||||
|
|||||||
@@ -6,13 +6,15 @@ rescue StandardError => e
|
|||||||
raise "JSON parsing error in #{file} #{e}"
|
raise "JSON parsing error in #{file} #{e}"
|
||||||
end
|
end
|
||||||
|
|
||||||
# @return [ Symbol ]
|
# Sanitize and classify a slug
|
||||||
# @note As a class can not start with a digit or underscore, a D_ is
|
# @note As a class can not start with a digit or underscore, a D_ is
|
||||||
# put as a prefix in such case. Ugly but well :x
|
# put as a prefix in such case. Ugly but well :x
|
||||||
# Not only used to classify slugs though, but Dynamic Finder names as well
|
# Not only used to classify slugs though, but Dynamic Finder names as well
|
||||||
|
#
|
||||||
|
# @return [ Symbol ]
|
||||||
def classify_slug(slug)
|
def classify_slug(slug)
|
||||||
classified = slug.to_s.tr('-', '_').camelize.to_s
|
classified = slug.to_s.gsub(/[^a-z\d\-]/i, '-').gsub(/\-{1,}/, '_').camelize.to_s
|
||||||
classified = "D_#{classified}" if classified[0] =~ /\d/
|
classified = "D_#{classified}" if /\d/.match?(classified[0])
|
||||||
|
|
||||||
classified.to_sym
|
classified.to_sym
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ module WPScan
|
|||||||
end
|
end
|
||||||
|
|
||||||
homepage_res.html.css('meta[name="generator"]').each do |node|
|
homepage_res.html.css('meta[name="generator"]').each do |node|
|
||||||
return true if node['content'] =~ /wordpress/i
|
return true if /wordpress/i.match?(node['content'])
|
||||||
end
|
end
|
||||||
|
|
||||||
return true unless comments_from_page(/wordpress/i, homepage_res).empty?
|
return true unless comments_from_page(/wordpress/i, homepage_res).empty?
|
||||||
|
|||||||
13
lib/wpscan/typhoeus/response.rb
Normal file
13
lib/wpscan/typhoeus/response.rb
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
module Typhoeus
|
||||||
|
# Custom Response class
|
||||||
|
class Response
|
||||||
|
# @note: Ignores requests done to the /status endpoint of the API
|
||||||
|
#
|
||||||
|
# @return [ Boolean ]
|
||||||
|
def from_vuln_api?
|
||||||
|
effective_url.start_with?(WPScan::DB::VulnApi.uri.to_s) && !effective_url.include?('/status')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -2,5 +2,5 @@
|
|||||||
|
|
||||||
# Version
|
# Version
|
||||||
module WPScan
|
module WPScan
|
||||||
VERSION = '3.6.0'
|
VERSION = '3.7.0'
|
||||||
end
|
end
|
||||||
|
|||||||
93
spec/app/controllers/vuln_api_spec.rb
Normal file
93
spec/app/controllers/vuln_api_spec.rb
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
describe WPScan::Controller::VulnApi do
|
||||||
|
subject(:controller) { described_class.new }
|
||||||
|
let(:target_url) { 'http://ex.lo/' }
|
||||||
|
let(:cli_args) { "--url #{target_url}" }
|
||||||
|
|
||||||
|
before do
|
||||||
|
WPScan::ParsedCli.options = rspec_parsed_options(cli_args)
|
||||||
|
end
|
||||||
|
|
||||||
|
describe '#cli_options' do
|
||||||
|
its(:cli_options) { should_not be_empty }
|
||||||
|
its(:cli_options) { should be_a Array }
|
||||||
|
|
||||||
|
it 'contains to correct options' do
|
||||||
|
expect(controller.cli_options.map(&:to_sym)).to eq %i[api_token]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe '#before_scan' do
|
||||||
|
context 'when no --api-token provided' do
|
||||||
|
its(:before_scan) { should be nil }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when --api-token given' do
|
||||||
|
let(:cli_args) { "#{super()} --api-token token" }
|
||||||
|
|
||||||
|
context 'when the token is invalid' do
|
||||||
|
before { expect(WPScan::DB::VulnApi).to receive(:status).and_return('error' => 'HTTP Token: Access denied.') }
|
||||||
|
|
||||||
|
it 'raise an InvalidApiToken error' do
|
||||||
|
expect { controller.before_scan }.to raise_error(WPScan::Error::InvalidApiToken)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when the token is valid' do
|
||||||
|
context 'when the limit has been reached' do
|
||||||
|
before do
|
||||||
|
expect(WPScan::DB::VulnApi)
|
||||||
|
.to receive(:status)
|
||||||
|
.and_return('success' => true, 'plan' => 'free', 'requests_remaining' => 0)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'raises an ApiLimitReached error' do
|
||||||
|
expect { controller.before_scan }.to raise_error(WPScan::Error::ApiLimitReached)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when a HTTP error, like a timeout' do
|
||||||
|
before do
|
||||||
|
expect(WPScan::DB::VulnApi)
|
||||||
|
.to receive(:status)
|
||||||
|
.and_return(
|
||||||
|
'http_error' => WPScan::Error::HTTP.new(
|
||||||
|
Typhoeus::Response.new(effective_url: 'mock-url', return_code: 28)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'raises an HTTP error' do
|
||||||
|
expect { controller.before_scan }
|
||||||
|
.to raise_error(WPScan::Error::HTTP, 'HTTP Error: mock-url (Timeout was reached)')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when the token is valid and no HTTP error' do
|
||||||
|
before do
|
||||||
|
expect(WPScan::DB::VulnApi)
|
||||||
|
.to receive(:status)
|
||||||
|
.and_return('success' => true, 'plan' => 'free', 'requests_remaining' => requests)
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when limited requests' do
|
||||||
|
let(:requests) { 100 }
|
||||||
|
|
||||||
|
it 'does not raise an error' do
|
||||||
|
expect { controller.before_scan }.to_not raise_error
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when unlimited requests' do
|
||||||
|
let(:requests) { 'Unlimited' }
|
||||||
|
|
||||||
|
it 'does not raise an error' do
|
||||||
|
expect { controller.before_scan }.to_not raise_error
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
61
spec/app/finders/passwords/wp_login_spec.rb
Normal file
61
spec/app/finders/passwords/wp_login_spec.rb
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
describe WPScan::Finders::Passwords::WpLogin do
|
||||||
|
subject(:finder) { described_class.new(target) }
|
||||||
|
let(:target) { WPScan::Target.new(url) }
|
||||||
|
let(:url) { 'http://ex.lo/' }
|
||||||
|
|
||||||
|
describe '#valid_credentials?' do
|
||||||
|
context 'when a non 302' do
|
||||||
|
it 'returns false' do
|
||||||
|
expect(finder.valid_credentials?(Typhoeus::Response.new(code: 200, headers: {}))).to be_falsey
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when a 302' do
|
||||||
|
let(:response) { Typhoeus::Response.new(code: 302, headers: headers) }
|
||||||
|
|
||||||
|
context 'when no cookies set' do
|
||||||
|
let(:headers) { {} }
|
||||||
|
|
||||||
|
it 'returns false' do
|
||||||
|
expect(finder.valid_credentials?(response)).to be_falsey
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when no logged_in cookie set' do
|
||||||
|
context 'when only one cookie set' do
|
||||||
|
let(:headers) { 'Set-Cookie: wordpress_test_cookie=WP+Cookie+check; path=/' }
|
||||||
|
|
||||||
|
it 'returns false' do
|
||||||
|
expect(finder.valid_credentials?(response)).to be_falsey
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when multiple cookies set' do
|
||||||
|
let(:headers) do
|
||||||
|
"Set-Cookie: wordpress_test_cookie=WP+Cookie+check; path=/\r\n" \
|
||||||
|
'Set-Cookie: something=value; path=/'
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'returns false' do
|
||||||
|
expect(finder.valid_credentials?(response)).to be_falsey
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when logged_in cookie set' do
|
||||||
|
let(:headers) do
|
||||||
|
"Set-Cookie: wordpress_test_cookie=WP+Cookie+check; path=/\r\r" \
|
||||||
|
"Set-Cookie: wordpress_xxx=yyy; path=/wp-content/plugins; httponly\r\n" \
|
||||||
|
"Set-Cookie: wordpress_xxx=yyy; path=/wp-admin; httponly\r\n" \
|
||||||
|
'Set-Cookie: wordpress_logged_in_xxx=yyy; path=/; httponly'
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'returns false' do
|
||||||
|
expect(finder.valid_credentials?(response)).to eql true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -81,24 +81,39 @@ describe WPScan::Model::Plugin do
|
|||||||
end
|
end
|
||||||
|
|
||||||
describe '#latest_version, #last_updated, #popular' do
|
describe '#latest_version, #last_updated, #popular' do
|
||||||
context 'when none' do
|
before { allow(plugin).to receive(:db_data).and_return(db_data) }
|
||||||
let(:slug) { 'vulnerable-not-popular' }
|
|
||||||
|
context 'when no db_data and no metadata' do
|
||||||
|
let(:slug) { 'not-known' }
|
||||||
|
let(:db_data) { {} }
|
||||||
|
|
||||||
its(:latest_version) { should be_nil }
|
its(:latest_version) { should be_nil }
|
||||||
its(:last_updated) { should be_nil }
|
its(:last_updated) { should be_nil }
|
||||||
its(:popular?) { should be false }
|
its(:popular?) { should be false }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when values' do
|
context 'when no db_data but metadata' do
|
||||||
let(:slug) { 'no-vulns-popular' }
|
let(:slug) { 'no-vulns-popular' }
|
||||||
|
let(:db_data) { {} }
|
||||||
|
|
||||||
its(:latest_version) { should eql WPScan::Model::Version.new('2.0') }
|
its(:latest_version) { should eql WPScan::Model::Version.new('2.0') }
|
||||||
its(:last_updated) { should eql '2015-05-16T00:00:00.000Z' }
|
its(:last_updated) { should eql '2015-05-16T00:00:00.000Z' }
|
||||||
its(:popular?) { should be true }
|
its(:popular?) { should be true }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'when db_data' do
|
||||||
|
let(:slug) { 'no-vulns-popular' }
|
||||||
|
let(:db_data) { vuln_api_data_for('plugins/no-vulns-popular') }
|
||||||
|
|
||||||
|
its(:latest_version) { should eql WPScan::Model::Version.new('2.1') }
|
||||||
|
its(:last_updated) { should eql '2015-05-16T00:00:00.000Z-via-api' }
|
||||||
|
its(:popular?) { should be true }
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '#outdated?' do
|
describe '#outdated?' do
|
||||||
|
before { allow(plugin).to receive(:db_data).and_return({}) }
|
||||||
|
|
||||||
context 'when last_version' do
|
context 'when last_version' do
|
||||||
let(:slug) { 'no-vulns-popular' }
|
let(:slug) { 'no-vulns-popular' }
|
||||||
|
|
||||||
@@ -116,13 +131,13 @@ describe WPScan::Model::Plugin do
|
|||||||
.and_return(WPScan::Model::Version.new(version_number))
|
.and_return(WPScan::Model::Version.new(version_number))
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when version < last_version' do
|
context 'when version < latest_version' do
|
||||||
let(:version_number) { '1.2' }
|
let(:version_number) { '1.2' }
|
||||||
|
|
||||||
its(:outdated?) { should eql true }
|
its(:outdated?) { should eql true }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when version >= last_version' do
|
context 'when version >= latest_version' do
|
||||||
let(:version_number) { '3.0' }
|
let(:version_number) { '3.0' }
|
||||||
|
|
||||||
its(:outdated?) { should eql false }
|
its(:outdated?) { should eql false }
|
||||||
@@ -130,7 +145,7 @@ describe WPScan::Model::Plugin do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when no last_version' do
|
context 'when no latest_version' do
|
||||||
let(:slug) { 'vulnerable-not-popular' }
|
let(:slug) { 'vulnerable-not-popular' }
|
||||||
|
|
||||||
context 'when no version' do
|
context 'when no version' do
|
||||||
@@ -153,6 +168,8 @@ describe WPScan::Model::Plugin do
|
|||||||
end
|
end
|
||||||
|
|
||||||
describe '#vulnerabilities' do
|
describe '#vulnerabilities' do
|
||||||
|
before { allow(plugin).to receive(:db_data).and_return(db_data) }
|
||||||
|
|
||||||
after do
|
after do
|
||||||
expect(plugin.vulnerabilities).to eq @expected
|
expect(plugin.vulnerabilities).to eq @expected
|
||||||
expect(plugin.vulnerable?).to eql @expected.empty? ? false : true
|
expect(plugin.vulnerable?).to eql @expected.empty? ? false : true
|
||||||
@@ -160,6 +177,7 @@ describe WPScan::Model::Plugin do
|
|||||||
|
|
||||||
context 'when plugin not in the DB' do
|
context 'when plugin not in the DB' do
|
||||||
let(:slug) { 'not-in-db' }
|
let(:slug) { 'not-in-db' }
|
||||||
|
let(:db_data) { {} }
|
||||||
|
|
||||||
it 'returns an empty array' do
|
it 'returns an empty array' do
|
||||||
@expected = []
|
@expected = []
|
||||||
@@ -169,6 +187,7 @@ describe WPScan::Model::Plugin do
|
|||||||
context 'when in the DB' do
|
context 'when in the DB' do
|
||||||
context 'when no vulnerabilities' do
|
context 'when no vulnerabilities' do
|
||||||
let(:slug) { 'no-vulns-popular' }
|
let(:slug) { 'no-vulns-popular' }
|
||||||
|
let(:db_data) { vuln_api_data_for('plugins/no-vulns-popular') }
|
||||||
|
|
||||||
it 'returns an empty array' do
|
it 'returns an empty array' do
|
||||||
@expected = []
|
@expected = []
|
||||||
@@ -177,10 +196,12 @@ describe WPScan::Model::Plugin do
|
|||||||
|
|
||||||
context 'when vulnerabilities' do
|
context 'when vulnerabilities' do
|
||||||
let(:slug) { 'vulnerable-not-popular' }
|
let(:slug) { 'vulnerable-not-popular' }
|
||||||
|
let(:db_data) { vuln_api_data_for('plugins/vulnerable-not-popular') }
|
||||||
|
|
||||||
let(:all_vulns) do
|
let(:all_vulns) do
|
||||||
[
|
[
|
||||||
WPScan::Vulnerability.new(
|
WPScan::Vulnerability.new(
|
||||||
'First Vuln',
|
'First Vuln <= 6.3.10 - LFI',
|
||||||
{ wpvulndb: '1' },
|
{ wpvulndb: '1' },
|
||||||
'LFI',
|
'LFI',
|
||||||
'6.3.10'
|
'6.3.10'
|
||||||
|
|||||||
@@ -86,8 +86,179 @@ describe WPScan::Model::Theme do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe '#latest_version, #last_updated, #popular' do
|
||||||
|
before do
|
||||||
|
stub_request(:get, /.*\.css\z/)
|
||||||
|
allow(theme).to receive(:db_data).and_return(db_data)
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when no db_data and no metadata' do
|
||||||
|
let(:slug) { 'not-known' }
|
||||||
|
let(:db_data) { {} }
|
||||||
|
|
||||||
|
its(:latest_version) { should be_nil }
|
||||||
|
its(:last_updated) { should be_nil }
|
||||||
|
its(:popular?) { should be false }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when no db_data but metadata' do
|
||||||
|
let(:slug) { 'no-vulns-popular' }
|
||||||
|
let(:db_data) { {} }
|
||||||
|
|
||||||
|
its(:latest_version) { should eql WPScan::Model::Version.new('2.0') }
|
||||||
|
its(:last_updated) { should eql '2015-05-16T00:00:00.000Z' }
|
||||||
|
its(:popular?) { should be true }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when db_data' do
|
||||||
|
let(:slug) { 'no-vulns-popular' }
|
||||||
|
let(:db_data) { vuln_api_data_for('themes/no-vulns-popular') }
|
||||||
|
|
||||||
|
its(:latest_version) { should eql WPScan::Model::Version.new('2.2') }
|
||||||
|
its(:last_updated) { should eql '2015-05-16T00:00:00.000Z-via-api' }
|
||||||
|
its(:popular?) { should be true }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe '#outdated?' do
|
||||||
|
before do
|
||||||
|
stub_request(:get, /.*\.css\z/)
|
||||||
|
allow(theme).to receive(:db_data).and_return({})
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when last_version' do
|
||||||
|
let(:slug) { 'no-vulns-popular' }
|
||||||
|
|
||||||
|
context 'when no version' do
|
||||||
|
before { expect(theme).to receive(:version).at_least(1).and_return(nil) }
|
||||||
|
|
||||||
|
its(:outdated?) { should eql false }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when version' do
|
||||||
|
before do
|
||||||
|
expect(theme)
|
||||||
|
.to receive(:version)
|
||||||
|
.at_least(1)
|
||||||
|
.and_return(WPScan::Model::Version.new(version_number))
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when version < latest_version' do
|
||||||
|
let(:version_number) { '1.2' }
|
||||||
|
|
||||||
|
its(:outdated?) { should eql true }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when version >= latest_version' do
|
||||||
|
let(:version_number) { '3.0' }
|
||||||
|
|
||||||
|
its(:outdated?) { should eql false }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when no latest_version' do
|
||||||
|
let(:slug) { 'vulnerable-not-popular' }
|
||||||
|
|
||||||
|
context 'when no version' do
|
||||||
|
before { expect(theme).to receive(:version).at_least(1).and_return(nil) }
|
||||||
|
|
||||||
|
its(:outdated?) { should eql false }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when version' do
|
||||||
|
before do
|
||||||
|
expect(theme)
|
||||||
|
.to receive(:version)
|
||||||
|
.at_least(1)
|
||||||
|
.and_return(WPScan::Model::Version.new('1.0'))
|
||||||
|
end
|
||||||
|
|
||||||
|
its(:outdated?) { should eql false }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe '#vulnerabilities' do
|
describe '#vulnerabilities' do
|
||||||
xit
|
before do
|
||||||
|
stub_request(:get, /.*\.css\z/)
|
||||||
|
allow(theme).to receive(:db_data).and_return(db_data)
|
||||||
|
end
|
||||||
|
|
||||||
|
after do
|
||||||
|
expect(theme.vulnerabilities).to eq @expected
|
||||||
|
expect(theme.vulnerable?).to eql @expected.empty? ? false : true
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when theme not in the DB' do
|
||||||
|
let(:slug) { 'not-in-db' }
|
||||||
|
let(:db_data) { {} }
|
||||||
|
|
||||||
|
it 'returns an empty array' do
|
||||||
|
@expected = []
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when in the DB' do
|
||||||
|
context 'when no vulnerabilities' do
|
||||||
|
let(:slug) { 'no-vulns-popular' }
|
||||||
|
let(:db_data) { vuln_api_data_for('themes/no-vulns-popular') }
|
||||||
|
|
||||||
|
it 'returns an empty array' do
|
||||||
|
@expected = []
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when vulnerabilities' do
|
||||||
|
let(:slug) { 'vulnerable-not-popular' }
|
||||||
|
let(:db_data) { vuln_api_data_for('themes/vulnerable-not-popular') }
|
||||||
|
|
||||||
|
let(:all_vulns) do
|
||||||
|
[
|
||||||
|
WPScan::Vulnerability.new(
|
||||||
|
'First Vuln',
|
||||||
|
{ wpvulndb: '1' },
|
||||||
|
'LFI',
|
||||||
|
'6.3.10'
|
||||||
|
),
|
||||||
|
WPScan::Vulnerability.new('No Fixed In', wpvulndb: '2')
|
||||||
|
]
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when no theme version' do
|
||||||
|
before { expect(theme).to receive(:version).at_least(1).and_return(false) }
|
||||||
|
|
||||||
|
it 'returns all the vulnerabilities' do
|
||||||
|
@expected = all_vulns
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when theme version' do
|
||||||
|
before do
|
||||||
|
expect(theme)
|
||||||
|
.to receive(:version)
|
||||||
|
.at_least(1)
|
||||||
|
.and_return(WPScan::Model::Version.new(number))
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when < to a fixed_in' do
|
||||||
|
let(:number) { '5.0' }
|
||||||
|
|
||||||
|
it 'returns it' do
|
||||||
|
@expected = all_vulns
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when >= to a fixed_in' do
|
||||||
|
let(:number) { '6.3.10' }
|
||||||
|
|
||||||
|
it 'does not return it ' do
|
||||||
|
@expected = [all_vulns.last]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '#parent_theme' do
|
describe '#parent_theme' do
|
||||||
|
|||||||
@@ -40,11 +40,13 @@ describe WPScan::Model::WpVersion do
|
|||||||
|
|
||||||
describe '#vulnerabilities' do
|
describe '#vulnerabilities' do
|
||||||
subject(:version) { described_class.new(number) }
|
subject(:version) { described_class.new(number) }
|
||||||
|
before { allow(version).to receive(:db_data).and_return(db_data) }
|
||||||
|
|
||||||
context 'when no vulns' do
|
context 'when no vulns' do
|
||||||
let(:number) { '4.4' }
|
let(:number) { '4.4' }
|
||||||
|
let(:db_data) { { 'vulnerabilities' => [] } }
|
||||||
|
|
||||||
its(:vulnerabilities) { should eql([]) }
|
its(:vulnerabilities) { should be_empty }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when vulnerable' do
|
context 'when vulnerable' do
|
||||||
@@ -53,23 +55,8 @@ describe WPScan::Model::WpVersion do
|
|||||||
expect(version).to be_vulnerable
|
expect(version).to be_vulnerable
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when a signle vuln' do
|
let(:all_vulns) do
|
||||||
let(:number) { '3.8' }
|
[
|
||||||
|
|
||||||
it 'returns the expected result' do
|
|
||||||
@expected = [WPScan::Vulnerability.new(
|
|
||||||
'WP 3.8 - Vuln 1',
|
|
||||||
{ url: %w[url-4], osvdb: %w[11], wpvulndb: '3' },
|
|
||||||
'AUTHBYPASS'
|
|
||||||
)]
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'when multiple vulns' do
|
|
||||||
let(:number) { '3.8.1' }
|
|
||||||
|
|
||||||
it 'returns the expected results' do
|
|
||||||
@expected = [
|
|
||||||
WPScan::Vulnerability.new(
|
WPScan::Vulnerability.new(
|
||||||
'WP 3.8.1 - Vuln 1',
|
'WP 3.8.1 - Vuln 1',
|
||||||
{ wpvulndb: '1' },
|
{ wpvulndb: '1' },
|
||||||
@@ -83,31 +70,67 @@ describe WPScan::Model::WpVersion do
|
|||||||
)
|
)
|
||||||
]
|
]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'when a signle vuln' do
|
||||||
|
let(:number) { '3.8.1' }
|
||||||
|
let(:db_data) { vuln_api_data_for('wordpresses/38') }
|
||||||
|
|
||||||
|
it 'returns the expected result' do
|
||||||
|
@expected = [WPScan::Vulnerability.new(
|
||||||
|
'WP 3.8 - Vuln 1',
|
||||||
|
{ url: %w[url-4], wpvulndb: '3' },
|
||||||
|
'AUTHBYPASS'
|
||||||
|
)]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when multiple vulns' do
|
||||||
|
let(:number) { '3.8.1' }
|
||||||
|
let(:db_data) { vuln_api_data_for('wordpresses/381') }
|
||||||
|
|
||||||
|
it 'returns the expected results' do
|
||||||
|
@expected = [
|
||||||
|
WPScan::Vulnerability.new(
|
||||||
|
'WP 3.8.1 - Vuln 1',
|
||||||
|
{ wpvulndb: '1' },
|
||||||
|
'SQLI'
|
||||||
|
),
|
||||||
|
WPScan::Vulnerability.new(
|
||||||
|
'WP 3.8.1 - Vuln 2',
|
||||||
|
{ url: %w[url-2 url-3], cve: %w[2014-0166], wpvulndb: '2' },
|
||||||
|
nil,
|
||||||
|
'3.8.2'
|
||||||
|
)
|
||||||
|
]
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '#release_date' do
|
describe '#metadata, #release_date, #status' do
|
||||||
subject(:version) { described_class.new('3.8.1') }
|
subject(:version) { described_class.new('3.8.1') }
|
||||||
|
|
||||||
|
before { allow(version).to receive(:db_data).and_return(db_data) }
|
||||||
|
|
||||||
|
context 'when no db_data' do
|
||||||
|
let(:db_data) { {} }
|
||||||
|
|
||||||
its(:release_date) { should eql '2014-01-23' }
|
its(:release_date) { should eql '2014-01-23' }
|
||||||
|
|
||||||
context 'when the version is not in the DB' do
|
|
||||||
subject(:version) { described_class.new('3.8.2') }
|
|
||||||
|
|
||||||
its(:release_date) { should eql 'Unknown' }
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe '#status' do
|
|
||||||
subject(:version) { described_class.new('3.8.1') }
|
|
||||||
|
|
||||||
its(:status) { should eql 'outdated' }
|
its(:status) { should eql 'outdated' }
|
||||||
|
|
||||||
context 'when the version is not in the DB' do
|
context 'when the version is not in the metadata' do
|
||||||
subject(:version) { described_class.new('3.8.2') }
|
subject(:version) { described_class.new('3.8.2') }
|
||||||
|
|
||||||
its(:release_date) { should eql 'Unknown' }
|
its(:release_date) { should eql 'Unknown' }
|
||||||
|
its(:status) { should eql 'Unknown' }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when db_data' do
|
||||||
|
let(:db_data) { vuln_api_data_for('wordpresses/381') }
|
||||||
|
|
||||||
|
its(:release_date) { should eql '2014-01-23-via-api' }
|
||||||
|
its(:status) { should eql 'outdated-via-api' }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ describe 'App::Views' do
|
|||||||
# in the expected output.
|
# in the expected output.
|
||||||
%i[JSON CliNoColour].each do |formatter|
|
%i[JSON CliNoColour].each do |formatter|
|
||||||
context "when #{formatter}" do
|
context "when #{formatter}" do
|
||||||
|
it_behaves_like 'App::Views::VulnApi'
|
||||||
it_behaves_like 'App::Views::WpVersion'
|
it_behaves_like 'App::Views::WpVersion'
|
||||||
it_behaves_like 'App::Views::MainTheme'
|
it_behaves_like 'App::Views::MainTheme'
|
||||||
it_behaves_like 'App::Views::Enumeration'
|
it_behaves_like 'App::Views::Enumeration'
|
||||||
|
|||||||
4822
spec/fixtures/db/dynamic_finders.yml
vendored
4822
spec/fixtures/db/dynamic_finders.yml
vendored
File diff suppressed because it is too large
Load Diff
56
spec/fixtures/db/metadata.json
vendored
Normal file
56
spec/fixtures/db/metadata.json
vendored
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"wordpress": {
|
||||||
|
"4.0": {
|
||||||
|
"release_date": "2014-09-04",
|
||||||
|
"status": "latest"
|
||||||
|
},
|
||||||
|
"3.8.1": {
|
||||||
|
"release_date": "2014-01-23",
|
||||||
|
"status": "outdated"
|
||||||
|
},
|
||||||
|
"3.8": {
|
||||||
|
"release_date": "2013-12-12",
|
||||||
|
"status": "insecure"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"plugins": {
|
||||||
|
"no-vulns-popular": {
|
||||||
|
"vulnerabilities": false,
|
||||||
|
"popular": true,
|
||||||
|
"latest_version": "2.0",
|
||||||
|
"last_updated": "2015-05-16T00:00:00.000Z"
|
||||||
|
},
|
||||||
|
"vulnerable-not-popular": {
|
||||||
|
"latest_version": null,
|
||||||
|
"last_updated": null,
|
||||||
|
"popular": false,
|
||||||
|
"vulnerabilities": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"themes": {
|
||||||
|
"no-vulns-popular": {
|
||||||
|
"popular": true,
|
||||||
|
"latest_version": "2.0",
|
||||||
|
"last_updated": "2015-05-16T00:00:00.000Z",
|
||||||
|
"vulnerabilities": false
|
||||||
|
},
|
||||||
|
"vulnerable-not-popular": {
|
||||||
|
"latest_version": null,
|
||||||
|
"last_updated": null,
|
||||||
|
"popular": false,
|
||||||
|
"vulnerabilities": true
|
||||||
|
},
|
||||||
|
"dignitas-themes": {
|
||||||
|
"popular": true,
|
||||||
|
"latest_version": null,
|
||||||
|
"last_updated": null,
|
||||||
|
"vulnerabilities" : true
|
||||||
|
},
|
||||||
|
"yaaburnee-themes": {
|
||||||
|
"popular": false,
|
||||||
|
"latest_version": null,
|
||||||
|
"last_updated": null,
|
||||||
|
"vulnerabilities" : true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
25
spec/fixtures/db/plugins.json
vendored
25
spec/fixtures/db/plugins.json
vendored
@@ -1,25 +0,0 @@
|
|||||||
{
|
|
||||||
"no-vulns-popular": {
|
|
||||||
"vulnerabilities": [],
|
|
||||||
"popular": true,
|
|
||||||
"latest_version": "2.0",
|
|
||||||
"last_updated": "2015-05-16T00:00:00.000Z"
|
|
||||||
},
|
|
||||||
"vulnerable-not-popular": {
|
|
||||||
"latest_version": null,
|
|
||||||
"last_updated": null,
|
|
||||||
"popular": false,
|
|
||||||
"vulnerabilities" : [
|
|
||||||
{
|
|
||||||
"title" : "First Vuln",
|
|
||||||
"fixed_in" : "6.3.10",
|
|
||||||
"id" : 1,
|
|
||||||
"vuln_type": "LFI"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"title": "No Fixed In",
|
|
||||||
"id": 2
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
1
spec/fixtures/db/sponsor.txt
vendored
Normal file
1
spec/fixtures/db/sponsor.txt
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Sponsored By Kittens
|
||||||
48
spec/fixtures/db/themes.json
vendored
48
spec/fixtures/db/themes.json
vendored
@@ -1,48 +0,0 @@
|
|||||||
{
|
|
||||||
"no-vulns-popular": {
|
|
||||||
"popular": true,
|
|
||||||
"latest_version": "2.0",
|
|
||||||
"last_updated": "2015-05-16T00:00:00.000Z",
|
|
||||||
"vulnerabilities": []
|
|
||||||
},
|
|
||||||
"dignitas-themes": {
|
|
||||||
"popular": true,
|
|
||||||
"latest_version": null,
|
|
||||||
"last_updated": null,
|
|
||||||
"vulnerabilities" : [
|
|
||||||
{
|
|
||||||
"created_at" : "2015-03-05T19:25:59.000Z",
|
|
||||||
"updated_at" : "2015-03-05T19:37:47.000Z",
|
|
||||||
"references": {
|
|
||||||
"url" : [
|
|
||||||
"http://research.evex.pw/?vuln=6",
|
|
||||||
"http://packetstormsecurity.com/files/130652/"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"title" : "Dignitas 1.1.9 - Privilage Escalation",
|
|
||||||
"id" : 7825,
|
|
||||||
"vuln_type" : "AUTHBYPASS"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"yaaburnee-themes": {
|
|
||||||
"popular": false,
|
|
||||||
"latest_version": null,
|
|
||||||
"last_updated": null,
|
|
||||||
"vulnerabilities" : [
|
|
||||||
{
|
|
||||||
"created_at" : "2015-03-05T19:25:44.000Z",
|
|
||||||
"updated_at" : "2015-03-05T19:41:14.000Z",
|
|
||||||
"references": {
|
|
||||||
"url" : [
|
|
||||||
"http://research.evex.pw/?vuln=6",
|
|
||||||
"http://packetstormsecurity.com/files/130652/"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"title" : "Ya'aburnee 1.0.7 - Privilage Escalation",
|
|
||||||
"id" : 7824,
|
|
||||||
"vuln_type" : "AUTHBYPASS"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
6
spec/fixtures/db/vuln_api/plugins/no-vulns-popular.json
vendored
Normal file
6
spec/fixtures/db/vuln_api/plugins/no-vulns-popular.json
vendored
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"vulnerabilities": [],
|
||||||
|
"popular": true,
|
||||||
|
"latest_version": "2.1",
|
||||||
|
"last_updated": "2015-05-16T00:00:00.000Z-via-api"
|
||||||
|
}
|
||||||
17
spec/fixtures/db/vuln_api/plugins/vulnerable-not-popular.json
vendored
Normal file
17
spec/fixtures/db/vuln_api/plugins/vulnerable-not-popular.json
vendored
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"latest_version": null,
|
||||||
|
"last_updated": null,
|
||||||
|
"popular": false,
|
||||||
|
"vulnerabilities" : [
|
||||||
|
{
|
||||||
|
"title" : "First Vuln \u003c= 6.3.10 - LFI",
|
||||||
|
"fixed_in" : "6.3.10",
|
||||||
|
"id" : 1,
|
||||||
|
"vuln_type": "LFI"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "No Fixed In",
|
||||||
|
"id": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
22
spec/fixtures/db/vuln_api/themes/dignitas-themes.json
vendored
Normal file
22
spec/fixtures/db/vuln_api/themes/dignitas-themes.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"popular": true,
|
||||||
|
"latest_version": null,
|
||||||
|
"last_updated": null,
|
||||||
|
"vulnerabilities" : [
|
||||||
|
{
|
||||||
|
"created_at" : "2015-03-05T19:25:59.000Z",
|
||||||
|
"updated_at" : "2015-03-05T19:37:47.000Z",
|
||||||
|
"references": {
|
||||||
|
"url" : [
|
||||||
|
"http://research.evex.pw/?vuln=6"
|
||||||
|
],
|
||||||
|
"packetstorm": [
|
||||||
|
"130652"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"title" : "Dignitas 1.1.9 - Privilage Escalation",
|
||||||
|
"id" : 7825,
|
||||||
|
"vuln_type" : "AUTHBYPASS"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
6
spec/fixtures/db/vuln_api/themes/no-vulns-popular.json
vendored
Normal file
6
spec/fixtures/db/vuln_api/themes/no-vulns-popular.json
vendored
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"popular": true,
|
||||||
|
"latest_version": "2.2",
|
||||||
|
"last_updated": "2015-05-16T00:00:00.000Z-via-api",
|
||||||
|
"vulnerabilities": []
|
||||||
|
}
|
||||||
17
spec/fixtures/db/vuln_api/themes/vulnerable-not-popular.json
vendored
Normal file
17
spec/fixtures/db/vuln_api/themes/vulnerable-not-popular.json
vendored
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"latest_version": null,
|
||||||
|
"last_updated": null,
|
||||||
|
"popular": false,
|
||||||
|
"vulnerabilities" : [
|
||||||
|
{
|
||||||
|
"title" : "First Vuln",
|
||||||
|
"fixed_in" : "6.3.10",
|
||||||
|
"id" : 1,
|
||||||
|
"vuln_type": "LFI"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "No Fixed In",
|
||||||
|
"id": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
22
spec/fixtures/db/vuln_api/themes/yaaburnee-themes.json
vendored
Normal file
22
spec/fixtures/db/vuln_api/themes/yaaburnee-themes.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"popular": false,
|
||||||
|
"latest_version": null,
|
||||||
|
"last_updated": null,
|
||||||
|
"vulnerabilities" : [
|
||||||
|
{
|
||||||
|
"created_at" : "2015-03-05T19:25:44.000Z",
|
||||||
|
"updated_at" : "2015-03-05T19:41:14.000Z",
|
||||||
|
"references": {
|
||||||
|
"url" : [
|
||||||
|
"http://research.evex.pw/?vuln=6",
|
||||||
|
],
|
||||||
|
"packetstorm": [
|
||||||
|
"130652"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"title" : "Ya'aburnee 1.0.7 - Privilage Escalation",
|
||||||
|
"id" : 7824,
|
||||||
|
"vuln_type" : "AUTHBYPASS"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
17
spec/fixtures/db/vuln_api/wordpresses/38.json
vendored
Normal file
17
spec/fixtures/db/vuln_api/wordpresses/38.json
vendored
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"release_date" : "2013-12-12",
|
||||||
|
"status": "insecure",
|
||||||
|
"vulnerabilities" : [
|
||||||
|
{
|
||||||
|
"references": {
|
||||||
|
"url" : ["url-4"],
|
||||||
|
"osvdb" : ["11"]
|
||||||
|
},
|
||||||
|
"created_at" : "2014-08-01T10:58:19.000Z",
|
||||||
|
"updated_at" : "2014-09-16T15:45:26.000Z",
|
||||||
|
"title" : "WP 3.8 - Vuln 1",
|
||||||
|
"id" : 3,
|
||||||
|
"vuln_type" : "AUTHBYPASS"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
27
spec/fixtures/db/vuln_api/wordpresses/381.json
vendored
Normal file
27
spec/fixtures/db/vuln_api/wordpresses/381.json
vendored
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
"release_date" : "2014-01-23-via-api",
|
||||||
|
"status": "outdated-via-api",
|
||||||
|
"vulnerabilities" : [
|
||||||
|
{
|
||||||
|
"created_at" : "2014-08-01T10:58:19.000Z",
|
||||||
|
"updated_at" : "2014-09-16T13:52:17.000Z",
|
||||||
|
"title" : "WP 3.8.1 - Vuln 1",
|
||||||
|
"id" : 1,
|
||||||
|
"vuln_type" : "SQLI",
|
||||||
|
"published_date" : null,
|
||||||
|
"fixed_in" : null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"references" : {
|
||||||
|
"cve" : ["2014-0166"],
|
||||||
|
"osvdb" : ["10"],
|
||||||
|
"url" : ["url-2","url-3"]
|
||||||
|
},
|
||||||
|
"fixed_in" : "3.8.2",
|
||||||
|
"created_at" : "2014-08-01T10:58:19.000Z",
|
||||||
|
"updated_at" : "2014-09-16T13:53:11.000Z",
|
||||||
|
"id" : 2,
|
||||||
|
"title" : "WP 3.8.1 - Vuln 2"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
4
spec/fixtures/db/vuln_api/wordpresses/40.json
vendored
Normal file
4
spec/fixtures/db/vuln_api/wordpresses/40.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"release_date" : "2014-09-04",
|
||||||
|
"status": "latest"
|
||||||
|
}
|
||||||
50
spec/fixtures/db/wordpresses.json
vendored
50
spec/fixtures/db/wordpresses.json
vendored
@@ -1,50 +0,0 @@
|
|||||||
{
|
|
||||||
"4.0": {
|
|
||||||
"release_date" : "2014-09-04",
|
|
||||||
"status": "latest"
|
|
||||||
},
|
|
||||||
"3.8.1": {
|
|
||||||
"release_date" : "2014-01-23",
|
|
||||||
"status": "outdated",
|
|
||||||
"vulnerabilities" : [
|
|
||||||
{
|
|
||||||
"created_at" : "2014-08-01T10:58:19.000Z",
|
|
||||||
"updated_at" : "2014-09-16T13:52:17.000Z",
|
|
||||||
"title" : "WP 3.8.1 - Vuln 1",
|
|
||||||
"id" : 1,
|
|
||||||
"vuln_type" : "SQLI",
|
|
||||||
"published_date" : null,
|
|
||||||
"fixed_in" : null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"references" : {
|
|
||||||
"cve" : ["2014-0166"],
|
|
||||||
"osvdb" : ["10"],
|
|
||||||
"url" : ["url-2","url-3"]
|
|
||||||
},
|
|
||||||
"fixed_in" : "3.8.2",
|
|
||||||
"created_at" : "2014-08-01T10:58:19.000Z",
|
|
||||||
"updated_at" : "2014-09-16T13:53:11.000Z",
|
|
||||||
"id" : 2,
|
|
||||||
"title" : "WP 3.8.1 - Vuln 2"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"3.8": {
|
|
||||||
"release_date" : "2013-12-12",
|
|
||||||
"status": "insecure",
|
|
||||||
"vulnerabilities" : [
|
|
||||||
{
|
|
||||||
"references": {
|
|
||||||
"url" : ["url-4"],
|
|
||||||
"osvdb" : ["11"]
|
|
||||||
},
|
|
||||||
"created_at" : "2014-08-01T10:58:19.000Z",
|
|
||||||
"updated_at" : "2014-09-16T15:45:26.000Z",
|
|
||||||
"title" : "WP 3.8 - Vuln 1",
|
|
||||||
"id" : 3,
|
|
||||||
"vuln_type" : "AUTHBYPASS"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
1527
spec/fixtures/dynamic_finders/expected.yml
vendored
1527
spec/fixtures/dynamic_finders/expected.yml
vendored
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,58 @@
|
|||||||
|
# Copyright (C) 2019 Jörn Lund
|
||||||
|
# This file is distributed under the same license as the ACF Duplicate Repeater plugin.
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: ACF Duplicate Repeater 2.0.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/acf-duplicate-repeater\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"POT-Creation-Date: 2019-08-22T14:32:38+00:00\n"
|
||||||
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
|
"X-Generator: WP-CLI 2.2.0\n"
|
||||||
|
"X-Domain: acf-duplicate-repeater\n"
|
||||||
|
|
||||||
|
#. Plugin Name of the plugin
|
||||||
|
msgid "ACF Duplicate Repeater"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Plugin URI of the plugin
|
||||||
|
msgid "https://github.com/mcguffin/acf-duplicate-repeater"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Description of the plugin
|
||||||
|
msgid "Duplicate Repeater and Layout Fields in ACF Pro"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Author of the plugin
|
||||||
|
msgid "Jörn Lund"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Author URI of the plugin
|
||||||
|
msgid "https://github.com/mcguffin"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Translators: ACF-Pro URL
|
||||||
|
#: include/ACFDuplicateRepeater/Core/Core.php:69
|
||||||
|
msgid "The ACF Duplicate Repeater plugin only provides support for <a href=\"%s\">ACF Pro 5.7</a> and up."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Translators: Plugins page URL
|
||||||
|
#: include/ACFDuplicateRepeater/Core/Core.php:78
|
||||||
|
msgid "Please upgrade ACF Pro to the latest Version on the <a href=\"%s\">plugins page</a>."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Translators: Plugins page URL
|
||||||
|
#: include/ACFDuplicateRepeater/Core/Core.php:87
|
||||||
|
msgid "You can disable and uninstall the plugin on the <a href=\"%2$s\">plugins page</a>."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/ACFDuplicateRepeater/Core/Core.php:123
|
||||||
|
msgid "Duplicate Entry"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/ACFDuplicateRepeater/Core/Core.php:127
|
||||||
|
msgid "Duplicate Layout"
|
||||||
|
msgstr ""
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
# Changelog ##
|
||||||
|
|
||||||
|
## 1.0.0 - 26 Aug 2019
|
||||||
|
* Initial release
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
# Changelog ##
|
||||||
|
|
||||||
|
## 1.0.0 - 16 Aug 2019
|
||||||
|
* Initial release
|
||||||
@@ -0,0 +1,153 @@
|
|||||||
|
# Copyright (C) 2019 mcguffin
|
||||||
|
# This file is distributed under the same license as the ACF QuickEdit Fields plugin.
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: ACF QuickEdit Fields 3.0.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/acf-quick-edit-fields\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"POT-Creation-Date: 2019-09-03T06:48:12+00:00\n"
|
||||||
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
|
"X-Generator: WP-CLI 2.2.0\n"
|
||||||
|
"X-Domain: acf-quickedit-fields\n"
|
||||||
|
|
||||||
|
#. Plugin Name of the plugin
|
||||||
|
msgid "ACF QuickEdit Fields"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Plugin URI of the plugin
|
||||||
|
msgid "https://github.com/mcguffin/acf-quickedit-fields"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Description of the plugin
|
||||||
|
msgid "Show Advanced Custom Fields in post list table. Edit field values in Quick Edit and / or Bulk edit."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Author of the plugin
|
||||||
|
msgid "mcguffin"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Author URI of the plugin
|
||||||
|
msgid "https://github.com/mcguffin"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/ACFQuickEdit/Admin/FieldGroup.php:52
|
||||||
|
msgid "Column View"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/ACFQuickEdit/Admin/FieldGroup.php:56
|
||||||
|
msgid "Show a column in the posts list table"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/ACFQuickEdit/Admin/FieldGroup.php:78
|
||||||
|
msgid "Show Column"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/ACFQuickEdit/Admin/FieldGroup.php:83
|
||||||
|
msgid "Show column in list tables"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/ACFQuickEdit/Admin/FieldGroup.php:91
|
||||||
|
msgid "Sortable Column"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/ACFQuickEdit/Admin/FieldGroup.php:96
|
||||||
|
msgid "Make this column sortable"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/ACFQuickEdit/Admin/FieldGroup.php:106
|
||||||
|
#: include/ACFQuickEdit/Admin/FieldGroup.php:110
|
||||||
|
msgid "Column Weight"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/ACFQuickEdit/Admin/FieldGroup.php:107
|
||||||
|
msgid "Columns with a higher weight will be pushed to the right. The leftmost WordPress column has a weight of <em>0</em>, the next one <em>100</em> and so on. Leave empty to place a column to the rightmost position."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/ACFQuickEdit/Admin/FieldGroup.php:144
|
||||||
|
msgid "Editing"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/ACFQuickEdit/Admin/FieldGroup.php:169
|
||||||
|
msgid "QuickEdit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/ACFQuickEdit/Admin/FieldGroup.php:174
|
||||||
|
#: include/ACFQuickEdit/Admin/FieldGroup.php:191
|
||||||
|
msgid "Enabled"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/ACFQuickEdit/Admin/FieldGroup.php:175
|
||||||
|
#: include/ACFQuickEdit/Admin/FieldGroup.php:192
|
||||||
|
msgid "Disabled"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/ACFQuickEdit/Admin/FieldGroup.php:186
|
||||||
|
msgid "Bulk Edit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Translators: 1: ACF Pro URL, 2: plugins page url
|
||||||
|
#: include/ACFQuickEdit/Admin/Admin.php:178
|
||||||
|
msgid "The <strong>ACF QuickEdit Fields</strong> plugin requires <a href=\"%1$s\">ACF version 5.6 or later</a>. You can disable and uninstall it on the <a href=\"%2$s\">plugins page</a>."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/ACFQuickEdit/Fields/LinkField.php:58
|
||||||
|
msgid "Select Link"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/ACFQuickEdit/Fields/LinkField.php:59
|
||||||
|
msgid "Remove Link"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/ACFQuickEdit/Fields/PasswordField.php:22
|
||||||
|
#: include/ACFQuickEdit/Fields/NumberField.php:24
|
||||||
|
#: include/ACFQuickEdit/Fields/ChoiceField.php:57
|
||||||
|
#: include/ACFQuickEdit/Fields/TaxonomyField.php:42
|
||||||
|
#: include/ACFQuickEdit/Fields/PageLinkField.php:22
|
||||||
|
#: include/ACFQuickEdit/Fields/DateTimePickerField.php:18
|
||||||
|
msgid "(No value)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/ACFQuickEdit/Fields/FileField.php:46
|
||||||
|
msgid "Select File"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/ACFQuickEdit/Fields/FileField.php:47
|
||||||
|
msgid "Remove File"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/ACFQuickEdit/Fields/TaxonomyField.php:98
|
||||||
|
#: include/ACFQuickEdit/Fields/TaxonomyField.php:114
|
||||||
|
msgid "– No Selection –"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/ACFQuickEdit/Fields/Field.php:267
|
||||||
|
msgid "Do not change"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/ACFQuickEdit/Fields/RelationshipField.php:73
|
||||||
|
msgid "Private"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/ACFQuickEdit/Fields/PostObjectField.php:55
|
||||||
|
msgid "(no title)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/ACFQuickEdit/Fields/CheckboxField.php:57
|
||||||
|
msgid "Add Choice"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/ACFQuickEdit/Fields/SelectField.php:31
|
||||||
|
msgid "— Select —"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/ACFQuickEdit/Ajax/AjaxHandler.php:156
|
||||||
|
msgid "Nonce invalid"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/ACFQuickEdit/Ajax/AjaxHandler.php:161
|
||||||
|
msgid "Insufficient Permission"
|
||||||
|
msgstr ""
|
||||||
@@ -0,0 +1,593 @@
|
|||||||
|
# Copyright (C) 2019 Arya Themes
|
||||||
|
# This file is distributed under the same license as the Arya License Manager plugin.
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Arya License Manager 1.0.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/arya-license-manager\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"POT-Creation-Date: 2019-08-27T01:28:03+00:00\n"
|
||||||
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
|
"X-Generator: WP-CLI 2.3.0\n"
|
||||||
|
"X-Domain: arya-license-manager\n"
|
||||||
|
|
||||||
|
#. Plugin Name of the plugin
|
||||||
|
msgid "Arya License Manager"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Plugin URI of the plugin
|
||||||
|
msgid "https://gitlab.com/arya-license-manager"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Description of the plugin
|
||||||
|
msgid "Arya License Manager integrates with WooCommerce to simplify the creation and management of software licenses."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Author of the plugin
|
||||||
|
msgid "Arya Themes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Author URI of the plugin
|
||||||
|
msgid "https://www.aryathemes.com"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: compatibility.php:33
|
||||||
|
msgid "Arya License Manager requires WooCommerce 3.6.0 or greater."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Admin.php:95
|
||||||
|
msgid "Licenses Management"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Admin.php:96
|
||||||
|
#: src/Admin/Settings.php:61
|
||||||
|
#: src/Admin/Settings.php:83
|
||||||
|
#: src/Admin/Settings.php:181
|
||||||
|
#: src/Storefront/Account.php:81
|
||||||
|
#: src/Storefront/Query.php:69
|
||||||
|
#: templates/emails/email-licenses.php:8
|
||||||
|
#: templates/emails/plain/email-licenses.php:10
|
||||||
|
#: templates/myaccount/order-licenses.php:8
|
||||||
|
msgid "Licenses"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Analytics/Licenses.php:48
|
||||||
|
#: src/Admin/License.php:187
|
||||||
|
#: src/Admin/Product/Simple.php:63
|
||||||
|
#: src/Admin/Product/Simple.php:64
|
||||||
|
#: src/Admin/Product/Variable.php:65
|
||||||
|
#: src/Storefront/Licenses.php:73
|
||||||
|
#: src/Storefront/Licenses.php:102
|
||||||
|
#: src/Storefront/Licenses.php:113
|
||||||
|
#: src/Storefront/Order.php:292
|
||||||
|
#: src/Storefront/Query.php:72
|
||||||
|
#: templates/emails/email-licenses.php:17
|
||||||
|
#: templates/myaccount/order-licenses.php:15
|
||||||
|
#: templates/myaccount/order-licenses.php:43
|
||||||
|
msgid "License"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Analytics/Licenses.php:49
|
||||||
|
#: src/Storefront/Order.php:304
|
||||||
|
msgid "Type"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Analytics/Licenses.php:50
|
||||||
|
#: src/Storefront/License.php:107
|
||||||
|
#: templates/emails/email-licenses.php:16
|
||||||
|
#: templates/myaccount/order-licenses.php:14
|
||||||
|
#: templates/myaccount/order-licenses.php:42
|
||||||
|
msgid "Product"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Analytics/Licenses.php:51
|
||||||
|
#: src/Admin/License.php:130
|
||||||
|
#: templates/myaccount/license.php:26
|
||||||
|
msgid "Activations"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Analytics/Licenses.php:52
|
||||||
|
#: src/Admin/License.php:191
|
||||||
|
#: src/Storefront/Order.php:295
|
||||||
|
msgid "Status"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Analytics/Licenses.php:53
|
||||||
|
#: src/Admin/License.php:203
|
||||||
|
#: src/Storefront/License.php:111
|
||||||
|
msgid "Service start date"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Analytics/Licenses.php:54
|
||||||
|
#: src/Admin/License.php:207
|
||||||
|
#: src/Storefront/License.php:115
|
||||||
|
msgid "Service end date"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Analytics/Licenses.php:55
|
||||||
|
msgid "Order"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Analytics/Licenses.php:155
|
||||||
|
msgid "No licenses found."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Analytics/Licenses.php:226
|
||||||
|
#: src/Storefront/License.php:103
|
||||||
|
msgid "unlimited"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. translators: %s of %s: number of activations
|
||||||
|
#: src/Admin/Analytics/Licenses.php:229
|
||||||
|
#: src/Storefront/License.php:103
|
||||||
|
msgid "%1$s of %2$s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. translators: %s ago: human-readable time
|
||||||
|
#: src/Admin/Analytics/Licenses.php:264
|
||||||
|
msgctxt "%s = human-readable time"
|
||||||
|
msgid "%s ago"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Analytics/Licenses.php:303
|
||||||
|
msgid "Regenerate download permissions"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Emails/Expired.php:24
|
||||||
|
msgid "Expired license"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Emails/Expired.php:25
|
||||||
|
msgid "Expired license emails are sent when a license has been deactivated by manager."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Emails/Expired.php:54
|
||||||
|
msgid "[{site_title}]: License {license} has expired"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Emails/Expired.php:64
|
||||||
|
msgid "Expired license: <code>{license}</code>"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Emails/Expired.php:120
|
||||||
|
#: src/Admin/Emails/Suspended.php:124
|
||||||
|
msgid "Enable/Disable"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Emails/Expired.php:122
|
||||||
|
#: src/Admin/Emails/Suspended.php:126
|
||||||
|
msgid "Enable this email notification"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Emails/Expired.php:126
|
||||||
|
#: src/Admin/Emails/Suspended.php:130
|
||||||
|
msgid "Recipient(s)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. translators: Defaults to %s: Recipients for this email
|
||||||
|
#: src/Admin/Emails/Expired.php:128
|
||||||
|
#: src/Admin/Emails/Suspended.php:132
|
||||||
|
msgid "Enter recipients (comma separated) for this email. Defaults to %s."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Emails/Expired.php:134
|
||||||
|
#: src/Admin/Emails/Suspended.php:138
|
||||||
|
msgid "Subject"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. translators: Available placeholders: %s: Available placeholders
|
||||||
|
#: src/Admin/Emails/Expired.php:136
|
||||||
|
#: src/Admin/Emails/Expired.php:145
|
||||||
|
#: src/Admin/Emails/Suspended.php:140
|
||||||
|
#: src/Admin/Emails/Suspended.php:149
|
||||||
|
msgid "Available placeholders: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Emails/Expired.php:142
|
||||||
|
#: src/Admin/Emails/Suspended.php:146
|
||||||
|
msgid "Email heading"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Emails/Expired.php:150
|
||||||
|
#: src/Admin/Emails/Suspended.php:154
|
||||||
|
msgid "Email type"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Emails/Expired.php:152
|
||||||
|
#: src/Admin/Emails/Suspended.php:156
|
||||||
|
msgid "Choose which format of email to send."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Emails/Suspended.php:24
|
||||||
|
msgid "Suspended license"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Emails/Suspended.php:25
|
||||||
|
msgid "Suspended license emails are sent when a license has been deactivated by manager."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Emails/Suspended.php:54
|
||||||
|
msgid "[{site_title}]: License {license} has been suspended"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Emails/Suspended.php:64
|
||||||
|
msgid "License suspended: {license}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Integration.php:80
|
||||||
|
#: src/Admin/Integration.php:101
|
||||||
|
msgctxt "WooCommerce header breadcrumbs"
|
||||||
|
msgid "Licenses"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Integration.php:89
|
||||||
|
msgctxt "WooCommerce header breadcrumbs"
|
||||||
|
msgid "License details"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/License.php:83
|
||||||
|
#: templates/myaccount/license.php:14
|
||||||
|
msgid "License not available."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/License.php:89
|
||||||
|
msgid "License details"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/License.php:128
|
||||||
|
msgid "Information"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/License.php:133
|
||||||
|
#: src/Admin/License.php:243
|
||||||
|
#: src/Storefront/License.php:145
|
||||||
|
#: src/Storefront/Licenses.php:74
|
||||||
|
#: src/Storefront/Licenses.php:103
|
||||||
|
#: src/Storefront/Licenses.php:114
|
||||||
|
#: templates/myaccount/order-licenses.php:16
|
||||||
|
#: templates/myaccount/order-licenses.php:44
|
||||||
|
msgid "Actions"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/License.php:147
|
||||||
|
#: src/Storefront/Cart.php:116
|
||||||
|
#: src/Storefront/Order.php:332
|
||||||
|
msgid "Unlimited activations"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. translators: %d activation: number of activations
|
||||||
|
#: src/Admin/License.php:149
|
||||||
|
#: src/Storefront/Cart.php:118
|
||||||
|
#: src/Storefront/Order.php:334
|
||||||
|
msgid "%d activation"
|
||||||
|
msgid_plural "%d activations"
|
||||||
|
msgstr[0] ""
|
||||||
|
msgstr[1] ""
|
||||||
|
|
||||||
|
#: src/Admin/License.php:195
|
||||||
|
#: src/Admin/Product.php:121
|
||||||
|
#: src/Admin/Product/Variable.php:121
|
||||||
|
#: src/Storefront/License.php:119
|
||||||
|
msgid "License type"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/License.php:199
|
||||||
|
msgid "Product HM"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/License.php:211
|
||||||
|
#: src/Storefront/License.php:123
|
||||||
|
msgid "Allowed activations"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/License.php:215
|
||||||
|
msgid "Order / Customer"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/License.php:241
|
||||||
|
#: src/Storefront/License.php:143
|
||||||
|
msgid "Activation"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/License.php:242
|
||||||
|
#: src/Storefront/License.php:144
|
||||||
|
#: src/Storefront/Order.php:307
|
||||||
|
msgid "Activation date"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/License.php:258
|
||||||
|
#: src/Storefront/License.php:206
|
||||||
|
msgid "Associate"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/License.php:262
|
||||||
|
#: src/License/Traits/LicenseTrait.php:98
|
||||||
|
#: src/Storefront/License.php:208
|
||||||
|
msgid "WordPress"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/License.php:263
|
||||||
|
#: src/License/Traits/LicenseTrait.php:101
|
||||||
|
#: src/Storefront/License.php:209
|
||||||
|
msgid "Web Application"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/License.php:271
|
||||||
|
#: src/Storefront/License.php:214
|
||||||
|
msgid "Website URL"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/License.php:278
|
||||||
|
#: src/Storefront/License.php:217
|
||||||
|
msgid "The IP address of the provided website is automatically assigned."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/License.php:286
|
||||||
|
msgid "Associate license"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/License.php:307
|
||||||
|
#: src/Storefront/License.php:154
|
||||||
|
msgid "This license has not been associated to a website."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/License.php:325
|
||||||
|
#: src/Storefront/License.php:172
|
||||||
|
msgid "Revoke"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/License.php:352
|
||||||
|
msgid "Activate"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/License.php:353
|
||||||
|
msgid "Deactivate"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/License.php:354
|
||||||
|
msgid "Renew"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/License.php:361
|
||||||
|
msgid "Choose an action..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/License.php:369
|
||||||
|
msgid "Update"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/License.php:389
|
||||||
|
#: src/Storefront/Account.php:217
|
||||||
|
msgid "It was not possible to associate the license."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Licenses.php:61
|
||||||
|
msgid "License Management"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Licenses.php:86
|
||||||
|
msgid "Number of licenses per page:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Order.php:60
|
||||||
|
#: src/Storefront/Order.php:113
|
||||||
|
msgid "Regenerate download permissions for licenses"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Product.php:70
|
||||||
|
msgid "Software License"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Product.php:99
|
||||||
|
#: src/Admin/Product/Variable.php:90
|
||||||
|
msgid "Expiry time"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Product.php:110
|
||||||
|
#: src/Admin/Product/Variable.php:97
|
||||||
|
msgid "Expire interval"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Product.php:113
|
||||||
|
#: src/Admin/Product/Variable.php:100
|
||||||
|
msgid "Years"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Product.php:114
|
||||||
|
#: src/Admin/Product/Variable.php:101
|
||||||
|
msgid "Months"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Product.php:115
|
||||||
|
#: src/Admin/Product/Variable.php:102
|
||||||
|
msgid "Days"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Product.php:124
|
||||||
|
#: src/Admin/Product/Variable.php:124
|
||||||
|
msgid "On-demand software"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Product.php:125
|
||||||
|
#: src/Admin/Product/Variable.php:125
|
||||||
|
#: src/License/Traits/LicenseTrait.php:48
|
||||||
|
msgid "Perpetual"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Product.php:135
|
||||||
|
#: src/Admin/Product/Variable.php:109
|
||||||
|
#: src/Storefront/Cart.php:93
|
||||||
|
msgid "Activation limit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Product.php:136
|
||||||
|
#: src/Admin/Product/Variable.php:111
|
||||||
|
msgid "Leave blank for unlimited activations."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Product.php:139
|
||||||
|
#: src/Admin/Product/Variable.php:114
|
||||||
|
msgid "Unlimited"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Product/License.php:63
|
||||||
|
msgid "Software license"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Product/Variable.php:64
|
||||||
|
msgid "Enable this option if the product is associated to a license."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Request.php:82
|
||||||
|
#: src/Admin/Request.php:132
|
||||||
|
#: src/Admin/Request.php:178
|
||||||
|
msgid "It is not possible to perform an action since the order has not been completed."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Settings.php:84
|
||||||
|
msgid "The following options are used to configure licenses format."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Settings.php:89
|
||||||
|
msgid "Length"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Settings.php:90
|
||||||
|
msgid "Number of characters to generate a new license. Licenses shall have a minimum length of 10 characters."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Settings.php:102
|
||||||
|
msgid "Chunks"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Settings.php:103
|
||||||
|
msgid "Split a license into chunks."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Settings.php:115
|
||||||
|
msgid "Prefix"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Settings.php:116
|
||||||
|
msgid "Add the prefix to the generated license."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Settings.php:124
|
||||||
|
msgid "Suffix"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Settings.php:125
|
||||||
|
msgid "Add the suffix to the generated license."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Settings.php:142
|
||||||
|
msgid "Account page"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Settings.php:147
|
||||||
|
msgid "Pagination"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Settings.php:148
|
||||||
|
msgid "Limits the number of licenses to display on \"My Account\" page."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Settings.php:182
|
||||||
|
msgid "Endpoint for the \"Licenses\" page."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Settings.php:189
|
||||||
|
msgid "View license"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Admin/Settings.php:190
|
||||||
|
msgid "Endpoint for the \"View license\" page."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/License/Traits/LicenseTrait.php:51
|
||||||
|
msgid "On demand software"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/License/Traits/LicenseTrait.php:68
|
||||||
|
msgid "Valid"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/License/Traits/LicenseTrait.php:69
|
||||||
|
msgid "Expired"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/License/Traits/LicenseTrait.php:70
|
||||||
|
msgid "Suspended"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/License/Traits/LicenseTrait.php:71
|
||||||
|
msgid "Inactive"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/License/Traits/LicenseTrait.php:84
|
||||||
|
#: src/Storefront/Cart.php:120
|
||||||
|
msgid "Unknown"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Storefront/Account.php:96
|
||||||
|
msgid "You do not have permission to view the license information."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Storefront/Cart.php:99
|
||||||
|
#: src/Storefront/Order.php:298
|
||||||
|
msgid "Activation period"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Storefront/License.php:224
|
||||||
|
msgid "Accept"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Storefront/Licenses.php:72
|
||||||
|
#: src/Storefront/Licenses.php:101
|
||||||
|
#: src/Storefront/Licenses.php:112
|
||||||
|
msgid "Software"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Storefront/Licenses.php:96
|
||||||
|
#: templates/myaccount/order-licenses.php:37
|
||||||
|
msgid "Manage"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Storefront/Licenses.php:145
|
||||||
|
msgid "«"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Storefront/Licenses.php:146
|
||||||
|
msgid "»"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Storefront/Order.php:301
|
||||||
|
msgid "Activations limit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Storefront/Order.php:310
|
||||||
|
msgid "Expiry date"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Storefront/Product.php:79
|
||||||
|
msgid "Add to cart"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: templates/myaccount/license.php:10
|
||||||
|
msgid "Invalid license."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: templates/myaccount/license.php:22
|
||||||
|
msgid "Details"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: templates/myaccount/licenses.php:12
|
||||||
|
msgid "Go shop"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: templates/myaccount/licenses.php:14
|
||||||
|
msgid "There are no active licenses."
|
||||||
|
msgstr ""
|
||||||
336
spec/fixtures/dynamic_finders/plugin_version/asmember/translation_file/languages/asmember-de_DE.po
vendored
Normal file
336
spec/fixtures/dynamic_finders/plugin_version/asmember/translation_file/languages/asmember-de_DE.po
vendored
Normal file
@@ -0,0 +1,336 @@
|
|||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: asMember 1.0\n"
|
||||||
|
"POT-Creation-Date: 2019-06-25 12:18+0200\n"
|
||||||
|
"PO-Revision-Date: 2019-06-25 12:46+0200\n"
|
||||||
|
"Last-Translator: \n"
|
||||||
|
"Language-Team: \n"
|
||||||
|
"Language: de_DE\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"X-Generator: Poedit 2.2.3\n"
|
||||||
|
"X-Poedit-Basepath: .\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
"X-Poedit-KeywordsList: __\n"
|
||||||
|
"X-Poedit-SearchPath-0: .\n"
|
||||||
|
|
||||||
|
#: admin/admin.php:62
|
||||||
|
msgid "Visibility"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/admin.php:64
|
||||||
|
msgid "public"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/admin.php:65
|
||||||
|
msgid "Only Members"
|
||||||
|
msgstr "Nur für Mitglieder"
|
||||||
|
|
||||||
|
#: admin/admin.php:95
|
||||||
|
msgid "Hello"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/admin.php:111 admin/admin.php:112
|
||||||
|
msgid "Options"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/options.php:143
|
||||||
|
msgid "Seite wählen"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: public/members.php:119 public/user-account.php:226
|
||||||
|
msgid "Profile"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: public/members.php:126 public/members.php:248
|
||||||
|
msgid "Interests"
|
||||||
|
msgstr "Interessen"
|
||||||
|
|
||||||
|
#: public/members.php:133
|
||||||
|
msgid "Ads"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: public/members.php:153 public/user-account.php:194
|
||||||
|
#: public/user-account.php:319
|
||||||
|
msgid "About me"
|
||||||
|
msgstr "Über mich"
|
||||||
|
|
||||||
|
#: public/members.php:163
|
||||||
|
msgid "Contact"
|
||||||
|
msgstr "Kontakt"
|
||||||
|
|
||||||
|
#: public/members.php:198 public/user-account.php:377
|
||||||
|
msgid "I search"
|
||||||
|
msgstr "Ich suche"
|
||||||
|
|
||||||
|
#: public/members.php:208 public/user-account.php:372
|
||||||
|
msgid "I offer"
|
||||||
|
msgstr "Ich biete"
|
||||||
|
|
||||||
|
#: public/members.php:256 public/user-account.php:335
|
||||||
|
msgid "favorite quote"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: public/members.php:270 public/user-account.php:345
|
||||||
|
msgid "favorite music"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: public/members.php:280 public/user-account.php:355
|
||||||
|
msgid "favorite film"
|
||||||
|
msgstr "Lieblingsfilm"
|
||||||
|
|
||||||
|
#: public/members.php:291 public/user-account.php:350
|
||||||
|
msgid "favorite book"
|
||||||
|
msgstr "Lieblingsbuch"
|
||||||
|
|
||||||
|
#: public/user-account.php:131 public/user-account.php:256
|
||||||
|
msgid "Address"
|
||||||
|
msgstr "Anrede"
|
||||||
|
|
||||||
|
#: public/user-account.php:133 public/user-account.php:258
|
||||||
|
#: public/user-register.php:604
|
||||||
|
msgid "Sir"
|
||||||
|
msgstr "Herr"
|
||||||
|
|
||||||
|
#: public/user-account.php:134 public/user-account.php:259
|
||||||
|
#: public/user-register.php:603
|
||||||
|
msgid "Madame"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: public/user-account.php:139 public/user-account.php:140
|
||||||
|
#: public/user-account.php:264 public/user-account.php:265
|
||||||
|
#: public/user-register.php:609
|
||||||
|
msgid "Title"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: public/user-account.php:144 public/user-account.php:145
|
||||||
|
#: public/user-account.php:269 public/user-account.php:270
|
||||||
|
#: public/user-register.php:615
|
||||||
|
msgid "Firstname"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: public/user-account.php:150 public/user-account.php:151
|
||||||
|
#: public/user-account.php:275 public/user-account.php:276
|
||||||
|
#: public/user-register.php:621
|
||||||
|
msgid "Lastname"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: public/user-account.php:162 public/user-account.php:163
|
||||||
|
#: public/user-account.php:287 public/user-account.php:288
|
||||||
|
#: public/user-register.php:631
|
||||||
|
msgid "Street"
|
||||||
|
msgstr "Straße"
|
||||||
|
|
||||||
|
#: public/user-account.php:168 public/user-account.php:169
|
||||||
|
#: public/user-account.php:293 public/user-account.php:294
|
||||||
|
#: public/user-register.php:636
|
||||||
|
msgid "Zipcode"
|
||||||
|
msgstr "PLZ"
|
||||||
|
|
||||||
|
#: public/user-account.php:174 public/user-account.php:175
|
||||||
|
#: public/user-account.php:299 public/user-account.php:300
|
||||||
|
#: public/user-register.php:642
|
||||||
|
msgid "City"
|
||||||
|
msgstr "Ort"
|
||||||
|
|
||||||
|
#: public/user-account.php:182 public/user-account.php:307
|
||||||
|
msgid "Birthday"
|
||||||
|
msgstr "Geburtstag"
|
||||||
|
|
||||||
|
#: public/user-account.php:208 public/user-account.php:422
|
||||||
|
msgid "Save"
|
||||||
|
msgstr "Speichern"
|
||||||
|
|
||||||
|
#: public/user-account.php:231
|
||||||
|
msgid "Detail"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: public/user-account.php:235
|
||||||
|
msgid "Offer/Search"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: public/user-account.php:239 public/user-account.php:394
|
||||||
|
msgid "Avatar"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: public/user-account.php:340
|
||||||
|
msgid "interests"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: public/user-account.php:400 public/user-account.php:404
|
||||||
|
msgid "Upload Avatar"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: public/user-dashboard.php:24
|
||||||
|
msgid "Welcome"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: public/user-dashboard.php:33
|
||||||
|
msgid "not logged in"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: public/user-login.php:32
|
||||||
|
msgid "Benutzer/Email"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: public/user-login.php:33
|
||||||
|
msgid "Passwort"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: public/user-login.php:34
|
||||||
|
msgid "Eingeloggt bleiben"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: public/user-login.php:35 public/user-login.php:61
|
||||||
|
msgid "Login"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: public/user-login.php:47 public/user-login.php:48
|
||||||
|
msgid "Username oder Email"
|
||||||
|
msgstr "Benutzer oder EMail"
|
||||||
|
|
||||||
|
#: public/user-login.php:51 public/user-login.php:52
|
||||||
|
#: public/user-register.php:117 public/user-register.php:684
|
||||||
|
#: public/user-register.php:685
|
||||||
|
msgid "Password"
|
||||||
|
msgstr "Passwort"
|
||||||
|
|
||||||
|
#: public/user-login.php:56
|
||||||
|
msgid "Be Logged in"
|
||||||
|
msgstr "Sie sind eingeloggt"
|
||||||
|
|
||||||
|
#: public/user-login.php:74
|
||||||
|
msgid "Reset password"
|
||||||
|
msgstr "Passwort vergessen"
|
||||||
|
|
||||||
|
#: public/user-login.php:80 public/user-register.php:128
|
||||||
|
#: public/user-register.php:742
|
||||||
|
msgid "Register"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: public/user-login.php:121
|
||||||
|
msgid "<strong>ERROR</strong>: Invalid username or incorrect password."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: public/user-register.php:27
|
||||||
|
msgid "You are logged in"
|
||||||
|
msgstr "Sie sind bereits eingeloggt."
|
||||||
|
|
||||||
|
#: public/user-register.php:27
|
||||||
|
msgid "Next"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: public/user-register.php:34
|
||||||
|
msgid "Register disabled"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: public/user-register.php:56
|
||||||
|
msgid "Your membership has been successfully activated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: public/user-register.php:59 public/user-register.php:106
|
||||||
|
#: public/user-register.php:186
|
||||||
|
msgid "Activation was not successful"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: public/user-register.php:116
|
||||||
|
msgid "Username"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: public/user-register.php:127
|
||||||
|
msgid "Lost password"
|
||||||
|
msgstr "Passwort vergessen"
|
||||||
|
|
||||||
|
#: public/user-register.php:174
|
||||||
|
msgid "A membership application for this email has already been created."
|
||||||
|
msgstr "Ein Mitgliedsantrag zu dieser Email wurde bereits angelegt."
|
||||||
|
|
||||||
|
#: public/user-register.php:294 public/user-register.php:515
|
||||||
|
msgid "Please enter a valid email address!"
|
||||||
|
msgstr "Bitte geben Sie eine gültige EMail ein!"
|
||||||
|
|
||||||
|
#: public/user-register.php:405
|
||||||
|
msgid ""
|
||||||
|
"Your account has been successfully created. You will receive an email with a "
|
||||||
|
"confirmation link to activate your account."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: public/user-register.php:437 public/user-register.php:449
|
||||||
|
#: public/user-register.php:461 public/user-register.php:471
|
||||||
|
#: public/user-register.php:481 public/user-register.php:491
|
||||||
|
#: public/user-register.php:507
|
||||||
|
msgid "Please fill in this field!"
|
||||||
|
msgstr "Bitte füllen Sie dieses Feld aus!"
|
||||||
|
|
||||||
|
#: public/user-register.php:529 public/user-register.php:538
|
||||||
|
msgid "Please enter a password with at least 8 characters!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: public/user-register.php:547
|
||||||
|
msgid "The passwords must be identical."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: public/user-register.php:557
|
||||||
|
msgid "Please confirm the terms and conditions."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: public/user-register.php:566
|
||||||
|
msgid "Please confirm the privacy policy"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: public/user-register.php:601
|
||||||
|
msgid "address"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: public/user-register.php:616
|
||||||
|
msgid "Your firstname"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: public/user-register.php:622
|
||||||
|
msgid "Your lastname"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: public/user-register.php:632
|
||||||
|
msgid "Your street"
|
||||||
|
msgstr "Ihre Straße"
|
||||||
|
|
||||||
|
#: public/user-register.php:637
|
||||||
|
msgid "Your zipcode"
|
||||||
|
msgstr "Ihre PLZ"
|
||||||
|
|
||||||
|
#: public/user-register.php:643
|
||||||
|
msgid "Your City"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: public/user-register.php:647
|
||||||
|
msgid "Phone"
|
||||||
|
msgstr "Telefon"
|
||||||
|
|
||||||
|
#: public/user-register.php:648
|
||||||
|
msgid "Your phone"
|
||||||
|
msgstr "Ihre Telefonnummer"
|
||||||
|
|
||||||
|
#: public/user-register.php:670
|
||||||
|
msgid "Name"
|
||||||
|
msgstr "Name"
|
||||||
|
|
||||||
|
#: public/user-register.php:671
|
||||||
|
msgid "Your name"
|
||||||
|
msgstr "Ihr Name"
|
||||||
|
|
||||||
|
#: public/user-register.php:679
|
||||||
|
msgid "EMail"
|
||||||
|
msgstr "EMail"
|
||||||
|
|
||||||
|
#: public/user-register.php:680
|
||||||
|
msgid "Your Email"
|
||||||
|
msgstr "Ihre Email"
|
||||||
|
|
||||||
|
#: public/user-register.php:689 public/user-register.php:690
|
||||||
|
msgid "Repeat password"
|
||||||
|
msgstr "Passwort wiederholen"
|
||||||
|
|
||||||
|
#: public/user-register.php:704
|
||||||
|
msgid "Membership"
|
||||||
|
msgstr "Mitgliedschaft"
|
||||||
258
spec/fixtures/dynamic_finders/plugin_version/avaibook/translation_file/languages/avaibook-pt_PT.po
vendored
Normal file
258
spec/fixtures/dynamic_finders/plugin_version/avaibook/translation_file/languages/avaibook-pt_PT.po
vendored
Normal file
@@ -0,0 +1,258 @@
|
|||||||
|
# Copyright (C) 2019 Carlos G. Cerro cgcerro@gmail.com
|
||||||
|
# This file is distributed under the same license as the AvaiBook plugin.
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: AvaiBook 1.0.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/avaibook\n"
|
||||||
|
"Language-Team: \n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"POT-Creation-Date: 2019-06-25T12:50:01+02:00\n"
|
||||||
|
"PO-Revision-Date: 2019-06-28 09:34+0200\n"
|
||||||
|
"X-Generator: Poedit 2.2.3\n"
|
||||||
|
"X-Domain: avaibook\n"
|
||||||
|
"Last-Translator: \n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
"Language: pt_PT\n"
|
||||||
|
|
||||||
|
#. Plugin Name of the plugin
|
||||||
|
msgid "AvaiBook"
|
||||||
|
msgstr "AvaiBook"
|
||||||
|
|
||||||
|
#. Plugin URI of the plugin
|
||||||
|
msgid "http://wordpress.org/plugins/avaibook/"
|
||||||
|
msgstr "http://wordpress.org/plugins/avaibook/"
|
||||||
|
|
||||||
|
#. Description of the plugin
|
||||||
|
msgid "Show Avaibook booking form in your wordpress"
|
||||||
|
msgstr "Mostre o formulário de reserva Avaibook no seu Wordpress"
|
||||||
|
|
||||||
|
#. Author of the plugin
|
||||||
|
msgid "Carlos G. Cerro cgcerro@gmail.com"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: avaibook.php:239
|
||||||
|
msgid "Show Avaibook book form 1"
|
||||||
|
msgstr "Mostrar formulário AvaiBook 1"
|
||||||
|
|
||||||
|
#: avaibook.php:260
|
||||||
|
msgid "Show Avaibook book form 2"
|
||||||
|
msgstr "Mostrar formulário AvaiBook 2"
|
||||||
|
|
||||||
|
#: avaibook.php:282
|
||||||
|
msgid "Show Avaibook book form 3"
|
||||||
|
msgstr "Mostrar formulário AvaiBook 3"
|
||||||
|
|
||||||
|
#: includes/admin.php:3
|
||||||
|
msgid "Form 1"
|
||||||
|
msgstr "Formulário 1"
|
||||||
|
|
||||||
|
#: includes/admin.php:3
|
||||||
|
msgid "Form 2"
|
||||||
|
msgstr "Formulário 2"
|
||||||
|
|
||||||
|
#: includes/admin.php:3
|
||||||
|
msgid "Form 3"
|
||||||
|
msgstr "Formulário 3"
|
||||||
|
|
||||||
|
#: includes/admin.php:15
|
||||||
|
msgid ""
|
||||||
|
"You can define three types of form. Each one can have a different "
|
||||||
|
"configuration or presentation."
|
||||||
|
msgstr ""
|
||||||
|
"É possível definir três tipos diferentes de formulários. Cada um com uma "
|
||||||
|
"configuração ou apresentação diferente."
|
||||||
|
|
||||||
|
#: includes/admin.php:33
|
||||||
|
msgid "Rental Id is mandatory with \"single\" rental type."
|
||||||
|
msgstr ""
|
||||||
|
"A identificação do alojamento é obrigatória no tipo de motor \"simples\"."
|
||||||
|
|
||||||
|
#: includes/admin.php:37
|
||||||
|
msgid "Owner Id is mandatory with \"multiple\" rental type."
|
||||||
|
msgstr ""
|
||||||
|
"A identificação do alojamento é obrigatória no tipo de motor \"múltiplo\"."
|
||||||
|
|
||||||
|
#: includes/admin.php:41
|
||||||
|
msgid "Configuration saved."
|
||||||
|
msgstr "Configuração gravada."
|
||||||
|
|
||||||
|
#: includes/admin.php:47
|
||||||
|
msgid "Form"
|
||||||
|
msgstr "Formulário"
|
||||||
|
|
||||||
|
#: includes/admin.php:54
|
||||||
|
msgid "AvaiBook configuration"
|
||||||
|
msgstr "Configuração AvaiBook"
|
||||||
|
|
||||||
|
#: includes/admin.php:56
|
||||||
|
msgid ""
|
||||||
|
"Choose the type of Booking Engine you wish to link, and fill in the "
|
||||||
|
"requested parameters (those marked with * are mandatory and you will find "
|
||||||
|
"their value in your private area of AvaiBook)"
|
||||||
|
msgstr ""
|
||||||
|
"Escolha o tipo de motor de reservas que pretende utilizar. Preencha os "
|
||||||
|
"campos obrigatórios (aqueles marcados com * são obrigatórios e encontrará o "
|
||||||
|
"valor em sua área privada AvaiBook)"
|
||||||
|
|
||||||
|
#: includes/admin.php:61
|
||||||
|
msgid "Booking Engine type"
|
||||||
|
msgstr "Tipo de motor AvaiBook"
|
||||||
|
|
||||||
|
#: includes/admin.php:64
|
||||||
|
msgid "Single"
|
||||||
|
msgstr "Simples"
|
||||||
|
|
||||||
|
#: includes/admin.php:65
|
||||||
|
msgid "Multiple"
|
||||||
|
msgstr "Múltiplo"
|
||||||
|
|
||||||
|
#: includes/admin.php:67
|
||||||
|
msgid ""
|
||||||
|
"Choose the type of booking engine you want to use. To a single accommodation "
|
||||||
|
"or to all your accommodations"
|
||||||
|
msgstr ""
|
||||||
|
"Escolha o tipo de motor de reservas que pretende utilizar. Para um único "
|
||||||
|
"alojamento ou para todos os alojamentos"
|
||||||
|
|
||||||
|
#: includes/admin.php:73
|
||||||
|
msgid "Rental Id"
|
||||||
|
msgstr "ID de Alojamento"
|
||||||
|
|
||||||
|
#: includes/admin.php:75
|
||||||
|
msgid "This is the AvaiBook accommodation Id"
|
||||||
|
msgstr "Este é o identificador do alojamento"
|
||||||
|
|
||||||
|
#: includes/admin.php:79
|
||||||
|
msgid "Reference"
|
||||||
|
msgstr "Referência"
|
||||||
|
|
||||||
|
#: includes/admin.php:81 includes/admin.php:99
|
||||||
|
msgid ""
|
||||||
|
"(optional) the generated reserves will have this reference so that you can "
|
||||||
|
"distinguish them"
|
||||||
|
msgstr ""
|
||||||
|
"(opcional) as reservas geradas terão esta referência anotada para que possa "
|
||||||
|
"distingui-las"
|
||||||
|
|
||||||
|
#: includes/admin.php:92
|
||||||
|
msgid "This is your customer id in AvaiBook"
|
||||||
|
msgstr "Este é o seu ID de cliente no AvaiBook"
|
||||||
|
|
||||||
|
#: includes/admin.php:105
|
||||||
|
msgid "Show rental units"
|
||||||
|
msgstr "Mostrar unidades habitacionais"
|
||||||
|
|
||||||
|
#: includes/admin.php:106
|
||||||
|
msgid "Show zones"
|
||||||
|
msgstr "Mostrar zonas"
|
||||||
|
|
||||||
|
#: includes/admin.php:107
|
||||||
|
msgid "Show people"
|
||||||
|
msgstr "Mostrar pessoas"
|
||||||
|
|
||||||
|
#: includes/admin.php:108
|
||||||
|
msgid "Behavior in the booking engine"
|
||||||
|
msgstr "Comportamento no motor de reservas"
|
||||||
|
|
||||||
|
#: includes/admin.php:116
|
||||||
|
msgid "Display options"
|
||||||
|
msgstr "Opções de apresentação"
|
||||||
|
|
||||||
|
#: includes/admin.php:118
|
||||||
|
msgid ""
|
||||||
|
"Choose how you want your widget to be and what colors you want it to have. "
|
||||||
|
"If you do not mark any of the options below your widget will only be a "
|
||||||
|
"button."
|
||||||
|
msgstr ""
|
||||||
|
"Escolha como quer que seja o seu widget e que cores quer que ele tenha. Se "
|
||||||
|
"não marcar nenhuma das opções, o widget será apenas um botão."
|
||||||
|
|
||||||
|
#: includes/admin.php:121
|
||||||
|
msgid "title"
|
||||||
|
msgstr "título"
|
||||||
|
|
||||||
|
#: includes/admin.php:122
|
||||||
|
msgid "This text title will be showed in your form"
|
||||||
|
msgstr "Este título será exibido no seu formulário"
|
||||||
|
|
||||||
|
#: includes/admin.php:127
|
||||||
|
msgid "Request dates"
|
||||||
|
msgstr "Pedir datas"
|
||||||
|
|
||||||
|
#: includes/admin.php:128
|
||||||
|
msgid "show dates request's fields"
|
||||||
|
msgstr "exibir campos de datas"
|
||||||
|
|
||||||
|
#: includes/admin.php:135
|
||||||
|
msgid "Request guest number"
|
||||||
|
msgstr "Pedir número de clientes"
|
||||||
|
|
||||||
|
#: includes/admin.php:136
|
||||||
|
msgid "show guest's numbers field"
|
||||||
|
msgstr "mostrar no campo o número de pessoas"
|
||||||
|
|
||||||
|
#: includes/admin.php:140
|
||||||
|
msgid "Colour settings"
|
||||||
|
msgstr "Configuração de cores"
|
||||||
|
|
||||||
|
#: includes/admin.php:141
|
||||||
|
msgid "Set empty for keep your default style."
|
||||||
|
msgstr "Mantenha a caixa vazia para deixar o seu estilo por defeito."
|
||||||
|
|
||||||
|
#: includes/admin.php:144
|
||||||
|
msgid "Background colour"
|
||||||
|
msgstr "Cor de fundo"
|
||||||
|
|
||||||
|
#: includes/admin.php:153
|
||||||
|
msgid "Main colour"
|
||||||
|
msgstr "Cor principal"
|
||||||
|
|
||||||
|
#: includes/admin.php:162
|
||||||
|
msgid "Text colour"
|
||||||
|
msgstr "Cor do texto"
|
||||||
|
|
||||||
|
#: includes/admin.php:176
|
||||||
|
msgid "Save changes"
|
||||||
|
msgstr "Guardar modificações"
|
||||||
|
|
||||||
|
#: includes/admin.php:181
|
||||||
|
msgid "Options"
|
||||||
|
msgstr "Opções"
|
||||||
|
|
||||||
|
#: includes/admin.php:183
|
||||||
|
msgid "You can use this shortcode"
|
||||||
|
msgstr "Pode usar o seguinte shortcode"
|
||||||
|
|
||||||
|
#: includes/admin.php:185
|
||||||
|
msgid "Only copy this code, and put it where you want in your post or pages."
|
||||||
|
msgstr "Basta copiar o código e colá-lo onde quiser nos seus posts ou páginas."
|
||||||
|
|
||||||
|
#: includes/admin.php:187
|
||||||
|
msgid "Or you can use our widget"
|
||||||
|
msgstr "Ou pode usar o nosso widget"
|
||||||
|
|
||||||
|
#: includes/admin.php:189
|
||||||
|
msgid ""
|
||||||
|
"Go to <a href=\"%s\">widgets section</a> and drag our widget \"avaibook%s\" "
|
||||||
|
"where you want."
|
||||||
|
msgstr ""
|
||||||
|
"Vá até a seção <a href=\"%s\">widget </a> e arraste o nosso widget \"avaibook"
|
||||||
|
"%s\" onde quiser."
|
||||||
|
|
||||||
|
#: includes/front.php:11
|
||||||
|
msgid "Arrive date"
|
||||||
|
msgstr "Data de chegada"
|
||||||
|
|
||||||
|
#: includes/front.php:16
|
||||||
|
msgid "Departure date"
|
||||||
|
msgstr "Data saída"
|
||||||
|
|
||||||
|
#: includes/front.php:24 includes/front.php:25
|
||||||
|
msgid "Guest Num."
|
||||||
|
msgstr "Número de pessoas."
|
||||||
|
|
||||||
|
#: includes/front.php:29
|
||||||
|
msgid "search"
|
||||||
|
msgstr "procurar"
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
Version 1.2.0 - 20th July 2019
|
||||||
|
New: Countdown animation effect added.
|
||||||
|
|
||||||
|
Version 1.1.0 - 16th July 2019
|
||||||
|
New: When to apply animation option added in admin settings.
|
||||||
|
|
||||||
|
Version 1.0.0 - 15th July 2019
|
||||||
|
- Initial Release
|
||||||
@@ -0,0 +1,191 @@
|
|||||||
|
# Copyright (C) 2019 Sandesh
|
||||||
|
# This file is distributed under the same license as the Browser Title Bar Animation package.
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Browser Title Bar Animation 1.2.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: "
|
||||||
|
"https://wordpress.org/support/plugin/browser-title-bar-animation\n"
|
||||||
|
"POT-Creation-Date: 2019-07-20 06:55:08+00:00\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"PO-Revision-Date: 2019-MO-DA HO:MI+ZONE\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
"Language: en\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
"X-Poedit-Country: United States\n"
|
||||||
|
"X-Poedit-SourceCharset: UTF-8\n"
|
||||||
|
"X-Poedit-KeywordsList: "
|
||||||
|
"__;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_"
|
||||||
|
"attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n"
|
||||||
|
"X-Poedit-Basepath: ../\n"
|
||||||
|
"X-Poedit-SearchPath-0: .\n"
|
||||||
|
"X-Poedit-Bookmarks: \n"
|
||||||
|
"X-Textdomain-Support: yes\n"
|
||||||
|
"X-Generator: grunt-wp-i18n 1.0.3\n"
|
||||||
|
|
||||||
|
#: classes/class-tbas-admin.php:42
|
||||||
|
msgid "Settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-tbas-admin.php:55 classes/class-tbas-admin.php:56
|
||||||
|
#: classes/class-tbas-admin.php:72 classes/class-tbas-metabox.php:76
|
||||||
|
msgid "Title Bar Animation"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-tbas-admin.php:85
|
||||||
|
msgid "Support"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-tbas-admin.php:86
|
||||||
|
msgid "Got a question? I'm happy to help!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-tbas-admin.php:87
|
||||||
|
msgid "Submit a Ticket »"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-tbas-admin.php:103
|
||||||
|
msgid "General Settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-tbas-admin.php:111 classes/class-tbas-metabox.php:122
|
||||||
|
msgid "Enable Title Bar Animation"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-tbas-admin.php:118
|
||||||
|
msgid "Enable Title Bar Animation Globally"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-tbas-admin.php:125
|
||||||
|
msgid "Apply Animation"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-tbas-admin.php:132 classes/class-tbas-metabox.php:142
|
||||||
|
msgid "When to apply animation?"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-tbas-admin.php:134 classes/class-tbas-metabox.php:139
|
||||||
|
msgid "Always"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-tbas-admin.php:135 classes/class-tbas-metabox.php:140
|
||||||
|
msgid "When user switch to another tab"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-tbas-admin.php:143 classes/class-tbas-admin.php:150
|
||||||
|
#: classes/class-tbas-metabox.php:149
|
||||||
|
msgid "Animation Type"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-tbas-admin.php:152 classes/class-tbas-metabox.php:153
|
||||||
|
msgid "Typing"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-tbas-admin.php:153 classes/class-tbas-metabox.php:154
|
||||||
|
msgid "Scrolling"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-tbas-admin.php:154 classes/class-tbas-metabox.php:155
|
||||||
|
msgid "Blinking"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-tbas-admin.php:155 classes/class-tbas-metabox.php:156
|
||||||
|
msgid "Countdown"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-tbas-admin.php:169
|
||||||
|
msgid "Animation Examples"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-tbas-admin.php:176 classes/class-tbas-metabox.php:163
|
||||||
|
msgid "Animation Speed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-tbas-admin.php:183
|
||||||
|
msgid "Animation speed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-tbas-admin.php:190 classes/class-tbas-metabox.php:172
|
||||||
|
msgid "Animation Title"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-tbas-admin.php:197 classes/class-tbas-admin.php:225
|
||||||
|
#: classes/class-tbas-metabox.php:175
|
||||||
|
msgid ""
|
||||||
|
"Animation will apply on this title. If empty, default title will consider "
|
||||||
|
"as animation title."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-tbas-admin.php:204 classes/class-tbas-metabox.php:180
|
||||||
|
msgid "Countdown Duration"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-tbas-admin.php:211
|
||||||
|
msgid "Time in minutes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-tbas-admin.php:217 classes/class-tbas-metabox.php:189
|
||||||
|
msgid "Countdown Title"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-tbas-admin.php:224
|
||||||
|
msgid "{{countdown}}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-tbas-metabox.php:112
|
||||||
|
msgid "Override Global Settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-tbas-metabox.php:115
|
||||||
|
msgid "Enable this to override global settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-tbas-metabox.php:126
|
||||||
|
msgid "Yes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-tbas-metabox.php:127
|
||||||
|
msgid "No"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-tbas-metabox.php:135
|
||||||
|
msgid "Animation Show"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-tbas-metabox.php:166
|
||||||
|
msgid "Animation speed. eg. 1000 for 1second"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-tbas-metabox.php:183
|
||||||
|
msgid "Duration in minutes."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-tbas-metabox.php:192
|
||||||
|
msgid "User {{countdown}} tag."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-tbas-metabox.php:193
|
||||||
|
msgid "You can use {{countdown}} tag in string."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Plugin Name of the plugin/theme
|
||||||
|
msgid "Browser Title Bar Animation"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Plugin URI of the plugin/theme
|
||||||
|
msgid "https://www.techiesandesh.com/"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Description of the plugin/theme
|
||||||
|
msgid "Don't lose visitors. Catch the user's attention."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Author of the plugin/theme
|
||||||
|
msgid "Sandesh"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Author URI of the plugin/theme
|
||||||
|
msgid "https://sandeshjangam.com/"
|
||||||
|
msgstr ""
|
||||||
@@ -0,0 +1,139 @@
|
|||||||
|
# Copyright (C) 2019 Contact Form 7 - mountstride CRM - Integration
|
||||||
|
# This file is distributed under the same license as the Contact Form 7 - mountstride CRM - Integration package.
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Contact Form 7 - mountstride CRM - Integration 1.0.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/cf7-to-"
|
||||||
|
"mountstride\n"
|
||||||
|
"POT-Creation-Date: 2019-08-01 10:04:10+00:00\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"PO-Revision-Date: 2019-MO-DA HO:MI+ZONE\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
|
||||||
|
#: admin/partials/cf7-form-fields-template.php:40
|
||||||
|
#: admin/partials/cf7-form-fields-template.php:73
|
||||||
|
#: admin/partials/mappings.php:236 admin/partials/mappings.php:263
|
||||||
|
#: admin/partials/mappings.php:287 admin/partials/mappings.php:325
|
||||||
|
#: admin/partials/mappings.php:358 admin/partials/mappings.php:418
|
||||||
|
#: admin/partials/mappings.php:474
|
||||||
|
msgid "N/A"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/partials/cf7-form-fields-template.php:91
|
||||||
|
#: admin/partials/cf7-form-fields-template.php:120
|
||||||
|
#: admin/partials/mappings.php:341 admin/partials/mappings.php:370
|
||||||
|
#: admin/partials/mappings.php:448 admin/partials/mappings.php:491
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/partials/mappings.php:30 admin/partials/settings.php:29
|
||||||
|
msgid "Please activate Contact Form plugin first."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/partials/mappings.php:36 admin/partials/settings.php:35
|
||||||
|
msgid "Please update latest version for Contact Form plugin first."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/partials/mappings.php:148
|
||||||
|
msgid "CF7 to mountstride CRM Fields Mapping"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/partials/mappings.php:149
|
||||||
|
msgid ""
|
||||||
|
"Map the required mountstride CRM API fields to your current Contact Form 7 "
|
||||||
|
"fields"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/partials/mappings.php:184
|
||||||
|
msgid "Enable this form data submitting to mountstride CRM"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/partials/mappings.php:188 admin/partials/mappings.php:193
|
||||||
|
msgid "mountstride CRM General Fields"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/partials/mappings.php:194
|
||||||
|
msgid "CF7 Fields"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/partials/mappings.php:195 admin/partials/mappings.php:391
|
||||||
|
msgid "Action"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/partials/mappings.php:376
|
||||||
|
msgid "Add New Field"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/partials/mappings.php:383
|
||||||
|
msgid "mountstride CRM Master Data Fields"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/partials/mappings.php:389
|
||||||
|
msgid "Extra Field Name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/partials/mappings.php:390
|
||||||
|
msgid "Value"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/partials/mappings.php:498
|
||||||
|
msgid "Add New Master Data Field"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/partials/mappings.php:503
|
||||||
|
msgid "Save"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/partials/settings.php:211
|
||||||
|
msgid "CF7 to mountstride CRM API Settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/partials/settings.php:236
|
||||||
|
msgid "Enable mountstride CRM API"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/partials/settings.php:242
|
||||||
|
msgid "API Endpoint*"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/partials/settings.php:248
|
||||||
|
msgid "Authorization Key*"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/partials/settings.php:254
|
||||||
|
msgid "Token Key*"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/partials/settings.php:260
|
||||||
|
msgid "Enable Log"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/partials/settings.php:263
|
||||||
|
msgid "View debug log"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Plugin Name of the plugin/theme
|
||||||
|
msgid "Contact Form 7 - mountstride CRM - Integration"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. #-#-#-#-# cf7-to-mountstride.pot (Contact Form 7 - mountstride CRM - Integration 1.0.0) #-#-#-#-#
|
||||||
|
#. Plugin URI of the plugin/theme
|
||||||
|
#. #-#-#-#-# cf7-to-mountstride.pot (Contact Form 7 - mountstride CRM - Integration 1.0.0) #-#-#-#-#
|
||||||
|
#. Author URI of the plugin/theme
|
||||||
|
msgid "https://profiles.wordpress.org/vsourz1td/"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Description of the plugin/theme
|
||||||
|
msgid ""
|
||||||
|
"Contact Form 7 mountstride CRM for WordPress is the optimum way to manage "
|
||||||
|
"leads in easiest way. It’s a plug & play tool which allows you to capture "
|
||||||
|
"and store customer’s data by integrating the Contact Form and our plugin. No "
|
||||||
|
"hand-written customization code required."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Author of the plugin/theme
|
||||||
|
msgid "Vsourz Digital"
|
||||||
|
msgstr ""
|
||||||
@@ -1011,4 +1011,11 @@ If above timestamp is not current time, this page is cached.</p> -->
|
|||||||
<!-- HubSpot WordPress Plugin v7.5.4: embed JS disabled as a portalId has not yet been configured -->
|
<!-- HubSpot WordPress Plugin v7.5.4: embed JS disabled as a portalId has not yet been configured -->
|
||||||
|
|
||||||
|
|
||||||
|
<!-- reachdrip-web-push-notifications -->
|
||||||
|
<!-- Push Notifications for this site is powered by ReachDrip. Push Notifications for Chrome, Safari, FireFox, Opera. - Plugin version 2.0.1 - https://reachdrip.com/ -->
|
||||||
|
|
||||||
|
|
||||||
|
<!-- scrolltotop -->
|
||||||
|
<!-- Do you want the same scroll up bar on your WordPress blog? This site uses free scrollToTop plugin v1.1 - https://wordpress.org/plugins/scrolltotop/ -->
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,49 @@
|
|||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: xq-xe-xt-xy 1.0\n"
|
||||||
|
"POT-Creation-Date: 2018-07-11 09:44+0300\n"
|
||||||
|
"PO-Revision-Date: 2018-07-11 09:44+0300\n"
|
||||||
|
"Last-Translator: \n"
|
||||||
|
"Language-Team: Marko Maksym\n"
|
||||||
|
"Language: uk_UA\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"X-Generator: Poedit 2.0.6\n"
|
||||||
|
"X-Poedit-Basepath: ../includes\n"
|
||||||
|
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
||||||
|
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||||
|
"X-Poedit-KeywordsList: __;_e\n"
|
||||||
|
"X-Poedit-SearchPath-0: .\n"
|
||||||
|
|
||||||
|
#: admin/class-admin-main.php:66
|
||||||
|
msgid "Title of the page"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/class-admin-main.php:66
|
||||||
|
msgid "Link Name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/class-admin-main.php:69
|
||||||
|
msgid "Submenu title"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/class-admin-main.php:69
|
||||||
|
msgid "Submenu item"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/templates/index.php:8
|
||||||
|
msgid "Settings Page"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/templates/main_module_menu.php:10
|
||||||
|
msgid "Main page"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/templates/main_module_menu.php:13 admin/templates/page1.php:8
|
||||||
|
msgid "Page 1"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/templates/main_module_menu.php:16 admin/templates/page2.php:8
|
||||||
|
msgid "Page 2"
|
||||||
|
msgstr ""
|
||||||
465
spec/fixtures/dynamic_finders/plugin_version/customizely/translation_file/languages/customizely.pot
vendored
Normal file
465
spec/fixtures/dynamic_finders/plugin_version/customizely/translation_file/languages/customizely.pot
vendored
Normal file
@@ -0,0 +1,465 @@
|
|||||||
|
# Copyright (C) 2019 KitThemes
|
||||||
|
# This file is distributed under the same license as the Customizely plugin.
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Customizely 1.0.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/customizely\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"POT-Creation-Date: 2019-08-03T10:28:57+00:00\n"
|
||||||
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
|
"X-Generator: WP-CLI 2.2.0\n"
|
||||||
|
"X-Domain: customizely\n"
|
||||||
|
|
||||||
|
#. Plugin Name of the plugin
|
||||||
|
#: includes/class-plugin.php:555
|
||||||
|
#: views/customizely.php:15
|
||||||
|
msgid "Customizely"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Plugin URI of the plugin
|
||||||
|
msgid "https://wordpress.org/plugins/customizely/"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Description of the plugin
|
||||||
|
msgid "Style WP site with customizer"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Author of the plugin
|
||||||
|
msgid "KitThemes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Author URI of the plugin
|
||||||
|
msgid "https://www.kitthemes.com/"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: controls/class-checkbox.php:90
|
||||||
|
#: controls/class-radio.php:91
|
||||||
|
#: controls/class-select.php:110
|
||||||
|
msgid "Choices"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: controls/class-checkbox.php:102
|
||||||
|
#: controls/class-checkbox.php:122
|
||||||
|
#: controls/class-radio.php:103
|
||||||
|
#: controls/class-select.php:122
|
||||||
|
msgid "Value"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: controls/class-checkbox.php:108
|
||||||
|
#: controls/class-radio.php:109
|
||||||
|
#: controls/class-select.php:128
|
||||||
|
msgid "Label"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: controls/class-checkbox.php:123
|
||||||
|
msgid "Enter a valid value from `Choices` option."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: controls/class-color.php:122
|
||||||
|
msgid "Enable RGBA"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: controls/class-color.php:136
|
||||||
|
msgid "Color"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: controls/class-number.php:188
|
||||||
|
#: controls/class-range.php:193
|
||||||
|
msgid "Minimum"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: controls/class-number.php:189
|
||||||
|
#: controls/class-number.php:196
|
||||||
|
#: controls/class-number.php:203
|
||||||
|
#: controls/class-number.php:210
|
||||||
|
#: controls/class-number.php:217
|
||||||
|
#: controls/class-range.php:194
|
||||||
|
#: controls/class-range.php:201
|
||||||
|
#: controls/class-range.php:208
|
||||||
|
#: controls/class-range.php:215
|
||||||
|
#: controls/class-range.php:222
|
||||||
|
#: includes/functions.php:240
|
||||||
|
msgid "Order priority to load the input."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: controls/class-number.php:195
|
||||||
|
#: controls/class-range.php:200
|
||||||
|
msgid "Maximum"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: controls/class-number.php:202
|
||||||
|
#: controls/class-range.php:207
|
||||||
|
msgid "Step"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: controls/class-number.php:209
|
||||||
|
#: controls/class-range.php:214
|
||||||
|
msgid "No Unit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: controls/class-number.php:216
|
||||||
|
#: controls/class-range.php:221
|
||||||
|
msgid "Default Unit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: controls/class-number.php:230
|
||||||
|
#: controls/class-range.php:235
|
||||||
|
msgid "Valid CSS Units"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: controls/class-number.php:234
|
||||||
|
#: controls/class-range.php:239
|
||||||
|
msgid "Unit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: controls/class-number.php:235
|
||||||
|
#: controls/class-range.php:240
|
||||||
|
msgid "Enter a valid CSS unit. All valid CSS Units are `px`, `%,` `em`, `rem`, `ex`, `ch`, `vw`, `vh`, `vmin`, `vmax`, `cm`, `mm`, `in`, `pt` and `pc`."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: controls/class-number.php:256
|
||||||
|
msgid "Number"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: controls/class-text.php:88
|
||||||
|
msgid "Text"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: controls/class-textarea.php:94
|
||||||
|
msgid "Textarea"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: controls/class-url.php:88
|
||||||
|
msgid "URL"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/class-plugin.php:128
|
||||||
|
#: includes/class-plugin.php:141
|
||||||
|
msgid "Something went wrong."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/class-plugin.php:205
|
||||||
|
#: includes/functions.php:89
|
||||||
|
msgid "General"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/class-plugin.php:209
|
||||||
|
msgid "Panel ID"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/class-plugin.php:215
|
||||||
|
#: includes/functions.php:100
|
||||||
|
msgid "Title"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/class-plugin.php:221
|
||||||
|
#: includes/functions.php:107
|
||||||
|
msgid "Description"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/class-plugin.php:229
|
||||||
|
#: includes/functions.php:224
|
||||||
|
msgid "Advance"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/class-plugin.php:233
|
||||||
|
#: includes/functions.php:239
|
||||||
|
msgid "Priority"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/class-plugin.php:239
|
||||||
|
#: includes/functions.php:246
|
||||||
|
msgid "Capability"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/class-plugin.php:247
|
||||||
|
msgid "Panel"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/class-plugin.php:253
|
||||||
|
msgid "Section ID"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/class-plugin.php:257
|
||||||
|
msgid "Hide description"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/class-plugin.php:263
|
||||||
|
msgid "Section"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/class-plugin.php:631
|
||||||
|
msgid "Enter laptop preview mode"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/class-plugin.php:636
|
||||||
|
msgid "Enter mobile landscape preview mode"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/class-post-type.php:46
|
||||||
|
msgctxt "post type general name"
|
||||||
|
msgid "Options"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/class-post-type.php:47
|
||||||
|
msgctxt "post type singular name"
|
||||||
|
msgid "Option"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/class-post-type.php:48
|
||||||
|
msgctxt "admin menu"
|
||||||
|
msgid "Options"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/class-post-type.php:49
|
||||||
|
msgctxt "add new on admin bar"
|
||||||
|
msgid "Option"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/class-post-type.php:50
|
||||||
|
msgctxt "book"
|
||||||
|
msgid "Add New"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/class-post-type.php:51
|
||||||
|
msgid "Add New Option"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/class-post-type.php:52
|
||||||
|
msgid "New Option"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/class-post-type.php:53
|
||||||
|
msgid "Edit Option"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/class-post-type.php:54
|
||||||
|
msgid "View Option"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/class-post-type.php:55
|
||||||
|
msgid "All Options"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/class-post-type.php:56
|
||||||
|
msgid "Search Options"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/class-post-type.php:57
|
||||||
|
msgid "Parent Options:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/class-post-type.php:58
|
||||||
|
msgid "No books found."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/class-post-type.php:59
|
||||||
|
msgid "No books found in Trash."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/class-post-type.php:64
|
||||||
|
msgid "Option post type for saving customizely options."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/functions.php:93
|
||||||
|
msgid "ID"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/functions.php:94
|
||||||
|
msgid "Unique ID for input."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/functions.php:101
|
||||||
|
msgid "Title of this input."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/functions.php:108
|
||||||
|
msgid "Description or help text for this input."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/functions.php:116
|
||||||
|
msgid "Values"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/functions.php:120
|
||||||
|
msgid "Responsive"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/functions.php:121
|
||||||
|
msgid "Turn on or off resposive input."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/functions.php:127
|
||||||
|
msgid "Default"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/functions.php:128
|
||||||
|
msgid "Default value for this input."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/functions.php:134
|
||||||
|
msgid "Default (Laptop)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/functions.php:135
|
||||||
|
msgid "Default value for this input for only Laptop view."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/functions.php:142
|
||||||
|
msgid "Default (Tablet)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/functions.php:143
|
||||||
|
msgid "Default value for this input for only Tablet view."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/functions.php:150
|
||||||
|
msgid "Default (Mobile Landscape)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/functions.php:151
|
||||||
|
msgid "Default value for this input for only Mobile Landscape view."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/functions.php:158
|
||||||
|
msgid "Default (Mobile)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/functions.php:159
|
||||||
|
msgid "Default value for this input for only Mobile view."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/functions.php:168
|
||||||
|
#: includes/functions.php:179
|
||||||
|
msgid "CSS"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/functions.php:172
|
||||||
|
msgid "CSS Output"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/functions.php:173
|
||||||
|
msgid "Use as CSS output"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/functions.php:192
|
||||||
|
msgid "Selector"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/functions.php:193
|
||||||
|
msgid "Valid CSS selector. Multiple selector can be separated by \",\"."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/functions.php:199
|
||||||
|
msgid "Property"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/functions.php:200
|
||||||
|
msgid "Valid CSS Property. Accept only single property."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/functions.php:206
|
||||||
|
msgid "Replace"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/functions.php:207
|
||||||
|
msgid "Custom value with extended values. Use `{{value}}` tag to replace value. Example for border: `1px {{value}} #000`"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/functions.php:228
|
||||||
|
msgid "Transport"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/functions.php:229
|
||||||
|
msgid "Options for rendering the live preview of changes in Customizer. Using **Refresh** makes the change visible by reloading the whole preview. Using **Post Message** allows to change without reloading."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/functions.php:232
|
||||||
|
msgid "Refresh"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/functions.php:233
|
||||||
|
msgid "Post Message"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/functions.php:247
|
||||||
|
msgid "Capability required for the input."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/functions.php:302
|
||||||
|
#: includes/functions.php:363
|
||||||
|
msgid "Not authorized"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/functions.php:317
|
||||||
|
msgid "Untitled"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/functions.php:324
|
||||||
|
#: includes/functions.php:339
|
||||||
|
msgid "Something wrong!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. translators: Post ID.
|
||||||
|
#: includes/functions.php:331
|
||||||
|
msgid "Untitled #%d"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/functions.php:346
|
||||||
|
msgid "Successfully saved!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/functions.php:349
|
||||||
|
msgid "Nothing changed!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/functions.php:369
|
||||||
|
msgid "Option ID is empty."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/functions.php:378
|
||||||
|
msgid "Something wrong."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: views/addons.php:15
|
||||||
|
msgid "Addons"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: assets/js/builder.js:14077
|
||||||
|
#: assets/js/builder.js:14081
|
||||||
|
msgid "Changed will not save. Are you sure to leave?"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: assets/js/builder.js:14360
|
||||||
|
msgid "Error: unable to send request."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: assets/js/builder.js:15149
|
||||||
|
msgid "Containers"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: assets/js/builder.js:15160
|
||||||
|
msgid "Controls"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: assets/js/builder.js:15268
|
||||||
|
msgid "Drop a section here."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: assets/js/builder.js:15392
|
||||||
|
msgid "Drop a panel or section here."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: assets/js/builder.js:15512
|
||||||
|
msgid "Drop a control here."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: assets/js/customizely.js:435
|
||||||
|
#: assets/js/customizely.js:630
|
||||||
|
#: assets/js/customizely.js:665
|
||||||
|
msgid "Invalid Unit"
|
||||||
|
msgstr ""
|
||||||
@@ -0,0 +1,55 @@
|
|||||||
|
# Copyright (C) 2019 Davon Team
|
||||||
|
# This file is distributed under the same license as the Davon’s Floating Admin Bar plugin.
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Davon’s Floating Admin Bar 1.0.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/davon-floating-"
|
||||||
|
"admin-bar\n"
|
||||||
|
"Last-Translator: Joel <joel.stuedle@gmail.com>\n"
|
||||||
|
"Language-Team: German\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"POT-Creation-Date: 2019-05-24T13:03:52+00:00\n"
|
||||||
|
"PO-Revision-Date: 2019-05-24 13:06+0000\n"
|
||||||
|
"X-Generator: Loco https://localise.biz/\n"
|
||||||
|
"X-Domain: davon-floating-admin-bar\n"
|
||||||
|
"Language: de_DE\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||||
|
"X-Loco-Version: 2.2.2; wp-5.2.1"
|
||||||
|
|
||||||
|
#. Plugin Name of the plugin
|
||||||
|
msgid "Davon’s Floating Admin Bar"
|
||||||
|
msgstr "Davon’s Floating Admin Bar"
|
||||||
|
|
||||||
|
#. Plugin URI of the plugin
|
||||||
|
#. Author URI of the plugin
|
||||||
|
msgid "https://joelstuedle.ch/"
|
||||||
|
msgstr "https://joelstuedle.ch/"
|
||||||
|
|
||||||
|
#. Description of the plugin
|
||||||
|
msgid ""
|
||||||
|
"The Davon’s Floating Admin Bar floats at the top of your Website with "
|
||||||
|
"minimal impact on the website’s appearance."
|
||||||
|
msgstr ""
|
||||||
|
"Die Davon’s Floating Admin Bar positioniert sich oberhalb des Viewports mit "
|
||||||
|
"minimalem Einfluss auf die Erscheinung der Webseite."
|
||||||
|
|
||||||
|
#. Author of the plugin
|
||||||
|
msgid "Davon Team"
|
||||||
|
msgstr "Davon Team"
|
||||||
|
|
||||||
|
#. translators: Compatibility-Check failed Warning
|
||||||
|
#: davon-floating-admin-bar.php:52
|
||||||
|
msgctxt "Compatibility-Check failed Warning"
|
||||||
|
msgid ""
|
||||||
|
"%1$s requires PHP %2$s (or newer) and WordPress %3$s (or newer) to function "
|
||||||
|
"properly. Your Site is using PHP %4$s and WordPress %5$s. Please upgrade. "
|
||||||
|
"The Plugin has been deactivated automatically. Don’t hesitate to ask for "
|
||||||
|
"Help @%6$s."
|
||||||
|
msgstr ""
|
||||||
|
"%1$s benötigt PHP %2$s (oder neuer) and WordPress %3$s (oder neuer) um "
|
||||||
|
"fehlerfrei zu funktionieren. Deine Seite benutzt PHP %4$s und WordPress %5$s."
|
||||||
|
" Bitte aktualisiere deine Komponenten. Das Plugin wurde automatisch "
|
||||||
|
"deaktiviert. Bei Fragen und Problemen stehen wir dir gerne zur Verfügung "
|
||||||
|
"@%6$s."
|
||||||
@@ -0,0 +1,278 @@
|
|||||||
|
# Display Post Types.
|
||||||
|
# Copyright (C) 2019 vedathemes
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# FIRST AUTHOR <contact@vedathemes.com>, 2019.
|
||||||
|
#
|
||||||
|
#, fuzzy
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: display-post-types 1.0.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2019-08-22 22:24+0530\n"
|
||||||
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
"Language: \n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=CHARSET\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
|
#: backend/inc/class-block.php:229
|
||||||
|
msgid "Post Type"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-block.php:247
|
||||||
|
msgid "Taxonomy"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:121
|
||||||
|
msgid "Publish Date"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:122
|
||||||
|
msgid "Modified Date"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:123 backend/inc/class-widget.php:150
|
||||||
|
#: backend/inc/class-widget.php:209
|
||||||
|
msgid "Title"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:124
|
||||||
|
msgid "Author"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:125
|
||||||
|
msgid "Comment Count"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:126
|
||||||
|
msgid "Random"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:130
|
||||||
|
msgid "Top Left Cropping"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:131
|
||||||
|
msgid "Top Center Cropping"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:132
|
||||||
|
msgid "Center Cropping"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:133
|
||||||
|
msgid "Bottom Left Cropping"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:134
|
||||||
|
msgid "Bottom Center Cropping"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:138
|
||||||
|
msgid "No Cropping"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:139
|
||||||
|
msgid "Landscape (4:3)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:140
|
||||||
|
msgid "Landscape (3:2)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:141
|
||||||
|
msgid "Portrait (3:4)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:142
|
||||||
|
msgid "Portrait (2:3)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:143
|
||||||
|
msgid "Widescreen (16:9)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:144
|
||||||
|
msgid "Square (1:1)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:149
|
||||||
|
msgid "Thumbnail"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:151
|
||||||
|
msgid "Meta info"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:152
|
||||||
|
msgid "Category"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:153
|
||||||
|
msgid "Excerpt"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:159
|
||||||
|
msgid "Create a display post types widget."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:162
|
||||||
|
msgid "Display Post Types"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:216
|
||||||
|
msgid "None"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:217
|
||||||
|
msgid "Select Post Type"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:222
|
||||||
|
msgid "Get items to be displayed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:231
|
||||||
|
msgid "Get items by Post IDs (optional)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:232
|
||||||
|
msgctxt "Placeholder text for post ids"
|
||||||
|
msgid "Comma separated ids, i.e. 230,300"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:244
|
||||||
|
msgid "Number of items to display"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:250
|
||||||
|
msgid "Order By"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:257
|
||||||
|
msgid "Sort Order"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:259
|
||||||
|
msgid "Descending"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:260
|
||||||
|
msgid "Ascending"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:268
|
||||||
|
msgid "Styling selected items"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:273
|
||||||
|
msgid "Display Style"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:285
|
||||||
|
msgid "Image Cropping"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:292
|
||||||
|
msgid "Image Cropping Position"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:300
|
||||||
|
msgid "Left Aligned"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:301
|
||||||
|
msgid "Right Aligned"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:303
|
||||||
|
msgid "Image Alignment"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:309
|
||||||
|
msgid "Border Radius (in px)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:314
|
||||||
|
msgid "Number of grid columns"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:319
|
||||||
|
msgid "Thumbnail Placeholder"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:428
|
||||||
|
msgid "Select Pages"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:458
|
||||||
|
msgid "Select Terms"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:488
|
||||||
|
msgid "Items supported by display style"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/class-widget.php:518
|
||||||
|
msgid "Get items by Taxonomy"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/functions.php:18
|
||||||
|
msgid "Posts"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/functions.php:19
|
||||||
|
msgid "Pages"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/functions.php:45
|
||||||
|
msgid "Ignore Taxonomy"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/functions.php:46
|
||||||
|
msgid "Categories"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/functions.php:47
|
||||||
|
msgid "Tags"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: backend/inc/functions.php:92
|
||||||
|
msgid "- Ignore Taxonomy -"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: frontend/class-frontend.php:58
|
||||||
|
msgid "List - Full"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: frontend/class-frontend.php:62
|
||||||
|
msgid "List - Mini"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: frontend/class-frontend.php:66
|
||||||
|
msgid "Grid - Normal"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: frontend/class-frontend.php:70
|
||||||
|
msgid "Grid - Overlay"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: frontend/class-frontend.php:74
|
||||||
|
msgid "Slider - Normal"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: frontend/class-frontend.php:383
|
||||||
|
#, php-format
|
||||||
|
msgctxt "human-readable time difference"
|
||||||
|
msgid "%s ago"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: frontend/class-frontend.php:510
|
||||||
|
msgid "Continue Reading"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: frontend/class-frontend.php:553
|
||||||
|
msgid "on"
|
||||||
|
msgstr ""
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
# Copyright (C) 2019 SEO Themes
|
||||||
|
# This file is distributed under the same license as the Display Terms Shortcode plugin.
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Display Terms Shortcode 1.0.4\n"
|
||||||
|
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/display-terms-shortcode\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"POT-Creation-Date: 2019-08-11T10:12:52+00:00\n"
|
||||||
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
|
"X-Generator: WP-CLI 2.1.0\n"
|
||||||
|
"X-Domain: display-terms-shortcode\n"
|
||||||
|
|
||||||
|
#. Plugin Name of the plugin
|
||||||
|
msgid "Display Terms Shortcode"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Plugin URI of the plugin
|
||||||
|
msgid "https://github.com/seothemes/display-terms-shortcode/"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Description of the plugin
|
||||||
|
msgid "Display a list of terms using the [display-terms] shortcode."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Author of the plugin
|
||||||
|
msgid "SEO Themes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Author URI of the plugin
|
||||||
|
msgid "https://seothemes.com/"
|
||||||
|
msgstr ""
|
||||||
2
spec/fixtures/dynamic_finders/plugin_version/easy-image-optimizer/change_log/changelog.txt
vendored
Normal file
2
spec/fixtures/dynamic_finders/plugin_version/easy-image-optimizer/change_log/changelog.txt
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
= 1.0.0 =
|
||||||
|
* First release (ported from EWWW Image Optimizer)
|
||||||
@@ -0,0 +1,111 @@
|
|||||||
|
# Copyright (C) 2019 Brainstorm Force
|
||||||
|
# This file is distributed under the same license as the EDD Advanced Discounts package.
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: EDD Advanced Discounts 1.0.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: "
|
||||||
|
"https://wordpress.org/support/plugin/edd-advanced-discounts\n"
|
||||||
|
"POT-Creation-Date: 2019-08-27 16:40:46+00:00\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"PO-Revision-Date: 2019-MO-DA HO:MI+ZONE\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
"Language: en\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
"X-Poedit-Country: United States\n"
|
||||||
|
"X-Poedit-SourceCharset: UTF-8\n"
|
||||||
|
"X-Poedit-KeywordsList: "
|
||||||
|
"__;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_"
|
||||||
|
"attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n"
|
||||||
|
"X-Poedit-Basepath: ../\n"
|
||||||
|
"X-Poedit-SearchPath-0: .\n"
|
||||||
|
"X-Poedit-Bookmarks: \n"
|
||||||
|
"X-Textdomain-Support: yes\n"
|
||||||
|
"X-Generator: grunt-wp-i18n 1.0.3\n"
|
||||||
|
|
||||||
|
#: classes/class-ade-edd-discount-functions.php:64
|
||||||
|
msgid "Maximum order of %s not met."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-ade-edd-discount-functions.php:106
|
||||||
|
#: classes/class-ade-edd-discount-functions.php:127
|
||||||
|
msgid "The product requirements for this discount are not met."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-ade-edd-discount-options.php:54
|
||||||
|
#: classes/class-ade-edd-discount-options.php:126
|
||||||
|
msgid "Product Requirements"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-ade-edd-discount-options.php:66
|
||||||
|
#: classes/class-ade-edd-discount-options.php:140
|
||||||
|
msgid "Select one or more products"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-ade-edd-discount-options.php:75
|
||||||
|
#: classes/class-ade-edd-discount-options.php:149
|
||||||
|
msgid "Cart must contain all selected products"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-ade-edd-discount-options.php:76
|
||||||
|
#: classes/class-ade-edd-discount-options.php:150
|
||||||
|
msgid "Cart needs one or more of the selected products"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-ade-edd-discount-options.php:82
|
||||||
|
#: classes/class-ade-edd-discount-options.php:156
|
||||||
|
msgid "Apply discount to entire purchase."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-ade-edd-discount-options.php:86
|
||||||
|
#: classes/class-ade-edd-discount-options.php:160
|
||||||
|
msgid "Apply discount only to selected products."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-ade-edd-discount-options.php:90
|
||||||
|
#: classes/class-ade-edd-discount-options.php:165
|
||||||
|
msgid ""
|
||||||
|
"Select products relevant to this discount. If left blank, this discount can "
|
||||||
|
"be used on any product."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-ade-edd-discount-options.php:96
|
||||||
|
#: classes/class-ade-edd-discount-options.php:171
|
||||||
|
msgid "Maximum Amount"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-ade-edd-discount-options.php:100
|
||||||
|
#: classes/class-ade-edd-discount-options.php:175
|
||||||
|
msgid ""
|
||||||
|
"The maximum amount below which this discount can be used. Leave blank for "
|
||||||
|
"no maximum."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-ade-edd-loader.php:68
|
||||||
|
msgid "plugin requires"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: classes/class-ade-edd-loader.php:68
|
||||||
|
msgid " plugin installed & activated."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Plugin Name of the plugin/theme
|
||||||
|
msgid "EDD Advanced Discounts"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Description of the plugin/theme
|
||||||
|
msgid ""
|
||||||
|
"Customize EDD discounts easily that will bring more sales and profit to "
|
||||||
|
"your store. Offer discounts on selected product variations and set a "
|
||||||
|
"maximum limit for cart total."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Author of the plugin/theme
|
||||||
|
msgid "Brainstorm Force"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Author URI of the plugin/theme
|
||||||
|
msgid "https://brainstormforce.com"
|
||||||
|
msgstr ""
|
||||||
27
spec/fixtures/dynamic_finders/plugin_version/enter-title-here-changer/change_log/CHANGELOG.MD
vendored
Normal file
27
spec/fixtures/dynamic_finders/plugin_version/enter-title-here-changer/change_log/CHANGELOG.MD
vendored
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
# Enter Title Here Changer Changelog
|
||||||
|
|
||||||
|
## [0.3.0] - July 9, 2019
|
||||||
|
- Improved: More information is added to readme.txt files
|
||||||
|
- Removed: Remove support for GitHub Updater
|
||||||
|
- Changed: Plugin URI has been change to the WordPress repos URI
|
||||||
|
- Fixed: Fix the undefined error when trying to create a new quick draft in dashboard
|
||||||
|
|
||||||
|
[0.3.0]: https://github.com/TremiDkhar/enter-title-here-changer/compare/0.2.0...0.3.0
|
||||||
|
|
||||||
|
## [0.2.0] - July 8, 2019
|
||||||
|
- Uploaded to WordPress.org - `Birthday of Enter Title Here Changer`
|
||||||
|
- Improved: Club all the settings functions inside settings class
|
||||||
|
- Removed: Remove unnecessary methods
|
||||||
|
|
||||||
|
[0.2.0]: https://github.com/TremiDkhar/enter-title-here-changer/compare/0.1.1...0.2.0
|
||||||
|
|
||||||
|
## [0.1.1] - July 7, 2019
|
||||||
|
- Added: Add support for Custom Post Type
|
||||||
|
- Added: Add uninstaller settings to delete data when plugin is removed
|
||||||
|
- Added: Add default plugin data
|
||||||
|
- Fixed: Check the settings is set before output in the settings field
|
||||||
|
|
||||||
|
[0.1.1]: https://github.com/TremiDkhar/enter-title-here-changer/compare/0.1.0...0.1.1
|
||||||
|
|
||||||
|
## 0.1.0 - July 5, 2019
|
||||||
|
- Initial Release
|
||||||
@@ -0,0 +1,141 @@
|
|||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: GDPR Cookie Banner 1.0.0\n"
|
||||||
|
"POT-Creation-Date: 2019-06-25 15:36+0530\n"
|
||||||
|
"PO-Revision-Date: 2019-06-25 15:39+0530\n"
|
||||||
|
"Last-Translator: \n"
|
||||||
|
"Language-Team: \n"
|
||||||
|
"Language: en\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"X-Generator: Poedit 2.2.3\n"
|
||||||
|
"X-Poedit-Basepath: ..\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
"X-Poedit-KeywordsList: __;_e;_x;_ex;_n;_nx;_n_noop;_nx_noop;"
|
||||||
|
"translate_nooped_plural;esc_html__;esc_html_e;esc_html_x;"
|
||||||
|
"esc_attr__;esc_attr_e;esc_attr_x\n"
|
||||||
|
"X-Poedit-SearchPath-0: .\n"
|
||||||
|
|
||||||
|
#: admin/class-gdpr-cookie-banner-admin.php:117
|
||||||
|
msgid "Settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/class-gdpr-cookie-banner-admin.php:137
|
||||||
|
msgid "General Settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/class-gdpr-cookie-banner-admin.php:138
|
||||||
|
msgid "Banner Message"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/class-gdpr-cookie-banner-admin.php:139
|
||||||
|
msgid "Banner Position"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/class-gdpr-cookie-banner-admin.php:140
|
||||||
|
msgid "Banner Size"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/class-gdpr-cookie-banner-admin.php:141
|
||||||
|
msgid "Background Color"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/class-gdpr-cookie-banner-admin.php:142
|
||||||
|
msgid "Banner Font"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/class-gdpr-cookie-banner-admin.php:143
|
||||||
|
msgid "Banner Font Size"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/class-gdpr-cookie-banner-admin.php:154
|
||||||
|
msgid "Settings For GDPR Cookie Banner"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/class-gdpr-cookie-banner-admin.php:170
|
||||||
|
msgid "Banner Message Goes Here....."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/class-gdpr-cookie-banner-admin.php:192
|
||||||
|
#: admin/class-gdpr-cookie-banner-admin.php:198
|
||||||
|
msgid "Bottom"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/class-gdpr-cookie-banner-admin.php:193
|
||||||
|
#: admin/class-gdpr-cookie-banner-admin.php:199
|
||||||
|
msgid "Top"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/class-gdpr-cookie-banner-admin.php:215
|
||||||
|
#: admin/class-gdpr-cookie-banner-admin.php:222
|
||||||
|
#: admin/class-gdpr-cookie-banner-admin.php:229
|
||||||
|
msgid "Large"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/class-gdpr-cookie-banner-admin.php:216
|
||||||
|
#: admin/class-gdpr-cookie-banner-admin.php:223
|
||||||
|
#: admin/class-gdpr-cookie-banner-admin.php:230
|
||||||
|
msgid "Medium"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/class-gdpr-cookie-banner-admin.php:217
|
||||||
|
#: admin/class-gdpr-cookie-banner-admin.php:224
|
||||||
|
#: admin/class-gdpr-cookie-banner-admin.php:231
|
||||||
|
msgid "Small"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/class-gdpr-cookie-banner-admin.php:248
|
||||||
|
#: admin/class-gdpr-cookie-banner-admin.php:257
|
||||||
|
msgid "Dark"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/class-gdpr-cookie-banner-admin.php:249
|
||||||
|
#: admin/class-gdpr-cookie-banner-admin.php:258
|
||||||
|
msgid "Light"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/class-gdpr-cookie-banner-admin.php:312
|
||||||
|
msgid "GDPR Cookie Banner"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/class-gdpr-cookie-banner-admin.php:353
|
||||||
|
msgid "Banner Message cannot be blank"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/class-gdpr-cookie-banner-admin.php:371
|
||||||
|
msgid "Banner Position field is required"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/class-gdpr-cookie-banner-admin.php:375
|
||||||
|
msgid "Banner Position field is not valid"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/class-gdpr-cookie-banner-admin.php:393
|
||||||
|
msgid "Banner Size field is required"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/class-gdpr-cookie-banner-admin.php:397
|
||||||
|
msgid "Banner Size field is not valid"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/class-gdpr-cookie-banner-admin.php:424
|
||||||
|
msgid "Banner Font field is required"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/class-gdpr-cookie-banner-admin.php:439
|
||||||
|
msgid "Banner Font Size field is required"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/partials/gdpr-cookie-banner-admin-display.php:49
|
||||||
|
#: admin/partials/gdpr-cookie-banner-admin-display.php:55
|
||||||
|
msgid "Privacy Policy"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/partials/gdpr-cookie-banner-admin-display.php:59
|
||||||
|
msgid "Copy"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/partials/gdpr-cookie-banner-admin-display.php:60
|
||||||
|
msgid "Link Copied!!"
|
||||||
|
msgstr ""
|
||||||
1542
spec/fixtures/dynamic_finders/plugin_version/ghostbirdwp/translation_file/languages/ghostbirdwp.pot
vendored
Normal file
1542
spec/fixtures/dynamic_finders/plugin_version/ghostbirdwp/translation_file/languages/ghostbirdwp.pot
vendored
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"sitepress-multilingual-cms": "4.0.4",
|
||||||
|
"wpml-translation-management": "2.6.4",
|
||||||
|
"wpml-string-translation": "2.8.4",
|
||||||
|
"wpml-media-translation": "2.3.4",
|
||||||
|
"wpml-sticky-links": "1.4.4",
|
||||||
|
"wpml-cms-nav": "1.4.3",
|
||||||
|
"gravityforms-multilingual": "1.3.16"
|
||||||
|
}
|
||||||
48
spec/fixtures/dynamic_finders/plugin_version/imagewalk/composer_file/package.json
vendored
Normal file
48
spec/fixtures/dynamic_finders/plugin_version/imagewalk/composer_file/package.json
vendored
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
{
|
||||||
|
"name": "imagewalk",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"private": true,
|
||||||
|
"scripts": {
|
||||||
|
"all": "npm run admin && npm run core && npm run main && npm run uploader",
|
||||||
|
"admin": "PKG=admin npm run do-${MODE:-build}",
|
||||||
|
"core": "PKG=core npm run do-${MODE:-build}",
|
||||||
|
"main": "PKG=main npm run do-${MODE:-build}",
|
||||||
|
"uploader": "PKG=uploader npm run do-${MODE:-build}",
|
||||||
|
"do-build": "browserify -e assets/js/src/$PKG | uglifyjs -c -m -o assets/js/dist/$PKG.min.js",
|
||||||
|
"postdo-build": "PKGCSS=assets/scss/$PKG.scss; if [ -f \"$PKGCSS\" ]; then node-sass $PKGCSS assets/css/$PKG.css --output-style expanded; fi",
|
||||||
|
"do-watch": "watchify -e assets/js/src/$PKG -o assets/js/dist/$PKG.js --delay 1500",
|
||||||
|
"do-release": "npm run all && node do-release.js"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@wordpress/hooks": "^2.4.0",
|
||||||
|
"cropperjs": "^1.5.5",
|
||||||
|
"lodash.debounce": "^4.0.8",
|
||||||
|
"lodash.memoize": "^4.1.2",
|
||||||
|
"lodash.template": "^4.5.0",
|
||||||
|
"lodash.throttle": "^4.1.1",
|
||||||
|
"pica": "^5.1.0",
|
||||||
|
"qss": "^2.0.3"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@babel/core": "^7.5.5",
|
||||||
|
"@babel/preset-env": "^7.5.5",
|
||||||
|
"@wordpress/browserslist-config": "^2.5.0",
|
||||||
|
"archiver": "^3.0.3",
|
||||||
|
"babelify": "^10.0.0",
|
||||||
|
"browserify": "^16.3.0",
|
||||||
|
"browserify-shim": "^3.8.14",
|
||||||
|
"node-sass": "^4.12.0",
|
||||||
|
"uglify-js": "^3.6.0",
|
||||||
|
"watchify": "^3.11.1"
|
||||||
|
},
|
||||||
|
"browserify": {
|
||||||
|
"transform": [
|
||||||
|
"babelify",
|
||||||
|
"browserify-shim"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"browserify-shim": {
|
||||||
|
"imagewalk": "global:imagewalk",
|
||||||
|
"imagewalk-data": "global:imagewalk_data"
|
||||||
|
}
|
||||||
|
}
|
||||||
14
spec/fixtures/dynamic_finders/plugin_version/instashop/composer_file/package.json
vendored
Normal file
14
spec/fixtures/dynamic_finders/plugin_version/instashop/composer_file/package.json
vendored
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"name": "instashop",
|
||||||
|
"title": "InstaShop",
|
||||||
|
"version": "1.4.1",
|
||||||
|
"homepage": "https://instashopapp.com/",
|
||||||
|
"main": "Gruntfile.js",
|
||||||
|
"devDependencies": {
|
||||||
|
"grunt": "~0.4.5",
|
||||||
|
"grunt-contrib-uglify": "~0.4.0",
|
||||||
|
"grunt-contrib-less": "~0.11.1",
|
||||||
|
"grunt-contrib-cssmin": "~0.9.0",
|
||||||
|
"grunt-contrib-watch": "~0.6.1"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,108 @@
|
|||||||
|
# Copyright (C) 2019 zetamatic
|
||||||
|
# This file is distributed under the same license as the Integration of Caldera Forms and Salesforce plugin.
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Integration of Caldera Forms and Salesforce 0.0.1\n"
|
||||||
|
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/integrate-caldera-forms-salesforce\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"POT-Creation-Date: 2019-09-06T05:40:58+00:00\n"
|
||||||
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
|
"X-Generator: WP-CLI 2.2.0\n"
|
||||||
|
"X-Domain: integrate-caldera-forms-salesforce\n"
|
||||||
|
|
||||||
|
#. Plugin Name of the plugin
|
||||||
|
msgid "Integration of Caldera Forms and Salesforce"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Plugin URI of the plugin
|
||||||
|
msgid "https://zetamatic.com"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Description of the plugin
|
||||||
|
msgid "Caldera Forms Salesforce Integration is a Caldera Forms plugin/addon which allows you to push the data to Salesforce."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Author of the plugin
|
||||||
|
msgid "zetamatic"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: inc/config.php:2
|
||||||
|
msgid "Environment"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: inc/config.php:5
|
||||||
|
msgid "Production"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: inc/config.php:6
|
||||||
|
msgid "Sandbox"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: inc/config.php:12
|
||||||
|
msgid "Salesforce Organisation Id"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: inc/config.php:16
|
||||||
|
msgid "Get your Production Organisation ID to <a href=\"https://help.salesforce.com/articleView?id=000325251&type=1&mode=1\">Click Here</a>"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: inc/config.php:18
|
||||||
|
msgid "Get your Sandbox Organisation ID to <a href=\"https://help.salesforce.com/articleView?id=data_sandbox_create.htm&type=5\">Click Here</a>"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: inc/config.php:24
|
||||||
|
msgid "Salesforce Debugging Email"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: inc/config.php:28
|
||||||
|
msgid "Provide a valid Email for debugging."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: inc/config.php:34
|
||||||
|
msgid "Salesforce Object"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: inc/config.php:37
|
||||||
|
msgid "Lead"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: inc/config.php:43
|
||||||
|
msgid "First Name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: inc/config.php:50
|
||||||
|
msgid "Last Name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: inc/config.php:57
|
||||||
|
msgid "Your Email"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: inc/config.php:64
|
||||||
|
msgid "Company Name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: inc/config.php:71
|
||||||
|
msgid "Title"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: inc/config.php:78
|
||||||
|
msgid "Mobile No"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: inc/class-icfs.php:91
|
||||||
|
msgid "Salesforce Integration"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: inc/class-icfs.php:92
|
||||||
|
msgid "Send Caldera Forms submission data to Salesforce using Salesforce REST API."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. translators: %s: PHP version
|
||||||
|
#: integrate-caldera-forms-salesforce.php:57
|
||||||
|
msgid "Calder Forms Salesforce Integration requires PHP version %s+, plugin is currently NOT RUNNING."
|
||||||
|
msgstr ""
|
||||||
@@ -0,0 +1,81 @@
|
|||||||
|
# Copyright (C) 2019 Oberon Lai
|
||||||
|
# This file is distributed under the same license as the Media with FTP plugin.
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Media with FTP 1.0.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/media-with-ftp\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"POT-Creation-Date: 2019-08-02T09:57:38+00:00\n"
|
||||||
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
|
"X-Generator: WP-CLI 2.2.0\n"
|
||||||
|
"X-Domain: media-with-ftp\n"
|
||||||
|
|
||||||
|
#. Plugin Name of the plugin
|
||||||
|
#: admin/class-media-with-ftp-admin.php:115
|
||||||
|
#: admin/class-media-with-ftp-admin.php:118
|
||||||
|
msgid "Media with FTP"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Plugin URI of the plugin
|
||||||
|
msgid "https://oberonlai.blog/media-with-ftp/"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Description of the plugin
|
||||||
|
msgid "Let's you upload images to ftp-server and remove the uploads in the WordPress Media Library."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Author of the plugin
|
||||||
|
msgid "Oberon Lai"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Author URI of the plugin
|
||||||
|
msgid "https://oberonlai.blog"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/class-media-with-ftp-admin.php:122
|
||||||
|
msgid "FTP Host Name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/class-media-with-ftp-admin.php:123
|
||||||
|
msgid "This is the FTP server hostname. It is usually used IP address or host URL."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/class-media-with-ftp-admin.php:127
|
||||||
|
msgid "ex: 123.123.123.123 or domain.com"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/class-media-with-ftp-admin.php:131
|
||||||
|
msgid "FTP Port"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/class-media-with-ftp-admin.php:132
|
||||||
|
msgid "This is the port number of connection the FTP server. The default is 21. DO NOT change it if you have no idea about protocol port."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/class-media-with-ftp-admin.php:143
|
||||||
|
msgid "FTP Username"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/class-media-with-ftp-admin.php:144
|
||||||
|
msgid "This is the username of connecting the FTP Server."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/class-media-with-ftp-admin.php:149
|
||||||
|
msgid "FTP Password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/class-media-with-ftp-admin.php:150
|
||||||
|
msgid "This is the password of connecting the FTP Server."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/class-media-with-ftp-admin.php:158
|
||||||
|
msgid "FTP Image URL"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: admin/class-media-with-ftp-admin.php:159
|
||||||
|
msgid "This is the URL with folder structure of your FTP Server and also the path of your website's images."
|
||||||
|
msgstr ""
|
||||||
@@ -0,0 +1,240 @@
|
|||||||
|
# Copyright (C) 2019 Jörn Lund
|
||||||
|
# This file is distributed under the same license as the Multisite Blog Alias plugin.
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Multisite Blog Alias 1.0.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/multisite-blog-alias\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"POT-Creation-Date: 2019-07-16T14:23:15+00:00\n"
|
||||||
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
|
"X-Generator: WP-CLI 2.1.0\n"
|
||||||
|
"X-Domain: multisite-blog-alias\n"
|
||||||
|
|
||||||
|
#. Plugin Name of the plugin
|
||||||
|
msgid "Multisite Blog Alias"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Plugin URI of the plugin
|
||||||
|
msgid "https://github.com/mcguffin/multisite-blog-alias"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Description of the plugin
|
||||||
|
msgid "Alias Domains for Blogs"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Author of the plugin
|
||||||
|
msgid "Jörn Lund"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Author URI of the plugin
|
||||||
|
msgid "https://github.com/mcguffin"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: index.php:67
|
||||||
|
msgid "The Multisite Blog Alias plugin requires a WordPress multisite installation."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: index.php:68
|
||||||
|
msgid "It has been deactivated."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/BlogAlias/Admin/Ajax.php:67
|
||||||
|
#: include/BlogAlias/Admin/NetworkAdmin.php:483
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/BlogAlias/Admin/Ajax.php:72
|
||||||
|
msgid "View"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/BlogAlias/Admin/Ajax.php:75
|
||||||
|
msgid "Error message:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/BlogAlias/Admin/Ajax.php:80
|
||||||
|
msgid "Last Redirect to:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/BlogAlias/Admin/NetworkAdmin.php:70
|
||||||
|
msgid "Uninstall"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/BlogAlias/Admin/NetworkAdmin.php:80
|
||||||
|
msgid "Sorry, you are not allowed to install plugins."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/BlogAlias/Admin/NetworkAdmin.php:96
|
||||||
|
msgid "Multisite Blog Alias Setup"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/BlogAlias/Admin/NetworkAdmin.php:101
|
||||||
|
msgid "The plugin is well configured. The instructions are kept for documentation purposes."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/BlogAlias/Admin/NetworkAdmin.php:108
|
||||||
|
msgid "The plugin could not write to the filesystem."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/BlogAlias/Admin/NetworkAdmin.php:109
|
||||||
|
msgid "Please change the following."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. translators: Sunrise file location
|
||||||
|
#: include/BlogAlias/Admin/NetworkAdmin.php:140
|
||||||
|
msgid "Insert the following code into %s:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. translators: Sunrise file location
|
||||||
|
#: include/BlogAlias/Admin/NetworkAdmin.php:143
|
||||||
|
msgid "Create a file %s with the following code:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/BlogAlias/Admin/NetworkAdmin.php:174
|
||||||
|
msgid "Sorry, you are not allowed to run the uninstall procedere."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/BlogAlias/Admin/NetworkAdmin.php:196
|
||||||
|
msgid "Uninstall Plugin?"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/BlogAlias/Admin/NetworkAdmin.php:197
|
||||||
|
msgid "Uninstalling the plugin will remove the Blog Alias table from the database and deactivate the plugin."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Translators: %d number of alias domains
|
||||||
|
#: include/BlogAlias/Admin/NetworkAdmin.php:201
|
||||||
|
msgid "%d Alias Domain will be deleted."
|
||||||
|
msgid_plural "%d Alias Domains will be deleted."
|
||||||
|
msgstr[0] ""
|
||||||
|
|
||||||
|
#: include/BlogAlias/Admin/NetworkAdmin.php:204
|
||||||
|
msgid "No, back to plugins"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/BlogAlias/Admin/NetworkAdmin.php:205
|
||||||
|
msgid "Yes, Uninstall now!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/BlogAlias/Admin/NetworkAdmin.php:369
|
||||||
|
msgid "Alias Domains"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/BlogAlias/Admin/NetworkAdmin.php:445
|
||||||
|
msgid "Not Configured:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Translators: link to setup page
|
||||||
|
#: include/BlogAlias/Admin/NetworkAdmin.php:448
|
||||||
|
msgid "Multisite Blog Alias is not configured. Please visit %s for instructions."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/BlogAlias/Admin/NetworkAdmin.php:452
|
||||||
|
msgid "the setup page"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/BlogAlias/Admin/NetworkAdmin.php:460
|
||||||
|
msgid "Alias created"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. translators: number of deleted entries
|
||||||
|
#: include/BlogAlias/Admin/NetworkAdmin.php:463
|
||||||
|
msgid "%d entry deleted"
|
||||||
|
msgid_plural "%d entries deleted"
|
||||||
|
msgstr[0] ""
|
||||||
|
|
||||||
|
#: include/BlogAlias/Admin/NetworkAdmin.php:466
|
||||||
|
msgid "The Alias already exists."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/BlogAlias/Admin/NetworkAdmin.php:467
|
||||||
|
msgid "Invalid domain name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/BlogAlias/Admin/NetworkAdmin.php:468
|
||||||
|
msgid "Deletion failed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/BlogAlias/Admin/NetworkAdmin.php:469
|
||||||
|
msgid "A different Blog is already using this domain."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/BlogAlias/Admin/NetworkAdmin.php:470
|
||||||
|
msgid "Something went wrong..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/BlogAlias/Admin/NetworkAdmin.php:473
|
||||||
|
msgid "Error:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/BlogAlias/Admin/NetworkAdmin.php:480
|
||||||
|
msgid "Visit other Blog"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/BlogAlias/Admin/NetworkAdmin.php:491
|
||||||
|
msgid "Notice:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/BlogAlias/Admin/NetworkAdmin.php:492
|
||||||
|
#: include/BlogAlias/Model/ModelAliasDomains.php:76
|
||||||
|
msgid "The domain matches the site URL of this blog."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/BlogAlias/Admin/NetworkAdmin.php:524
|
||||||
|
msgid "Add Domain Alias"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/BlogAlias/Admin/NetworkAdmin.php:535
|
||||||
|
msgid "Add"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/BlogAlias/Admin/NetworkAdmin.php:542
|
||||||
|
msgid "Domain Aliases"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/BlogAlias/Admin/NetworkAdmin.php:546
|
||||||
|
msgid "– No Domain Aliases –"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/BlogAlias/Admin/NetworkAdmin.php:554
|
||||||
|
msgid "Alias Domain"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/BlogAlias/Admin/NetworkAdmin.php:555
|
||||||
|
msgid "Status"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/BlogAlias/Admin/NetworkAdmin.php:583
|
||||||
|
msgid "Remove"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/BlogAlias/Admin/NetworkAdmin.php:600
|
||||||
|
msgid "Check Status"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/BlogAlias/Admin/NetworkAdmin.php:602
|
||||||
|
msgid "Remove All"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/BlogAlias/Model/ModelAliasDomains.php:60
|
||||||
|
msgid "Domain alias not found."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/BlogAlias/Model/ModelAliasDomains.php:69
|
||||||
|
msgid "WP-Site for this alias could not be found."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/BlogAlias/Model/ModelAliasDomains.php:74
|
||||||
|
msgid "The domain is already used by another site."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/BlogAlias/Model/ModelAliasDomains.php:92
|
||||||
|
msgid "The domain is unreachable."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: include/BlogAlias/Model/ModelAliasDomains.php:99
|
||||||
|
msgid "The domain or a redirect does not point to this blog."
|
||||||
|
msgstr ""
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: MWB Zendesk Woo Order Sync 1.0.0\n"
|
||||||
|
"POT-Creation-Date: 2019-09-03 16:57+0530\n"
|
||||||
|
"PO-Revision-Date: 2019-09-03 16:57+0530\n"
|
||||||
|
"Last-Translator: \n"
|
||||||
|
"Language-Team: makewebbetter\n"
|
||||||
|
"Language: en\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"X-Generator: Poedit 2.0.6\n"
|
||||||
|
"X-Poedit-Basepath: ../../Documents/git plugin/Zendesk-Woocommerce-Order-"
|
||||||
|
"Sync\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
"X-Poedit-SourceCharset: UTF-8\n"
|
||||||
|
"X-Poedit-KeywordsList: __;_e;esc_html_e\n"
|
||||||
|
"X-Poedit-SearchPath-0: .\n"
|
||||||
|
|
||||||
|
#: Library/class-mwb-zendesk-manager.php:150
|
||||||
|
msgid "No orders found"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mwb-zendesk-woo-order-sync.php:123
|
||||||
|
msgid ""
|
||||||
|
"Woocommerce is not activated, please activate woocommerce first to install "
|
||||||
|
"and use zendesk woocommerce plugin."
|
||||||
|
msgstr ""
|
||||||
248
spec/fixtures/dynamic_finders/plugin_version/netreviews/change_log/changelog.txt
vendored
Normal file
248
spec/fixtures/dynamic_finders/plugin_version/netreviews/change_log/changelog.txt
vendored
Normal file
@@ -0,0 +1,248 @@
|
|||||||
|
|
||||||
|
Version: 2.1.2 / 05/08/2019
|
||||||
|
-SQL code optimization
|
||||||
|
|
||||||
|
|
||||||
|
Version: 2.1.1 / 15/07/2019
|
||||||
|
-Code optimization
|
||||||
|
|
||||||
|
Version: 2.1.0 / 27/05/2019
|
||||||
|
- New front-end option in WP back-office:
|
||||||
|
- Stars colour customization.
|
||||||
|
- New Badges available for frontend.
|
||||||
|
- New design of category Stars.
|
||||||
|
- Number of reviews to display in product page.
|
||||||
|
|
||||||
|
Version: 2.0.3 / 25/04/2019
|
||||||
|
- fix ajax lang
|
||||||
|
|
||||||
|
Version: 2.0.2 / 23/04/2019
|
||||||
|
- Small bug corrections
|
||||||
|
|
||||||
|
Version: 2.0.1 / 18/04/2019
|
||||||
|
- Bug Correction in Front-end
|
||||||
|
|
||||||
|
Version: 2.0.0 / 15/04/2019
|
||||||
|
- Fix Back-office and template
|
||||||
|
- Additional Rich Snippets code (Review)
|
||||||
|
- Bug Correction in Back-office
|
||||||
|
|
||||||
|
|
||||||
|
Version: 1.9.5 / 18/03/2019
|
||||||
|
- Back-office user and translations fix
|
||||||
|
|
||||||
|
Version: 1.9.4 / 15/03/2019
|
||||||
|
- Important security update
|
||||||
|
|
||||||
|
Version: 1.9.3 / 22/02/2019
|
||||||
|
- Back Office user interface improvement
|
||||||
|
|
||||||
|
version: 1.9.2 / 19/02/2019
|
||||||
|
- fix notice in av_backoffice
|
||||||
|
- fix float widget function
|
||||||
|
|
||||||
|
version: 1.9.1 / 18/02/2019
|
||||||
|
- fix bug multiligual
|
||||||
|
- Add function flag order (API)
|
||||||
|
|
||||||
|
version: 1.9.0 / 07/02/2019
|
||||||
|
- Adaptation with WPML multiligual plugin
|
||||||
|
|
||||||
|
version : 1.8.5 / 04/12/2018
|
||||||
|
- change readme presentation
|
||||||
|
|
||||||
|
version: 1.8.4 / 28/11/2018
|
||||||
|
-including font straight in our module. (Avoiding external calls).
|
||||||
|
|
||||||
|
version: 1.8.3 / date 22/11/2018
|
||||||
|
- change wording nfservice
|
||||||
|
|
||||||
|
version: 1.8.2 / date 13/11/2018
|
||||||
|
- Fix count() warning for PHP 7.2
|
||||||
|
- Look through to all prefix queries.
|
||||||
|
- try catch in order to check if the product exist api_functions.php
|
||||||
|
- Compatibilities wordpress 5.0 and woocommerce 3.5.1
|
||||||
|
|
||||||
|
version : 1.8.1 / date 27/09/2018
|
||||||
|
- Remove widget fixe code
|
||||||
|
|
||||||
|
version : 1.8.0 / date 13/09/2018
|
||||||
|
- Remove rich snippet site and category
|
||||||
|
|
||||||
|
version : 1.7.11 / date 21/09/2018
|
||||||
|
- Fix specific hooks
|
||||||
|
|
||||||
|
version : 1.7.10 / date 21/09/2018
|
||||||
|
- Add specific hooks
|
||||||
|
|
||||||
|
version : 1.7.9 / date 16/07/2018
|
||||||
|
- Fixed reviews export notice
|
||||||
|
- Fixed various other notices
|
||||||
|
- Fixed various Rich Snippet parts
|
||||||
|
|
||||||
|
version : 1.7.8 / date 05/07/2018
|
||||||
|
- Ajax url fixed (removed /index.php)
|
||||||
|
|
||||||
|
version : 1.7.7 / date 25/06/2018
|
||||||
|
- Various fixes
|
||||||
|
|
||||||
|
version : 1.7.6 / date 20/06/2018
|
||||||
|
- API/Ajax call is now made via a dedicated endpoint
|
||||||
|
- Enhanced WooCommerce 3.0 compliance
|
||||||
|
- Fixed 'more helpful reviews' missing in reviews dropdown list
|
||||||
|
- Corrected Italian translations
|
||||||
|
|
||||||
|
version : 1.7.5 / date 07/05/2018
|
||||||
|
- Display media option is now set in Netreviews configuration page
|
||||||
|
- Minor CSS Fix
|
||||||
|
- Minor PHP fixes
|
||||||
|
|
||||||
|
version : 1.7.4 / date : 16/04/2018
|
||||||
|
- IE compatibility
|
||||||
|
- Fix js rate filter
|
||||||
|
|
||||||
|
version : 1.7.3 / date : 16/04/2018
|
||||||
|
- It's now possible to enable/disable media on product reviews
|
||||||
|
- AV BackOffice CSS adjustments
|
||||||
|
|
||||||
|
version : 1.7.2 / date : 11/04/2018
|
||||||
|
- Fixed Firefox's double click bug on helpful button
|
||||||
|
- Helpful option activated by default
|
||||||
|
- Clean code
|
||||||
|
|
||||||
|
version : 1.7.1 / date : 10/04/2018
|
||||||
|
- Updated images with font icons, better indentation, removed big css comments
|
||||||
|
|
||||||
|
version : 1.7.0 / date : 27/03/2018
|
||||||
|
- Add medias and slider
|
||||||
|
|
||||||
|
version : 1.6.0 / date : 27/03/2018
|
||||||
|
- Fix google shopping fields (sku / urls)
|
||||||
|
|
||||||
|
version : 1.5.8 / date : 09/03/2018
|
||||||
|
- Switch API from serialize to json_encode
|
||||||
|
|
||||||
|
version : 1.5.7 / date : 13/02/2018
|
||||||
|
- Clean JS code
|
||||||
|
- Clean CSS code
|
||||||
|
|
||||||
|
version : 1.5.6 / date : 12/02/2018
|
||||||
|
- Texte modifier
|
||||||
|
- Ajout de traduction
|
||||||
|
- More comment
|
||||||
|
|
||||||
|
version : 1.5.5 / date : 17/01/2018
|
||||||
|
- Correction translation
|
||||||
|
|
||||||
|
version : 1.5.4 / date : 07/12/2017
|
||||||
|
- add img missing
|
||||||
|
- modif css
|
||||||
|
|
||||||
|
version : 1.5.3 / date : 07/12/2017
|
||||||
|
- Fix display infobulle
|
||||||
|
|
||||||
|
version : 1.5.2 / date : 28/11/2017
|
||||||
|
- Fix load more reviews
|
||||||
|
- add function update version module
|
||||||
|
- add order date and display on the reviews
|
||||||
|
|
||||||
|
version : 1.5.1 / date : 22/11/2017
|
||||||
|
- Fix pagination
|
||||||
|
- Make the helpful feature optionnal
|
||||||
|
|
||||||
|
version : 1.5.0 / date : 27/10/2017
|
||||||
|
- Add helpful reviews feature
|
||||||
|
- Add indicators
|
||||||
|
- New reviews design
|
||||||
|
|
||||||
|
version : 1.4.9 / date : 04/10/2017
|
||||||
|
- Fix new tables
|
||||||
|
|
||||||
|
version : 1.4.8 / date : 02/10/2017
|
||||||
|
- New feature multisite managemenent (many request impacted)
|
||||||
|
- Rich snippet site modified
|
||||||
|
- Replace function file_get_content by file_get_contents_curl
|
||||||
|
|
||||||
|
version : 1.4.7 / date : 07/09/2017
|
||||||
|
- Remove set_time_limit function
|
||||||
|
|
||||||
|
version : 1.4.6 / date : 22/06/2017
|
||||||
|
- Fix is_admin error 500
|
||||||
|
|
||||||
|
version : 1.4.5 / date : /05/2017
|
||||||
|
- Fix update_version
|
||||||
|
|
||||||
|
version : 1.4.4 / date : /04/2017
|
||||||
|
- Fix bug ntav_snippet_category()
|
||||||
|
|
||||||
|
version : 1.4.3 / date : 18/04/2017
|
||||||
|
- Integration rich snippet category (microdata and json ld)
|
||||||
|
|
||||||
|
version : 1.4.2 / date : 18/04/2017
|
||||||
|
- fix bug get_id on null
|
||||||
|
|
||||||
|
version : 1.4.1 / date : 13/04/2017
|
||||||
|
- fix error display
|
||||||
|
|
||||||
|
version : 1.4.0 / date : 13/04/2017
|
||||||
|
- Integration rich snippet product with json ld (compatible woocommerce 3.0)
|
||||||
|
|
||||||
|
version : 1.3.16 / date : 01/03/2017
|
||||||
|
- Migration de paramètres de configuration du back-office Wordpress vers le back-office Avis-Vérifiés
|
||||||
|
|
||||||
|
version : 1.3.15 / date : 16/02/2017
|
||||||
|
- Ajout du choix de la couleur de fond
|
||||||
|
- Ajout d'un champ CSS spécifique
|
||||||
|
|
||||||
|
version : 1.3.14 / date : 10/02/2017
|
||||||
|
- Correction d'un bug sur l'inclusion du fichier CSS
|
||||||
|
|
||||||
|
version : 1.3.13 / date : 09/02/2017
|
||||||
|
- Nouveau design front office
|
||||||
|
|
||||||
|
version : 1.3.12 / date : 09/02/2017
|
||||||
|
- Correction d'un bug majeur sur l'automatisation
|
||||||
|
|
||||||
|
version : 1.3.11 / date : 08/02/2017
|
||||||
|
- Ajout du choix de couleur des étoiles
|
||||||
|
|
||||||
|
version : 1.3.10 / date : 08/02/2017
|
||||||
|
- Amélioration backoffice
|
||||||
|
- Correction du problème de l'API non joignable à cause du template.
|
||||||
|
|
||||||
|
version : 1.3.9 / date : 06/02/2017
|
||||||
|
- Correction du problème de l'API non joignable à cause du template.
|
||||||
|
|
||||||
|
version : 1.3.8 / date : 02/02/2017
|
||||||
|
- Correction de quelques messages d'erreur.
|
||||||
|
|
||||||
|
version : 1.3.7 / date : 01/02/2017
|
||||||
|
- Ajout de l'option d'activation des richsnippets produits
|
||||||
|
- Modification du module pour respecter les standards Wordpress
|
||||||
|
|
||||||
|
version : 1.3.6 / date : 25/01/2017
|
||||||
|
- Fiche produit, on n'affiche rien si il n'y a pas d'avis
|
||||||
|
- Modification du module pour respecter les standards Wordpress
|
||||||
|
|
||||||
|
version : 1.3.5 / date : 16/01/2017
|
||||||
|
- Refonte graphique de la configuration
|
||||||
|
|
||||||
|
version : 1.3.4 / date : 11/01/2017
|
||||||
|
- Modification du header
|
||||||
|
- Ajout de traductions
|
||||||
|
|
||||||
|
version : 1.3.3 / date : 09/01/2017
|
||||||
|
- Amélioration graphique de la page de configuration
|
||||||
|
|
||||||
|
version : 1.3.2 / date : 06/01/2017
|
||||||
|
- Amélioration graphique de la page de configuration
|
||||||
|
|
||||||
|
version : 1.3.1 / date : 05/01/2017
|
||||||
|
- fix function view_project_template in pagetemplater.php exception
|
||||||
|
|
||||||
|
version : 1.3 / date : 29/12/2016
|
||||||
|
- Ajout favicon
|
||||||
|
- Amélioration graphique de la page de configuration
|
||||||
|
- Ajout des configurations des rich snippet site
|
||||||
|
- Ajout du widget Avis Vérifiés
|
||||||
|
- Modification et fix sur la fonction netreviews_product_rating()
|
||||||
3
spec/fixtures/dynamic_finders/plugin_version/new-page-comments/change_log/changelog.txt
vendored
Normal file
3
spec/fixtures/dynamic_finders/plugin_version/new-page-comments/change_log/changelog.txt
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
== Changelog ==
|
||||||
|
= 0.1 =
|
||||||
|
* Initial version
|
||||||
@@ -0,0 +1,246 @@
|
|||||||
|
# Copyright (C) 2019 Picocodes
|
||||||
|
# This file is distributed under the GPL3+.
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Noptin - Simple Newsletter Subscription Forms 1.0.5\n"
|
||||||
|
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/noptin\n"
|
||||||
|
"POT-Creation-Date: 2019-08-01 13:43:55+00:00\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"PO-Revision-Date: 2019-MO-DA HO:MI+ZONE\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
"Language: en\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
"X-Poedit-Country: United States\n"
|
||||||
|
"X-Poedit-SourceCharset: UTF-8\n"
|
||||||
|
"X-Poedit-KeywordsList: "
|
||||||
|
"__;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_"
|
||||||
|
"attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n"
|
||||||
|
"X-Poedit-Basepath: ../\n"
|
||||||
|
"X-Poedit-SearchPath-0: .\n"
|
||||||
|
"X-Poedit-Bookmarks: \n"
|
||||||
|
"X-Textdomain-Support: yes\n"
|
||||||
|
"X-Generator: grunt-wp-i18n 1.0.3\n"
|
||||||
|
|
||||||
|
#: includes/admin/admin.php:249
|
||||||
|
msgid "Newsletter opt-in forms"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/admin/admin.php:250
|
||||||
|
msgid "Newsletter Forms"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/admin/admin.php:259 includes/admin/admin.php:260
|
||||||
|
#: includes/admin/templates/forms-list.php:22
|
||||||
|
msgid "Add New Form"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/admin/admin.php:269 includes/admin/admin.php:270
|
||||||
|
msgid "Subscribers"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/admin/forms-editor-quick.php:239
|
||||||
|
#: includes/admin/forms-editor.php:819
|
||||||
|
msgid "Editing"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/admin/forms-editor-quick.php:240
|
||||||
|
#: includes/admin/forms-editor.php:820
|
||||||
|
msgid "Save"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/admin/forms-editor-quick.php:241
|
||||||
|
#: includes/admin/forms-editor.php:821
|
||||||
|
msgid "Saving..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/admin/forms-editor-quick.php:242
|
||||||
|
#: includes/admin/forms-editor.php:822
|
||||||
|
msgid "Save As Template"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/admin/forms-editor-quick.php:243
|
||||||
|
#: includes/admin/forms-editor.php:823
|
||||||
|
msgid "Saving Template..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/admin/forms-editor-quick.php:244
|
||||||
|
#: includes/admin/forms-editor.php:824
|
||||||
|
msgid "There was an error saving your form."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/admin/forms-editor-quick.php:245
|
||||||
|
#: includes/admin/forms-editor.php:825
|
||||||
|
msgid "Your changes have been saved successfuly"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/admin/forms-editor-quick.php:246
|
||||||
|
#: includes/admin/forms-editor.php:826
|
||||||
|
msgid "There was an error saving your template."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/admin/forms-editor-quick.php:247
|
||||||
|
#: includes/admin/forms-editor.php:827
|
||||||
|
msgid "Your template has been saved successfuly"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/admin/forms-editor-quick.php:248
|
||||||
|
#: includes/admin/forms-editor.php:828
|
||||||
|
msgid "Preview"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/admin/forms-editor.php:528
|
||||||
|
msgid "Hide Close Button"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/admin/subscribers.php:7
|
||||||
|
msgid "Noptin"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/admin/subscribers.php:8
|
||||||
|
msgid "View and download your email subscribers."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/admin/subscribers.php:22 includes/admin/subscribers.php:47
|
||||||
|
msgid "Email Address"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/admin/subscribers.php:23 includes/admin/subscribers.php:48
|
||||||
|
msgid "First Name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/admin/subscribers.php:24 includes/admin/subscribers.php:49
|
||||||
|
msgid "Last Name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/admin/subscribers.php:25 includes/admin/subscribers.php:50
|
||||||
|
msgid "Last Updated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/admin/templates/forms-empty.php:19
|
||||||
|
msgid "No email opt-in forms found. Why not create one?"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/admin/templates/forms-empty.php:20
|
||||||
|
msgid "Create New Form"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/admin/templates/forms-list.php:26
|
||||||
|
msgid "Search Forms"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/admin/templates/forms-list.php:33
|
||||||
|
msgid "Name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/admin/templates/forms-list.php:34
|
||||||
|
msgid "Status"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/admin/templates/forms-list.php:35
|
||||||
|
msgid "Date Created"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/admin/templates/forms-list.php:41
|
||||||
|
msgid "Inactive"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/admin/templates/forms-list.php:41
|
||||||
|
msgid "Active"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/admin/templates/forms-list.php:48
|
||||||
|
msgid "Click To Edit Form "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/admin/widget.php:167
|
||||||
|
msgid "FREE NEWSLETTER"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/admin/widget.php:168
|
||||||
|
msgid ""
|
||||||
|
"Subscribe to our newsletter today and be the first to know when we publish "
|
||||||
|
"a new blog post."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/admin/widget.php:169
|
||||||
|
msgid "SUBSCRIBE NOW"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/admin/widget.php:179
|
||||||
|
msgid "Title:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/admin/widget.php:192
|
||||||
|
msgid "Description:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/admin/widget.php:205
|
||||||
|
msgid "Redirect:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/admin/widget.php:220
|
||||||
|
msgid "Background Color:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/admin/widget.php:235
|
||||||
|
msgid "Title Color:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/admin/widget.php:249
|
||||||
|
msgid "Text Color:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/admin/widget.php:262
|
||||||
|
msgid "Button Color:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/admin/widget.php:274
|
||||||
|
msgid "Submit Button Text:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/ajax.php:24
|
||||||
|
msgid "Error: Please reload the page and try again."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/ajax.php:34
|
||||||
|
msgid "Error: Please provide a valid email address."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/ajax.php:54
|
||||||
|
msgid "Success!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/class-noptin-form.php:145 includes/class-noptin-form.php:447
|
||||||
|
msgid "Untitled"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/class-sidebar.php:124
|
||||||
|
msgid "Form:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/class-sidebar.php:132
|
||||||
|
msgid "Select form"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Plugin Name of the plugin/theme
|
||||||
|
msgid "Noptin - Simple Newsletter Subscription Forms"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Plugin URI of the plugin/theme
|
||||||
|
msgid "https://wordpress.org/plugins/noptin"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Description of the plugin/theme
|
||||||
|
msgid "Easily add a newsletter optin box in any post, page or custom post type"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Author of the plugin/theme
|
||||||
|
msgid "Picocodes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Author URI of the plugin/theme
|
||||||
|
msgid "https://github.com/picocodes"
|
||||||
|
msgstr ""
|
||||||
@@ -0,0 +1,78 @@
|
|||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Oauth Gap Messenger v1.0.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: Ehsan Sabet <ehsan.sabet@hotmail.com>\n"
|
||||||
|
"POT-Creation-Date: 2019-08-06 16:49+0430\n"
|
||||||
|
"PO-Revision-Date: \n"
|
||||||
|
"Last-Translator: Ehsan Sabet <ehsan.sabet@hotmail.com>\n"
|
||||||
|
"Language-Team: \n"
|
||||||
|
"Language: fa\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||||
|
"X-Textdomain-Support: yesX-Generator: Poedit 1.6.4\n"
|
||||||
|
"X-Poedit-SourceCharset: UTF-8\n"
|
||||||
|
"X-Poedit-KeywordsList: __;_e;esc_html_e;esc_html_x:1,2c;esc_html__;"
|
||||||
|
"esc_attr_e;esc_attr_x:1,2c;esc_attr__;_ex:1,2c;_nx:4c,1,2;"
|
||||||
|
"_nx_noop:4c,1,2;_x:1,2c;_n:1,2;_n_noop:1,2;__ngettext:1,2;"
|
||||||
|
"__ngettext_noop:1,2;_c,_nc:4c,1,2\n"
|
||||||
|
"X-Poedit-Basepath: ..\n"
|
||||||
|
"X-Generator: Poedit 1.8.7.1\n"
|
||||||
|
"X-Poedit-SearchPath-0: .\n"
|
||||||
|
"X-Poedit-SearchPath-1: inc\n"
|
||||||
|
|
||||||
|
#: inc/oauth-gap-messenger-admin.php:28
|
||||||
|
msgid "oauth Gap Messenger"
|
||||||
|
msgstr "ورود با گپ"
|
||||||
|
|
||||||
|
#: inc/oauth-gap-messenger-admin.php:29
|
||||||
|
msgid "Gap OAuth Setting"
|
||||||
|
msgstr "تنظیمات ورود با گپ"
|
||||||
|
|
||||||
|
#: inc/oauth-gap-messenger-admin.php:38
|
||||||
|
msgid "Basic Settings"
|
||||||
|
msgstr "تنظیمات"
|
||||||
|
|
||||||
|
#: inc/oauth-gap-messenger-admin.php:54
|
||||||
|
msgid "Client ID"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: inc/oauth-gap-messenger-admin.php:61
|
||||||
|
msgid "Client Secret (Token)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: inc/oauth-gap-messenger-admin.php:68
|
||||||
|
msgid "Redirect link"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: inc/oauth-gap-messenger-admin.php:101
|
||||||
|
msgid "Copied to clipboard"
|
||||||
|
msgstr "کپی شد!"
|
||||||
|
|
||||||
|
#: inc/oauth-gap-messenger-admin.php:492
|
||||||
|
msgid "Choose File"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: oauth-gap-messenger.php:160
|
||||||
|
#, php-format
|
||||||
|
msgid "You have Login at %1$s"
|
||||||
|
msgstr "شما به وب سایت %1$s وارد شدهاید."
|
||||||
|
|
||||||
|
#: oauth-gap-messenger.php:201
|
||||||
|
#, php-format
|
||||||
|
msgid "You have registered at %1$s"
|
||||||
|
msgstr "ثبت نام شما در وب سایت %1$s انجام شد."
|
||||||
|
|
||||||
|
#: oauth-gap-messenger.php:223
|
||||||
|
msgid "Please complete oauth Gap messenger settings!"
|
||||||
|
msgstr "لطفا تنظیمات پلاگین ورود با گپ را انجام دهید."
|
||||||
|
|
||||||
|
#~ msgid "oAuth"
|
||||||
|
#~ msgstr "ورود با گپ"
|
||||||
|
|
||||||
|
#~ msgid "oAuth Robot"
|
||||||
|
#~ msgstr "تنظیمات ربات"
|
||||||
|
|
||||||
|
#~ msgid "Save Changes"
|
||||||
|
#~ msgstr "ذخیره تغییرات"
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user