Compare commits
94 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5fd7e0ed22 | ||
|
|
d9f6c71015 | ||
|
|
61a3106b3b | ||
|
|
20eb2d825d | ||
|
|
906557d2ec | ||
|
|
c1e278ea80 | ||
|
|
e2d616a53f | ||
|
|
c6802ccdd2 | ||
|
|
abd50fd037 | ||
|
|
4515be53b4 | ||
|
|
920a25bb25 | ||
|
|
648dd05069 | ||
|
|
713edcecca | ||
|
|
ac16a951c5 | ||
|
|
1043bcb267 | ||
|
|
22979a1a77 | ||
|
|
3039d2e7eb | ||
|
|
557dee2d8c | ||
|
|
a506adcb64 | ||
|
|
3bfb120646 | ||
|
|
43e613aa52 | ||
|
|
0d930ed605 | ||
|
|
2014f1e4b3 | ||
|
|
4889d17e0a | ||
|
|
494d31215d | ||
|
|
582bdea431 | ||
|
|
ecf7df9c01 | ||
|
|
a9760e8817 | ||
|
|
b32e990dd4 | ||
|
|
4320d2436f | ||
|
|
cba6e74b13 | ||
|
|
981bcf5fa2 | ||
|
|
1d79bc37d3 | ||
|
|
2fae3336ba | ||
|
|
cfb98c5139 | ||
|
|
b0260327c4 | ||
|
|
f65532e347 | ||
|
|
ff574b046c | ||
|
|
97c995b64c | ||
|
|
8361ec97e4 | ||
|
|
7a0bbc0acb | ||
|
|
66f5eca841 | ||
|
|
b53e6d1888 | ||
|
|
4b68fa8b60 | ||
|
|
54770c5a50 | ||
|
|
39fb2167f7 | ||
|
|
c33fef9c98 | ||
|
|
08a1117edf | ||
|
|
e14cbed56e | ||
|
|
56e2ab16cc | ||
|
|
d76d4b70f5 | ||
|
|
e223936a81 | ||
|
|
60d067c421 | ||
|
|
4102cf4688 | ||
|
|
dc977e6630 | ||
|
|
05deabd775 | ||
|
|
549ab4aa15 | ||
|
|
b189c71682 | ||
|
|
b909856933 | ||
|
|
5de9084901 | ||
|
|
384ef0b44c | ||
|
|
9307772dc3 | ||
|
|
730c71d103 | ||
|
|
5c710b96f5 | ||
|
|
fe63d0eadf | ||
|
|
a6ca95159a | ||
|
|
677d32fef5 | ||
|
|
14abd05969 | ||
|
|
2e680be34f | ||
|
|
fe29942bf4 | ||
|
|
c8fb717ac1 | ||
|
|
1ff7fcc913 | ||
|
|
419c32702a | ||
|
|
9b63714caa | ||
|
|
f034233607 | ||
|
|
be6fcb51b6 | ||
|
|
e49a682f00 | ||
|
|
23ad3141a1 | ||
|
|
5347e374e0 | ||
|
|
1a49a628de | ||
|
|
8def256d7e | ||
|
|
1cd8e6bad7 | ||
|
|
7a03c0db25 | ||
|
|
e7e3657d1f | ||
|
|
734dfcc9bc | ||
|
|
b0db15099d | ||
|
|
6fbd2369ba | ||
|
|
f4a6674eed | ||
|
|
c0567ad4f5 | ||
|
|
f146ee7e9f | ||
|
|
e606f4ce18 | ||
|
|
945b589a58 | ||
|
|
b18042c4a8 | ||
|
|
a9ff39104b |
@@ -1,11 +1,14 @@
|
||||
require: rubocop-performance
|
||||
AllCops:
|
||||
NewCops: enable
|
||||
TargetRubyVersion: 2.5
|
||||
Exclude:
|
||||
- '*.gemspec'
|
||||
- 'vendor/**/*'
|
||||
Layout/LineLength:
|
||||
Max: 120
|
||||
Lint/MissingSuper:
|
||||
Enabled: false
|
||||
Lint/UriEscapeUnescape:
|
||||
Enabled: false
|
||||
Metrics/AbcSize:
|
||||
@@ -18,11 +21,13 @@ Metrics/ClassLength:
|
||||
Exclude:
|
||||
- 'app/controllers/enumeration/cli_options.rb'
|
||||
Metrics/CyclomaticComplexity:
|
||||
Max: 8
|
||||
Max: 10
|
||||
Metrics/MethodLength:
|
||||
Max: 20
|
||||
Exclude:
|
||||
- 'app/controllers/enumeration/cli_options.rb'
|
||||
Metrics/PerceivedComplexity:
|
||||
Max: 11
|
||||
Style/ClassVars:
|
||||
Enabled: false
|
||||
Style/Documentation:
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
if ENV['GITHUB_ACTION']
|
||||
require 'simplecov-lcov'
|
||||
@@ -15,4 +16,4 @@ SimpleCov.start do
|
||||
|
||||
add_filter '/spec/'
|
||||
add_filter 'helper'
|
||||
end
|
||||
end
|
||||
|
||||
16
Dockerfile
16
Dockerfile
@@ -1,16 +1,16 @@
|
||||
FROM ruby:2.6.3-alpine AS builder
|
||||
FROM ruby:2.7.1-alpine AS builder
|
||||
LABEL maintainer="WPScan Team <team@wpscan.org>"
|
||||
|
||||
ARG BUNDLER_ARGS="--jobs=8 --without test development"
|
||||
|
||||
RUN echo "gem: --no-ri --no-rdoc" > /etc/gemrc
|
||||
RUN echo "install: --no-document --no-post-install-message\nupdate: --no-document --no-post-install-message" > /etc/gemrc
|
||||
|
||||
COPY . /wpscan
|
||||
|
||||
RUN apk add --no-cache git libcurl ruby-dev libffi-dev make gcc musl-dev zlib-dev procps sqlite-dev && \
|
||||
bundle install --system --clean --no-cache --gemfile=/wpscan/Gemfile $BUNDLER_ARGS && \
|
||||
# temp fix for https://github.com/bundler/bundler/issues/6680
|
||||
rm -rf /usr/local/bundle/cache
|
||||
bundle config force_ruby_platform true && \
|
||||
bundle config disable_version_check 'true' && \
|
||||
bundle config without "test development" && \
|
||||
bundle config path.system 'true' && \
|
||||
bundle install --gemfile=/wpscan/Gemfile --jobs=8
|
||||
|
||||
WORKDIR /wpscan
|
||||
RUN rake install --trace
|
||||
@@ -19,7 +19,7 @@ RUN rake install --trace
|
||||
RUN chmod -R a+r /usr/local/bundle
|
||||
|
||||
|
||||
FROM ruby:2.6.3-alpine
|
||||
FROM ruby:2.7.1-alpine
|
||||
LABEL maintainer="WPScan Team <team@wpscan.org>"
|
||||
|
||||
RUN adduser -h /wpscan -g WPScan -D wpscan
|
||||
|
||||
24
README.md
24
README.md
@@ -7,10 +7,10 @@
|
||||
<h3 align="center">WPScan</h3>
|
||||
|
||||
<p align="center">
|
||||
WordPress Vulnerability Scanner
|
||||
WordPress Security Scanner
|
||||
<br>
|
||||
<br>
|
||||
<a href="https://wpscan.org/" title="homepage" target="_blank">Homepage</a> - <a href="https://wpscan.io/" title="wpscan.io" target="_blank">WPScan.io</a> - <a href="https://wpvulndb.com/" title="vulnerability database" target="_blank">Vulnerability Database</a> - <a href="https://wordpress.org/plugins/wpscan/" title="wordpress plugin" target="_blank">WordPress Plugin</a>
|
||||
<a href="https://wpscan.org/" title="homepage" target="_blank">Homepage</a> - <a href="https://wpscan.io/" title="wpscan.io" target="_blank">WPScan.io</a> - <a href="https://wpvulndb.com/" title="vulnerability database" target="_blank">Vulnerability Database</a> - <a href="https://wordpress.org/plugins/wpscan/" title="wordpress security plugin" target="_blank">WordPress Security Plugin</a>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
@@ -31,7 +31,11 @@
|
||||
- RubyGems - Recommended: latest
|
||||
- Nokogiri might require packages to be installed via your package manager depending on your OS, see https://nokogiri.org/tutorials/installing_nokogiri.html
|
||||
|
||||
### From RubyGems (Recommended)
|
||||
### In a Pentesting distribution
|
||||
|
||||
When using a pentesting distubution (such as Kali Linux), it is recommended to install/update wpscan via the package manager if available.
|
||||
|
||||
### From RubyGems
|
||||
|
||||
```shell
|
||||
gem install wpscan
|
||||
@@ -39,18 +43,6 @@ gem install wpscan
|
||||
|
||||
On MacOSX, if a ```Gem::FilePermissionError``` is raised due to the Apple's System Integrity Protection (SIP), either install RVM and install wpscan again, or run ```sudo gem install -n /usr/local/bin wpscan``` (see [#1286](https://github.com/wpscanteam/wpscan/issues/1286))
|
||||
|
||||
### From sources (NOT Recommended)
|
||||
|
||||
Prerequisites: Git
|
||||
|
||||
```shell
|
||||
git clone https://github.com/wpscanteam/wpscan
|
||||
|
||||
cd wpscan/
|
||||
|
||||
bundle install && rake install
|
||||
```
|
||||
|
||||
# Updating
|
||||
|
||||
You can update the local database by using ```wpscan --update```
|
||||
@@ -77,6 +69,8 @@ docker run -it --rm wpscanteam/wpscan --url https://target.tld/ --enumerate u1-1
|
||||
|
||||
# Usage
|
||||
|
||||
Full user documentation can be found here; https://github.com/wpscanteam/wpscan/wiki/WPScan-User-Documentation
|
||||
|
||||
```wpscan --url blog.tld``` This will scan the blog using default options with a good compromise between speed and accuracy. For example, the plugins will be checked passively but their version with a mixed detection mode (passively + aggressively). Potential config backup files will also be checked, along with other interesting findings.
|
||||
|
||||
If a more stealthy approach is required, then ```wpscan --stealthy --url blog.tld``` can be used.
|
||||
|
||||
@@ -23,27 +23,32 @@ module WPScan
|
||||
]
|
||||
end
|
||||
|
||||
def run
|
||||
return unless ParsedCli.passwords
|
||||
|
||||
if user_interaction?
|
||||
output('@info',
|
||||
msg: "Performing password attack on #{attacker.titleize} against #{users.size} user/s")
|
||||
end
|
||||
|
||||
attack_opts = {
|
||||
def attack_opts
|
||||
@attack_opts ||= {
|
||||
show_progression: user_interaction?,
|
||||
multicall_max_passwords: ParsedCli.multicall_max_passwords
|
||||
}
|
||||
end
|
||||
|
||||
def run
|
||||
return unless ParsedCli.passwords
|
||||
|
||||
begin
|
||||
found = []
|
||||
|
||||
attacker.attack(users, passwords(ParsedCli.passwords), attack_opts) do |user|
|
||||
if user_interaction?
|
||||
output('@info',
|
||||
msg: "Performing password attack on #{attacker.titleize} against #{users.size} user/s")
|
||||
end
|
||||
|
||||
attacker.attack(users, ParsedCli.passwords, attack_opts) do |user|
|
||||
found << user
|
||||
|
||||
attacker.progress_bar.log("[SUCCESS] - #{user.username} / #{user.password}")
|
||||
end
|
||||
rescue Error::NoLoginInterfaceDetected => e
|
||||
# TODO: Maybe output that in JSON as well.
|
||||
output('@notice', msg: e.to_s) if user_interaction?
|
||||
ensure
|
||||
output('users', users: found)
|
||||
end
|
||||
@@ -65,6 +70,8 @@ module WPScan
|
||||
|
||||
case ParsedCli.password_attack
|
||||
when :wp_login
|
||||
raise Error::NoLoginInterfaceDetected unless target.login_url
|
||||
|
||||
Finders::Passwords::WpLogin.new(target)
|
||||
when :xmlrpc
|
||||
raise Error::XMLRPCNotDetected unless xmlrpc
|
||||
@@ -81,8 +88,8 @@ module WPScan
|
||||
def xmlrpc_get_users_blogs_enabled?
|
||||
if xmlrpc&.enabled? &&
|
||||
xmlrpc.available_methods.include?('wp.getUsersBlogs') &&
|
||||
xmlrpc.method_call('wp.getUsersBlogs', [SecureRandom.hex[0, 6], SecureRandom.hex[0, 4]])
|
||||
.run.body !~ /XML\-RPC services are disabled/
|
||||
!xmlrpc.method_call('wp.getUsersBlogs', [SecureRandom.hex[0, 6], SecureRandom.hex[0, 4]])
|
||||
.run.body.match?(/>\s*405\s*</)
|
||||
|
||||
true
|
||||
else
|
||||
@@ -100,8 +107,10 @@ module WPScan
|
||||
else
|
||||
Finders::Passwords::XMLRPC.new(xmlrpc)
|
||||
end
|
||||
else
|
||||
elsif target.login_url
|
||||
Finders::Passwords::WpLogin.new(target)
|
||||
else
|
||||
raise Error::NoLoginInterfaceDetected
|
||||
end
|
||||
end
|
||||
|
||||
@@ -113,15 +122,6 @@ module WPScan
|
||||
acc << Model::User.new(elem.chomp)
|
||||
end
|
||||
end
|
||||
|
||||
# @param [ String ] wordlist_path
|
||||
#
|
||||
# @return [ Array<String> ]
|
||||
def passwords(wordlist_path)
|
||||
@passwords ||= File.open(wordlist_path).reduce([]) do |acc, elem|
|
||||
acc << elem.chomp
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -40,7 +40,7 @@ module WPScan
|
||||
# @return [ Hash ]
|
||||
def potential_urls(opts = {})
|
||||
urls = {}
|
||||
domain_name = PublicSuffix.domain(target.uri.host)[/(^[\w|-]+)/, 1]
|
||||
domain_name = (PublicSuffix.domain(target.uri.host) || target.uri.host)[/(^[\w|-]+)/, 1]
|
||||
|
||||
File.open(opts[:list]).each_with_index do |path, index|
|
||||
path.gsub!('{domain_name}', domain_name)
|
||||
|
||||
@@ -9,7 +9,7 @@ module WPScan
|
||||
def aggressive(_opts = {})
|
||||
path = 'installer-log.txt'
|
||||
|
||||
return unless /DUPLICATOR INSTALL-LOG/.match?(target.head_and_get(path).body)
|
||||
return unless /DUPLICATOR(-|\s)?(PRO|LITE)?:? INSTALL-LOG/i.match?(target.head_and_get(path).body)
|
||||
|
||||
Model::DuplicatorInstallerLog.new(target.url(path), confidence: 100, found_by: DIRECT_ACCESS)
|
||||
end
|
||||
|
||||
@@ -7,7 +7,7 @@ module WPScan
|
||||
class MuPlugins < CMSScanner::Finders::Finder
|
||||
# @return [ InterestingFinding ]
|
||||
def passive(_opts = {})
|
||||
pattern = %r{#{target.content_dir}/mu\-plugins/}i
|
||||
pattern = %r{#{target.content_dir}/mu-plugins/}i
|
||||
|
||||
target.in_scope_uris(target.homepage_res, '(//@href|//@src)[contains(., "mu-plugins")]') do |uri|
|
||||
next unless uri.path&.match?(pattern)
|
||||
|
||||
@@ -12,8 +12,8 @@ module WPScan
|
||||
location = res.headers_hash['location']
|
||||
|
||||
return unless [200, 302].include?(res.code)
|
||||
return if res.code == 302 && location =~ /wp-login\.php\?action=register/
|
||||
return unless res.code == 200 || res.code == 302 && location =~ /wp-signup\.php/
|
||||
return if res.code == 302 && location&.include?('wp-login.php?action=register')
|
||||
return unless res.code == 200 || res.code == 302 && location&.include?('wp-signup.php')
|
||||
|
||||
target.multisite = true
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ module WPScan
|
||||
|
||||
def passive_from_css_href(res, opts)
|
||||
target.in_scope_uris(res, '//link/@href[contains(., "style.css")]') do |uri|
|
||||
next unless uri.path =~ %r{/themes/([^\/]+)/style.css\z}i
|
||||
next unless uri.path =~ %r{/themes/([^/]+)/style.css\z}i
|
||||
|
||||
return create_theme(Regexp.last_match[1], uri.to_s, opts)
|
||||
end
|
||||
@@ -33,7 +33,7 @@ module WPScan
|
||||
code = tag.text.to_s
|
||||
next if code.empty?
|
||||
|
||||
next unless code =~ %r{#{item_code_pattern('themes')}\\?/style\.css[^"'\( ]*}i
|
||||
next unless code =~ %r{#{item_code_pattern('themes')}\\?/style\.css[^"'( ]*}i
|
||||
|
||||
return create_theme(Regexp.last_match[1], Regexp.last_match[0].strip, opts)
|
||||
end
|
||||
|
||||
@@ -13,7 +13,7 @@ module WPScan
|
||||
def passive(opts = {})
|
||||
found = []
|
||||
|
||||
slugs = items_from_links('themes', false) + items_from_codes('themes', false)
|
||||
slugs = items_from_links('themes', uniq: false) + items_from_codes('themes', uniq: false)
|
||||
|
||||
slugs.each_with_object(Hash.new(0)) { |slug, counts| counts[slug] += 1 }.each do |slug, occurences|
|
||||
found << Model::Theme.new(slug, target, opts.merge(found_by: found_by, confidence: 2 * occurences))
|
||||
|
||||
@@ -13,7 +13,7 @@ module WPScan
|
||||
|
||||
def valid_credentials?(response)
|
||||
response.code == 302 &&
|
||||
[*response.headers['Set-Cookie']]&.any? { |cookie| cookie =~ /wordpress_logged_in_/i }
|
||||
Array(response.headers['Set-Cookie'])&.any? { |cookie| cookie =~ /wordpress_logged_in_/i }
|
||||
end
|
||||
|
||||
def errored_response?(response)
|
||||
|
||||
@@ -12,7 +12,7 @@ module WPScan
|
||||
end
|
||||
|
||||
def valid_credentials?(response)
|
||||
response.code == 200 && response.body =~ /blogName/
|
||||
response.code == 200 && response.body.include?('blogName')
|
||||
end
|
||||
|
||||
def errored_response?(response)
|
||||
|
||||
@@ -22,8 +22,30 @@ module WPScan
|
||||
target.multi_call(methods, cache_ttl: 0).run
|
||||
end
|
||||
|
||||
# @param [ IO ] file
|
||||
# @param [ Integer ] passwords_size
|
||||
# @return [ Array<String> ] The passwords from the last checked position in the file until there are
|
||||
# passwords_size passwords retrieved
|
||||
def passwords_from_wordlist(file, passwords_size)
|
||||
pwds = []
|
||||
added_pwds = 0
|
||||
|
||||
return pwds if passwords_size.zero?
|
||||
|
||||
# Make sure that the main code does not call #sysseek or #count etc
|
||||
# otherwise the file descriptor will be set to somwehere else
|
||||
file.each_line(chomp: true) do |line|
|
||||
pwds << line
|
||||
added_pwds += 1
|
||||
|
||||
break if added_pwds == passwords_size
|
||||
end
|
||||
|
||||
pwds
|
||||
end
|
||||
|
||||
# @param [ Array<Model::User> ] users
|
||||
# @param [ Array<String> ] passwords
|
||||
# @param [ String ] wordlist_path
|
||||
# @param [ Hash ] opts
|
||||
# @option opts [ Boolean ] :show_progression
|
||||
# @option opts [ Integer ] :multicall_max_passwords
|
||||
@@ -33,18 +55,22 @@ module WPScan
|
||||
# TODO: Make rubocop happy about metrics etc
|
||||
#
|
||||
# rubocop:disable all
|
||||
def attack(users, passwords, opts = {})
|
||||
wordlist_index = 0
|
||||
def attack(users, wordlist_path, opts = {})
|
||||
checked_passwords = 0
|
||||
wordlist = File.open(wordlist_path)
|
||||
wordlist_size = wordlist.count
|
||||
max_passwords = opts[:multicall_max_passwords]
|
||||
current_passwords_size = passwords_size(max_passwords, users.size)
|
||||
|
||||
create_progress_bar(total: (passwords.size / current_passwords_size.round(1)).ceil,
|
||||
create_progress_bar(total: (wordlist_size / current_passwords_size.round(1)).ceil,
|
||||
show_progression: opts[:show_progression])
|
||||
|
||||
wordlist.sysseek(0) # reset the descriptor to the beginning of the file as it changed with #count
|
||||
|
||||
loop do
|
||||
current_users = users.select { |user| user.password.nil? }
|
||||
current_passwords = passwords[wordlist_index, current_passwords_size]
|
||||
wordlist_index += current_passwords_size
|
||||
current_users = users.select { |user| user.password.nil? }
|
||||
current_passwords = passwords_from_wordlist(wordlist, current_passwords_size)
|
||||
checked_passwords += current_passwords_size
|
||||
|
||||
break if current_users.empty? || current_passwords.nil? || current_passwords.empty?
|
||||
|
||||
@@ -76,16 +102,19 @@ module WPScan
|
||||
break
|
||||
end
|
||||
|
||||
progress_bar.total = progress_bar.progress + ((passwords.size - wordlist_index) / current_passwords_size.round(1)).ceil
|
||||
begin
|
||||
progress_bar.total = progress_bar.progress + ((wordlist_size - checked_passwords) / current_passwords_size.round(1)).ceil
|
||||
rescue ProgressBar::InvalidProgressError
|
||||
end
|
||||
end
|
||||
end
|
||||
# Maybe a progress_bar.stop ?
|
||||
end
|
||||
# rubocop:disable all
|
||||
# rubocop:enable all
|
||||
|
||||
def passwords_size(max_passwords, users_size)
|
||||
return 1 if max_passwords < users_size
|
||||
return 0 if users_size == 0
|
||||
return 0 if users_size.zero?
|
||||
|
||||
max_passwords / users_size
|
||||
end
|
||||
@@ -94,9 +123,13 @@ module WPScan
|
||||
def check_and_output_errors(res)
|
||||
progress_bar.log("Incorrect response: #{res.code} / #{res.return_message}") unless res.code == 200
|
||||
|
||||
progress_bar.log('Parsing error, might be caused by a too high --max-passwords value (such as >= 2k)') if res.body =~ /parse error. not well formed/i
|
||||
if /parse error. not well formed/i.match?(res.body)
|
||||
progress_bar.log('Parsing error, might be caused by a too high --max-passwords value (such as >= 2k)')
|
||||
end
|
||||
|
||||
progress_bar.log('The requested method is not supported') if res.body =~ /requested method [^ ]+ does not exist/i
|
||||
return unless /requested method [^ ]+ does not exist/i.match?(res.body)
|
||||
|
||||
progress_bar.log('The requested method is not supported')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -48,7 +48,7 @@ module WPScan
|
||||
#
|
||||
# @return [ String, nil ] The version number detected from the stable tag
|
||||
def from_stable_tag(body)
|
||||
return unless body =~ /\b(?:stable tag|version):\s*(?!trunk)([0-9a-z\.-]+)/i
|
||||
return unless body =~ /\b(?:stable tag|version):\s*(?!trunk)([0-9a-z.-]+)/i
|
||||
|
||||
number = Regexp.last_match[1]
|
||||
|
||||
@@ -59,7 +59,7 @@ module WPScan
|
||||
#
|
||||
# @return [ String, nil ] The best version number detected from the changelog section
|
||||
def from_changelog_section(body)
|
||||
extracted_versions = body.scan(%r{[=]+\s+(?:v(?:ersion)?\s*)?([0-9\.-]+)[ \ta-z0-9\(\)\.\-\/]*[=]+}i)
|
||||
extracted_versions = body.scan(%r{=+\s+(?:v(?:ersion)?\s*)?([0-9.-]+)[ \ta-z0-9().\-/]*=+}i)
|
||||
|
||||
return if extracted_versions.nil? || extracted_versions.empty?
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ module WPScan
|
||||
|
||||
# @return [ Version ]
|
||||
def style_version
|
||||
return unless Browser.get(target.style_url).body =~ /Version:[\t ]*(?!trunk)([0-9a-z\.-]+)/i
|
||||
return unless Browser.get(target.style_url).body =~ /Version:[\t ]*(?!trunk)([0-9a-z.-]+)/i
|
||||
|
||||
Model::Version.new(
|
||||
Regexp.last_match[1],
|
||||
|
||||
@@ -6,7 +6,8 @@ require_relative 'users/oembed_api'
|
||||
require_relative 'users/rss_generator'
|
||||
require_relative 'users/author_id_brute_forcing'
|
||||
require_relative 'users/login_error_messages'
|
||||
require_relative 'users/yoast_seo_author_sitemap.rb'
|
||||
require_relative 'users/author_sitemap'
|
||||
require_relative 'users/yoast_seo_author_sitemap'
|
||||
|
||||
module WPScan
|
||||
module Finders
|
||||
@@ -22,6 +23,7 @@ module WPScan
|
||||
Users::WpJsonApi.new(target) <<
|
||||
Users::OembedApi.new(target) <<
|
||||
Users::RSSGenerator.new(target) <<
|
||||
Users::AuthorSitemap.new(target) <<
|
||||
Users::YoastSeoAuthorSitemap.new(target) <<
|
||||
Users::AuthorIdBruteForcing.new(target) <<
|
||||
Users::LoginErrorMessages.new(target)
|
||||
|
||||
36
app/finders/users/author_sitemap.rb
Normal file
36
app/finders/users/author_sitemap.rb
Normal file
@@ -0,0 +1,36 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module WPScan
|
||||
module Finders
|
||||
module Users
|
||||
# Since WP 5.5, /wp-sitemap-users-1.xml is generated and contains
|
||||
# the usernames of accounts who made a post
|
||||
class AuthorSitemap < CMSScanner::Finders::Finder
|
||||
# @param [ Hash ] opts
|
||||
#
|
||||
# @return [ Array<User> ]
|
||||
def aggressive(_opts = {})
|
||||
found = []
|
||||
|
||||
Browser.get(sitemap_url).html.xpath('//url/loc').each do |user_tag|
|
||||
username = user_tag.text.to_s[%r{/author/([^/]+)/}, 1]
|
||||
|
||||
next unless username && !username.strip.empty?
|
||||
|
||||
found << Model::User.new(username,
|
||||
found_by: found_by,
|
||||
confidence: 100,
|
||||
interesting_entries: [sitemap_url])
|
||||
end
|
||||
|
||||
found
|
||||
end
|
||||
|
||||
# @return [ String ] The URL of the sitemap
|
||||
def sitemap_url
|
||||
@sitemap_url ||= target.url('wp-sitemap-users-1.xml')
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -37,7 +37,7 @@ module WPScan
|
||||
# usernames from the potential Users found
|
||||
unames = opts[:found].map(&:username)
|
||||
|
||||
[*opts[:list]].each { |uname| unames << uname.chomp }
|
||||
Array(opts[:list]).each { |uname| unames << uname.chomp }
|
||||
|
||||
unames.uniq
|
||||
end
|
||||
|
||||
@@ -13,7 +13,7 @@ module WPScan
|
||||
urls.each do |url|
|
||||
res = Browser.get_and_follow_location(url)
|
||||
|
||||
next unless res.code == 200 && res.body =~ /<dc\:creator>/i
|
||||
next unless res.code == 200 && res.body =~ /<dc:creator>/i
|
||||
|
||||
potential_usernames = []
|
||||
|
||||
|
||||
@@ -5,27 +5,7 @@ module WPScan
|
||||
module Users
|
||||
# The YOAST SEO plugin has an author-sitemap.xml which can leak usernames
|
||||
# See https://github.com/wpscanteam/wpscan/issues/1228
|
||||
class YoastSeoAuthorSitemap < CMSScanner::Finders::Finder
|
||||
# @param [ Hash ] opts
|
||||
#
|
||||
# @return [ Array<User> ]
|
||||
def aggressive(_opts = {})
|
||||
found = []
|
||||
|
||||
Browser.get(sitemap_url).html.xpath('//url/loc').each do |user_tag|
|
||||
username = user_tag.text.to_s[%r{/author/([^\/]+)/}, 1]
|
||||
|
||||
next unless username && !username.strip.empty?
|
||||
|
||||
found << Model::User.new(username,
|
||||
found_by: found_by,
|
||||
confidence: 100,
|
||||
interesting_entries: [sitemap_url])
|
||||
end
|
||||
|
||||
found
|
||||
end
|
||||
|
||||
class YoastSeoAuthorSitemap < AuthorSitemap
|
||||
# @return [ String ] The URL of the author-sitemap
|
||||
def sitemap_url
|
||||
@sitemap_url ||= target.url('author-sitemap.xml')
|
||||
|
||||
@@ -9,7 +9,7 @@ module WPScan
|
||||
# @param [ Boolean ] uniq Wether or not to apply the #uniq on the results
|
||||
#
|
||||
# @return [ Array<String> ] The plugins/themes detected in the href, src attributes of the page
|
||||
def items_from_links(type, uniq = true)
|
||||
def items_from_links(type, uniq: true)
|
||||
found = []
|
||||
xpath = format(
|
||||
'(//@href|//@src|//@data-src)[contains(., "%s")]',
|
||||
@@ -31,7 +31,7 @@ module WPScan
|
||||
# @param [ Boolean ] uniq Wether or not to apply the #uniq on the results
|
||||
#
|
||||
# @return [Array<String> ] The plugins/themes detected in the javascript/style of the homepage
|
||||
def items_from_codes(type, uniq = true)
|
||||
def items_from_codes(type, uniq: true)
|
||||
found = []
|
||||
|
||||
page_res.html.xpath('//script[not(@src)]|//style[not(@src)]').each do |tag|
|
||||
@@ -55,7 +55,7 @@ module WPScan
|
||||
#
|
||||
# @return [ Regexp ]
|
||||
def item_code_pattern(type)
|
||||
@item_code_pattern ||= %r{["'\( ]#{item_url_pattern(type)}([^\\\/\)"']+)}i
|
||||
@item_code_pattern ||= %r{["'( ]#{item_url_pattern(type)}([^\\/)"']+)}i
|
||||
end
|
||||
|
||||
# @param [ String ] type
|
||||
@@ -66,9 +66,9 @@ module WPScan
|
||||
item_url = type == 'plugins' ? target.plugins_url : target.content_url
|
||||
|
||||
url = /#{item_url.gsub(/\A(?:https?)/i, 'https?').gsub('/', '\\\\\?\/')}/i
|
||||
item_dir = %r{(?:#{url}|\\?\/#{item_dir.gsub('/', '\\\\\?\/')}\\?/)}i
|
||||
item_dir = %r{(?:#{url}|\\?/#{item_dir.gsub('/', '\\\\\?\/')}\\?/)}i
|
||||
|
||||
type == 'plugins' ? item_dir : %r{#{item_dir}#{type}\\?\/}i
|
||||
type == 'plugins' ? item_dir : %r{#{item_dir}#{type}\\?/}i
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -7,10 +7,11 @@ module WPScan
|
||||
include References
|
||||
end
|
||||
|
||||
#
|
||||
# Some classes are empty for the #type to be correctly displayed (as taken from the self.class from the parent)
|
||||
#
|
||||
class BackupDB < InterestingFinding
|
||||
def to_s
|
||||
@to_s ||= "A backup directory has been found: #{url}"
|
||||
end
|
||||
|
||||
# @return [ Hash ]
|
||||
def references
|
||||
@references ||= { url: ['https://github.com/wpscanteam/wpscan/issues/422'] }
|
||||
@@ -18,6 +19,10 @@ module WPScan
|
||||
end
|
||||
|
||||
class DebugLog < InterestingFinding
|
||||
def to_s
|
||||
@to_s ||= "Debug Log found: #{url}"
|
||||
end
|
||||
|
||||
# @ return [ Hash ]
|
||||
def references
|
||||
@references ||= { url: ['https://codex.wordpress.org/Debugging_in_WordPress'] }
|
||||
@@ -40,6 +45,10 @@ module WPScan
|
||||
end
|
||||
|
||||
class FullPathDisclosure < InterestingFinding
|
||||
def to_s
|
||||
@to_s ||= "Full Path Disclosure found: #{url}"
|
||||
end
|
||||
|
||||
# @return [ Hash ]
|
||||
def references
|
||||
@references ||= { url: ['https://www.owasp.org/index.php/Full_Path_Disclosure'] }
|
||||
@@ -71,6 +80,9 @@ module WPScan
|
||||
end
|
||||
|
||||
class Readme < InterestingFinding
|
||||
def to_s
|
||||
@to_s ||= "WordPress readme found: #{url}"
|
||||
end
|
||||
end
|
||||
|
||||
class Registration < InterestingFinding
|
||||
@@ -81,6 +93,10 @@ module WPScan
|
||||
end
|
||||
|
||||
class TmmDbMigrate < InterestingFinding
|
||||
def to_s
|
||||
@to_s ||= "ThemeMakers migration file found: #{url}"
|
||||
end
|
||||
|
||||
# @return [ Hash ]
|
||||
def references
|
||||
@references ||= { packetstorm: [131_957] }
|
||||
@@ -95,6 +111,9 @@ module WPScan
|
||||
end
|
||||
|
||||
class UploadSQLDump < InterestingFinding
|
||||
def to_s
|
||||
@to_s ||= "SQL Dump found: #{url}"
|
||||
end
|
||||
end
|
||||
|
||||
class WPCron < InterestingFinding
|
||||
|
||||
@@ -38,7 +38,7 @@ module WPScan
|
||||
|
||||
# @return [ Array<String> ]
|
||||
def potential_readme_filenames
|
||||
@potential_readme_filenames ||= [*(DB::DynamicFinders::Plugin.df_data.dig(slug, 'Readme', 'path') || super)]
|
||||
@potential_readme_filenames ||= Array((DB::DynamicFinders::Plugin.df_data.dig(slug, 'Readme', 'path') || super))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -45,7 +45,7 @@ module WPScan
|
||||
# @return [ Theme ]
|
||||
def parent_theme
|
||||
return unless template
|
||||
return unless style_body =~ /^@import\surl\(["']?([^"'\)]+)["']?\);\s*$/i
|
||||
return unless style_body =~ /^@import\surl\(["']?([^"')]+)["']?\);\s*$/i
|
||||
|
||||
opts = detection_opts.merge(
|
||||
style_url: url(Regexp.last_match[1]),
|
||||
@@ -101,7 +101,7 @@ module WPScan
|
||||
#
|
||||
# @return [ String ]
|
||||
def parse_style_tag(body, tag)
|
||||
value = body[/#{Regexp.escape(tag)}:[\t ]*([^\r\n\*]+)/i, 1]
|
||||
value = body[/\b#{Regexp.escape(tag)}:[\t ]*([^\r\n*]+)/, 1]
|
||||
|
||||
value && !value.strip.empty? ? value.strip : nil
|
||||
end
|
||||
|
||||
@@ -40,9 +40,9 @@ module WPScan
|
||||
def rce_132_vuln
|
||||
Vulnerability.new(
|
||||
'Timthumb <= 1.32 Remote Code Execution',
|
||||
{ exploitdb: ['17602'] },
|
||||
'RCE',
|
||||
'1.33'
|
||||
references: { exploitdb: ['17602'] },
|
||||
type: 'RCE',
|
||||
fixed_in: '1.33'
|
||||
)
|
||||
end
|
||||
|
||||
@@ -50,12 +50,12 @@ module WPScan
|
||||
def rce_webshot_vuln
|
||||
Vulnerability.new(
|
||||
'Timthumb <= 2.8.13 WebShot Remote Code Execution',
|
||||
{
|
||||
references: {
|
||||
url: ['http://seclists.org/fulldisclosure/2014/Jun/117', 'https://github.com/wpscanteam/wpscan/issues/519'],
|
||||
cve: '2014-4663'
|
||||
},
|
||||
'RCE',
|
||||
'2.8.14'
|
||||
type: 'RCE',
|
||||
fixed_in: '2.8.14'
|
||||
)
|
||||
end
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ module WPScan
|
||||
|
||||
@vulnerabilities = []
|
||||
|
||||
[*db_data['vulnerabilities']].each do |json_vuln|
|
||||
Array(db_data['vulnerabilities']).each do |json_vuln|
|
||||
vulnerability = Vulnerability.load_from_json(json_vuln)
|
||||
@vulnerabilities << vulnerability if vulnerable_to?(vulnerability)
|
||||
end
|
||||
|
||||
@@ -53,7 +53,7 @@ module WPScan
|
||||
|
||||
@vulnerabilities = []
|
||||
|
||||
[*db_data['vulnerabilities']].each do |json_vuln|
|
||||
Array(db_data['vulnerabilities']).each do |json_vuln|
|
||||
@vulnerabilities << Vulnerability.load_from_json(json_vuln)
|
||||
end
|
||||
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
| <%= critical_icon %> Title: <%= @v.title %>
|
||||
<% if @v.cvss -%>
|
||||
| CVSS: <%= @v.cvss[:score] %> (<%= @v.cvss[:vector] %>)
|
||||
<% end -%>
|
||||
<% if @v.fixed_in -%>
|
||||
| Fixed in: <%= @v.fixed_in %>
|
||||
<% end -%>
|
||||
|
||||
@@ -19,6 +19,9 @@
|
||||
<% vulns.each_with_index do |v, index| -%>
|
||||
{
|
||||
"title": <%= v.title.to_json %>,
|
||||
<% if v.cvss -%>
|
||||
"cvss": <%= v.cvss.to_json %>,
|
||||
<% end -%>
|
||||
"fixed_in": <%= v.fixed_in.to_json %>,
|
||||
"references": <%= v.references.to_json %>
|
||||
}<% unless index == last_index -%>,<% end -%>
|
||||
|
||||
@@ -31,7 +31,7 @@ module WPScan
|
||||
|
||||
finder_configs(
|
||||
finder_class,
|
||||
Regexp.last_match[1] == 'aggressive'
|
||||
aggressive: Regexp.last_match[1] == 'aggressive'
|
||||
)
|
||||
end
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ module WPScan
|
||||
# @param [ Symbol ] finder_class
|
||||
# @param [ Boolean ] aggressive
|
||||
# @return [ Hash ]
|
||||
def self.finder_configs(finder_class, aggressive = false)
|
||||
def self.finder_configs(finder_class, aggressive: false)
|
||||
configs = {}
|
||||
|
||||
return configs unless allowed_classes.include?(finder_class)
|
||||
|
||||
@@ -24,7 +24,7 @@ module WPScan
|
||||
# @param [ Symbol ] finder_class
|
||||
# @param [ Boolean ] aggressive
|
||||
# @return [ Hash ]
|
||||
def self.finder_configs(finder_class, aggressive = false)
|
||||
def self.finder_configs(finder_class, aggressive: false)
|
||||
configs = {}
|
||||
|
||||
return configs unless allowed_classes.include?(finder_class)
|
||||
|
||||
@@ -29,5 +29,11 @@ module WPScan
|
||||
' use the --scope option or make sure the --url value given is the correct one'
|
||||
end
|
||||
end
|
||||
|
||||
class NoLoginInterfaceDetected < Standard
|
||||
def to_s
|
||||
'Could not find a login interface to perform the password attack against'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -56,9 +56,7 @@ module WPScan
|
||||
|
||||
homepage_result = find(target.homepage_res, opts)
|
||||
|
||||
if homepage_result
|
||||
return homepage_result unless homepage_result.is_a?(Array) && homepage_result.empty?
|
||||
end
|
||||
return homepage_result unless homepage_result.nil? || homepage_result&.is_a?(Array) && homepage_result&.empty?
|
||||
|
||||
find(target.error_404_res, opts)
|
||||
end
|
||||
|
||||
@@ -11,7 +11,7 @@ module WPScan
|
||||
|
||||
def self.child_class_constants
|
||||
@child_class_constants ||= super.merge(
|
||||
PARSER: nil, KEY: nil, PATTERN: /(?<v>\d+\.[\.\d]+)/, CONFIDENCE: 70
|
||||
PARSER: nil, KEY: nil, PATTERN: /(?<v>\d+\.[.\d]+)/, CONFIDENCE: 70
|
||||
)
|
||||
end
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ module WPScan
|
||||
# @return [ Hash ]
|
||||
def self.child_class_constants
|
||||
@child_class_constants ||= super().merge(
|
||||
XPATH: nil, FILES: nil, PATTERN: /(?:v|ver|version)\=(?<v>\d+\.[\.\d]+)/i, CONFIDENCE_PER_OCCURENCE: 10
|
||||
XPATH: nil, FILES: nil, PATTERN: /(?:v|ver|version)=(?<v>\d+\.[.\d]+)/i, CONFIDENCE_PER_OCCURENCE: 10
|
||||
)
|
||||
end
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ module WPScan
|
||||
# @return [ Hash ]
|
||||
def self.child_class_constants
|
||||
@child_class_constants ||= super().merge(
|
||||
XPATH: nil, PATTERN: /\A(?<v>\d+\.[\.\d]+)/, CONFIDENCE: 60
|
||||
XPATH: nil, PATTERN: /\A(?<v>\d+\.[.\d]+)/, CONFIDENCE: 60
|
||||
)
|
||||
end
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ module WPScan
|
||||
|
||||
# @return [ Hash ]
|
||||
def self.child_class_constants
|
||||
@child_class_constants ||= super().merge(PATTERN: /ver\=(?<v>\d+\.[\.\d]+)/i)
|
||||
@child_class_constants ||= super().merge(PATTERN: /ver=(?<v>\d+\.[.\d]+)/i)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ end
|
||||
#
|
||||
# @return [ Symbol ]
|
||||
def classify_slug(slug)
|
||||
classified = slug.to_s.gsub(/[^a-z\d\-]/i, '-').gsub(/\-{1,}/, '_').camelize.to_s
|
||||
classified = slug.to_s.gsub(/[^a-z\d\-]/i, '-').gsub(/-{1,}/, '_').camelize.to_s
|
||||
classified = "D_#{classified}" if /\d/.match?(classified[0])
|
||||
|
||||
classified.to_sym
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
module WPScan
|
||||
# References module (which should be included along with the CMSScanner::References)
|
||||
# to allow the use of the wpvulndb reference
|
||||
# to allow the use of the wpvulndb reference.
|
||||
module References
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
|
||||
@@ -19,13 +19,13 @@ module WPScan
|
||||
# @return [ Boolean ]
|
||||
def vulnerable?
|
||||
[@wp_version, @main_theme, @plugins, @themes, @timthumbs].each do |e|
|
||||
[*e].each { |ae| return true if ae && ae.vulnerable? } # rubocop:disable Style/SafeNavigation
|
||||
Array(e).each { |ae| return true if ae && ae.vulnerable? } # rubocop:disable Style/SafeNavigation
|
||||
end
|
||||
|
||||
return true unless [*@config_backups].empty?
|
||||
return true unless [*@db_exports].empty?
|
||||
return true unless Array(@config_backups).empty?
|
||||
return true unless Array(@db_exports).empty?
|
||||
|
||||
[*@users].each { |u| return true if u.password }
|
||||
Array(@users).each { |u| return true if u.password }
|
||||
|
||||
false
|
||||
end
|
||||
|
||||
@@ -11,9 +11,9 @@ module WPScan
|
||||
module WordPress
|
||||
include CMSScanner::Target::Platform::PHP
|
||||
|
||||
WORDPRESS_PATTERN = %r{/(?:(?:wp-content/(?:themes|(?:mu\-)?plugins|uploads))|wp-includes)/}i.freeze
|
||||
WP_JSON_OEMBED_PATTERN = %r{/wp\-json/oembed/}i.freeze
|
||||
WP_ADMIN_AJAX_PATTERN = %r{\\?/wp\-admin\\?/admin\-ajax\.php}i.freeze
|
||||
WORDPRESS_PATTERN = %r{/(?:(?:wp-content/(?:themes|(?:mu-)?plugins|uploads))|wp-includes)/}i.freeze
|
||||
WP_JSON_OEMBED_PATTERN = %r{/wp-json/oembed/}i.freeze
|
||||
WP_ADMIN_AJAX_PATTERN = %r{\\?/wp-admin\\?/admin-ajax\.php}i.freeze
|
||||
|
||||
# These methods are used in the associated interesting_findings finders
|
||||
# to keep the boolean state of the finding rather than re-check the whole thing again
|
||||
@@ -139,15 +139,16 @@ module WPScan
|
||||
# the first time the method is called, and the effective_url is then used
|
||||
# if suitable, otherwise the default wp-login will be.
|
||||
#
|
||||
# @return [ String ] The URL to the login page
|
||||
# @return [ String, false ] The URL to the login page or false if not detected
|
||||
def login_url
|
||||
return @login_url if @login_url
|
||||
return @login_url unless @login_url.nil?
|
||||
|
||||
@login_url = url('wp-login.php')
|
||||
@login_url = url('wp-login.php') # TODO: url(ParsedCli.login_uri)
|
||||
|
||||
res = Browser.get_and_follow_location(@login_url)
|
||||
|
||||
@login_url = res.effective_url if res.effective_url =~ /wp\-login\.php\z/i && in_scope?(res.effective_url)
|
||||
@login_url = res.effective_url if res.effective_url =~ /wp-login\.php\z/i && in_scope?(res.effective_url)
|
||||
@login_url = false if res.code == 404
|
||||
|
||||
@login_url
|
||||
end
|
||||
|
||||
@@ -104,7 +104,7 @@ module WPScan
|
||||
return @sub_dir unless @sub_dir.nil?
|
||||
|
||||
# url_pattern is from CMSScanner::Target
|
||||
pattern = %r{#{url_pattern}(.+?)/(?:xmlrpc\.php|wp\-includes/)}i
|
||||
pattern = %r{#{url_pattern}(.+?)/(?:xmlrpc\.php|wp-includes/)}i
|
||||
xpath = '(//@src|//@href|//@data-src)[contains(., "xmlrpc.php") or contains(., "wp-includes/")]'
|
||||
|
||||
[homepage_res, error_404_res].each do |page_res|
|
||||
@@ -124,9 +124,9 @@ module WPScan
|
||||
def url(path = nil)
|
||||
return @uri.to_s unless path
|
||||
|
||||
if %r{wp\-content/plugins}i.match?(path)
|
||||
if %r{wp-content/plugins}i.match?(path)
|
||||
path = +path.gsub('wp-content/plugins', plugins_dir)
|
||||
elsif /wp\-content/i.match?(path)
|
||||
elsif /wp-content/i.match?(path)
|
||||
path = +path.gsub('wp-content', content_dir)
|
||||
elsif path[0] != '/' && sub_dir
|
||||
path = "#{sub_dir}/#{path}"
|
||||
|
||||
@@ -2,5 +2,5 @@
|
||||
|
||||
# Version
|
||||
module WPScan
|
||||
VERSION = '3.8.0'
|
||||
VERSION = '3.8.7'
|
||||
end
|
||||
|
||||
@@ -18,9 +18,10 @@ module WPScan
|
||||
|
||||
new(
|
||||
json_data['title'],
|
||||
references,
|
||||
json_data['vuln_type'],
|
||||
json_data['fixed_in']
|
||||
references: references,
|
||||
type: json_data['vuln_type'],
|
||||
fixed_in: json_data['fixed_in'],
|
||||
cvss: json_data['cvss']&.symbolize_keys
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -52,9 +52,10 @@ describe WPScan::Controller::Core do
|
||||
%i[apache iis nginx].each do |server|
|
||||
context "when #{server}" do
|
||||
let(:cli_args) { "#{super()} --server #{server}" }
|
||||
let(:servers) { [:Apache, nil, :IIS, :Nginx] }
|
||||
|
||||
it "loads the #{server.capitalize} module and returns :#{server}" do
|
||||
@stubbed_server = [:Apache, nil, :IIS, :Nginx].sample
|
||||
@stubbed_server = servers.sample
|
||||
@expected = server == :iis ? :IIS : server.to_s.camelize.to_sym
|
||||
end
|
||||
end
|
||||
@@ -70,7 +71,7 @@ describe WPScan::Controller::Core do
|
||||
let(:cli_args) { "#{super()} --no-update" }
|
||||
|
||||
it 'raises an error' do
|
||||
expect { core.update_db_required? }. to raise_error(WPScan::Error::MissingDatabaseFile)
|
||||
expect { core.update_db_required? }.to raise_error(WPScan::Error::MissingDatabaseFile)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -1,5 +1,24 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
XMLRPC_FAILED_BODY = '
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<methodResponse>
|
||||
<fault>
|
||||
<value>
|
||||
<struct>
|
||||
<member>
|
||||
<name>faultCode</name>
|
||||
<value><int>405</int></value>
|
||||
</member>
|
||||
<member>
|
||||
<name>faultString</name>
|
||||
<value><string>%s</string></value>
|
||||
</member>
|
||||
</struct>
|
||||
</value>
|
||||
</fault>
|
||||
</methodResponse>'
|
||||
|
||||
describe WPScan::Controller::PasswordAttack do
|
||||
subject(:controller) { described_class.new }
|
||||
let(:target_url) { 'http://ex.lo/' }
|
||||
@@ -21,7 +40,7 @@ describe WPScan::Controller::PasswordAttack do
|
||||
|
||||
describe '#users' do
|
||||
context 'when no --usernames' do
|
||||
it 'calles target.users' do
|
||||
it 'calls target.users' do
|
||||
expect(controller.target).to receive(:users)
|
||||
controller.users
|
||||
end
|
||||
@@ -40,10 +59,6 @@ describe WPScan::Controller::PasswordAttack do
|
||||
end
|
||||
end
|
||||
|
||||
describe '#passwords' do
|
||||
xit
|
||||
end
|
||||
|
||||
describe '#run' do
|
||||
context 'when no --passwords is supplied' do
|
||||
it 'does not run the attacker' do
|
||||
@@ -85,20 +100,34 @@ describe WPScan::Controller::PasswordAttack do
|
||||
end
|
||||
|
||||
context 'when wp.getUsersBlogs method listed' do
|
||||
before { expect(xmlrpc).to receive(:available_methods).and_return(%w[wp.getUsersBlogs m2]) }
|
||||
before do
|
||||
expect(xmlrpc).to receive(:available_methods).and_return(%w[wp.getUsersBlogs m2])
|
||||
|
||||
stub_request(:post, xmlrpc.url).to_return(body: body)
|
||||
end
|
||||
|
||||
context 'when wp.getUsersBlogs method disabled' do
|
||||
it 'returns false' do
|
||||
stub_request(:post, xmlrpc.url).to_return(body: 'XML-RPC services are disabled on this site.')
|
||||
context 'when blog is in EN' do
|
||||
let(:body) { format(XMLRPC_FAILED_BODY, 'XML-RPC services are disabled on this site.') }
|
||||
|
||||
expect(controller.xmlrpc_get_users_blogs_enabled?).to be false
|
||||
it 'returns false' do
|
||||
expect(controller.xmlrpc_get_users_blogs_enabled?).to be false
|
||||
end
|
||||
end
|
||||
|
||||
context 'when blog is in FR' do
|
||||
let(:body) { format(XMLRPC_FAILED_BODY, 'Les services XML-RPC sont désactivés sur ce site.') }
|
||||
|
||||
it 'returns false' do
|
||||
expect(controller.xmlrpc_get_users_blogs_enabled?).to be false
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'when wp.getUsersBlogs method enabled' do
|
||||
it 'returns true' do
|
||||
stub_request(:post, xmlrpc.url).to_return(body: 'Incorrect username or password.')
|
||||
let(:body) { 'Incorrect username or password.' }
|
||||
|
||||
it 'returns true' do
|
||||
expect(controller.xmlrpc_get_users_blogs_enabled?).to be true
|
||||
end
|
||||
end
|
||||
@@ -107,15 +136,34 @@ describe WPScan::Controller::PasswordAttack do
|
||||
end
|
||||
|
||||
describe '#attacker' do
|
||||
before do
|
||||
allow(controller.target).to receive(:sub_dir)
|
||||
controller.target.instance_variable_set(:@login_url, nil)
|
||||
end
|
||||
|
||||
context 'when --password-attack provided' do
|
||||
let(:cli_args) { "#{super()} --password-attack #{attack}" }
|
||||
|
||||
context 'when wp-login' do
|
||||
before { stub_request(:get, controller.target.url('wp-login.php')).to_return(status: status) }
|
||||
|
||||
let(:attack) { 'wp-login' }
|
||||
|
||||
it 'returns the correct object' do
|
||||
expect(controller.attacker).to be_a WPScan::Finders::Passwords::WpLogin
|
||||
expect(controller.attacker.target).to be_a WPScan::Target
|
||||
context 'when available' do
|
||||
let(:status) { 200 }
|
||||
|
||||
it 'returns the correct object' do
|
||||
expect(controller.attacker).to be_a WPScan::Finders::Passwords::WpLogin
|
||||
expect(controller.attacker.target).to be_a WPScan::Target
|
||||
end
|
||||
end
|
||||
|
||||
context 'when not available (404)' do
|
||||
let(:status) { 404 }
|
||||
|
||||
it 'raises an error' do
|
||||
expect { controller.attacker }.to raise_error(WPScan::Error::NoLoginInterfaceDetected)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -172,11 +220,26 @@ describe WPScan::Controller::PasswordAttack do
|
||||
|
||||
context 'when automatic detection' do
|
||||
context 'when xmlrpc_get_users_blogs_enabled? is false' do
|
||||
it 'returns the WpLogin' do
|
||||
before do
|
||||
expect(controller).to receive(:xmlrpc_get_users_blogs_enabled?).and_return(false)
|
||||
stub_request(:get, controller.target.url('wp-login.php')).to_return(status: status)
|
||||
end
|
||||
|
||||
expect(controller.attacker).to be_a WPScan::Finders::Passwords::WpLogin
|
||||
expect(controller.attacker.target).to be_a WPScan::Target
|
||||
context 'when wp-login available' do
|
||||
let(:status) { 200 }
|
||||
|
||||
it 'returns the WpLogin' do
|
||||
expect(controller.attacker).to be_a WPScan::Finders::Passwords::WpLogin
|
||||
expect(controller.attacker.target).to be_a WPScan::Target
|
||||
end
|
||||
end
|
||||
|
||||
context 'when wp-login.php not available' do
|
||||
let(:status) { 404 }
|
||||
|
||||
it 'raises an error' do
|
||||
expect { controller.attacker }.to raise_error(WPScan::Error::NoLoginInterfaceDetected)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ describe WPScan::Finders::DbExports::KnownLocations do
|
||||
allow(target).to receive(:sub_dir).and_return(false)
|
||||
end
|
||||
|
||||
it 'replace {domain_name} by its value' do
|
||||
it 'replaces {domain_name} by its value' do
|
||||
expect(finder.potential_urls(opts).keys).to eql %w[
|
||||
http://ex.lo/aa/ex.sql
|
||||
http://ex.lo/aa/wordpress.sql
|
||||
@@ -27,7 +27,7 @@ describe WPScan::Finders::DbExports::KnownLocations do
|
||||
context "when #{sub_domain} sub-domain" do
|
||||
let(:url) { "https://#{sub_domain}.domain.tld" }
|
||||
|
||||
it 'replace {domain_name} by its correct value' do
|
||||
it 'replaces {domain_name} by its correct value' do
|
||||
expect(finder.potential_urls(opts).keys).to include "#{url}/domain.sql"
|
||||
end
|
||||
end
|
||||
@@ -36,7 +36,7 @@ describe WPScan::Finders::DbExports::KnownLocations do
|
||||
context 'when multi-level tlds' do
|
||||
let(:url) { 'https://something.com.tr' }
|
||||
|
||||
it 'replace {domain_name} by its correct value' do
|
||||
it 'replaces {domain_name} by its correct value' do
|
||||
expect(finder.potential_urls(opts).keys).to include 'https://something.com.tr/something.sql'
|
||||
end
|
||||
end
|
||||
@@ -44,7 +44,7 @@ describe WPScan::Finders::DbExports::KnownLocations do
|
||||
context 'when multi-level tlds and sub-domain' do
|
||||
let(:url) { 'https://dev.something.com.tr' }
|
||||
|
||||
it 'replace {domain_name} by its correct value' do
|
||||
it 'replaces {domain_name} by its correct value' do
|
||||
expect(finder.potential_urls(opts).keys).to include 'https://dev.something.com.tr/something.sql'
|
||||
end
|
||||
end
|
||||
@@ -52,10 +52,18 @@ describe WPScan::Finders::DbExports::KnownLocations do
|
||||
context 'when some weird stuff' do
|
||||
let(:url) { 'https://098f6bcd4621d373cade4e832627b4f6.aa-bb-ccc-dd.domain-test.com' }
|
||||
|
||||
it 'replace {domain_name} by its correct value' do
|
||||
it 'replaces {domain_name} by its correct value' do
|
||||
expect(finder.potential_urls(opts).keys).to include "#{url}/domain-test.sql"
|
||||
end
|
||||
end
|
||||
|
||||
context 'when a non standard URL' do
|
||||
let(:url) { 'http://dc-2' }
|
||||
|
||||
it 'replaces {domain_name} by its correct value' do
|
||||
expect(finder.potential_urls(opts).keys).to include "#{url}/dc-2.sql"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '#aggressive' do
|
||||
|
||||
@@ -35,15 +35,47 @@ describe WPScan::Finders::InterestingFindings::DuplicatorInstallerLog do
|
||||
end
|
||||
|
||||
context 'when the body matches' do
|
||||
let(:body) { File.read(fixtures.join(filename)) }
|
||||
|
||||
it 'returns the InterestingFinding' do
|
||||
after do
|
||||
expect(finder.aggressive).to eql WPScan::Model::DuplicatorInstallerLog.new(
|
||||
log_url,
|
||||
confidence: 100,
|
||||
found_by: described_class::DIRECT_ACCESS
|
||||
)
|
||||
end
|
||||
|
||||
context 'when old versions of the file' do
|
||||
let(:body) { File.read(fixtures.join('old.txt')) }
|
||||
|
||||
it 'returns the InterestingFinding' do
|
||||
# handled in after loop above
|
||||
end
|
||||
end
|
||||
|
||||
context 'when newest versions of the file' do
|
||||
context 'when PRO format 1' do
|
||||
let(:body) { File.read(fixtures.join('pro.txt')) }
|
||||
|
||||
it 'returns the InterestingFinding' do
|
||||
# handled in after loop above
|
||||
end
|
||||
end
|
||||
|
||||
context 'when PRO format 2' do
|
||||
let(:body) { File.read(fixtures.join('pro2.txt')) }
|
||||
|
||||
it 'returns the InterestingFinding' do
|
||||
# handled in after loop above
|
||||
end
|
||||
end
|
||||
|
||||
context 'when LITE' do
|
||||
let(:body) { File.read(fixtures.join('lite.txt')) }
|
||||
|
||||
it 'returns the InterestingFinding' do
|
||||
# handled in after loop above
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -4,7 +4,7 @@ describe WPScan::Finders::InterestingFindings::EmergencyPwdResetScript do
|
||||
subject(:finder) { described_class.new(target) }
|
||||
let(:target) { WPScan::Target.new(url).extend(CMSScanner::Target::Server::Apache) }
|
||||
let(:url) { 'http://ex.lo/' }
|
||||
let(:file_url) { url + 'emergency.php' }
|
||||
let(:file_url) { "#{url}emergency.php" }
|
||||
let(:fixtures) { FINDERS_FIXTURES.join('interesting_findings', 'emergency_pwd_reset_script') }
|
||||
|
||||
before do
|
||||
|
||||
@@ -4,7 +4,7 @@ describe WPScan::Finders::InterestingFindings::UploadSQLDump do
|
||||
subject(:finder) { described_class.new(target) }
|
||||
let(:target) { WPScan::Target.new(url).extend(CMSScanner::Target::Server::Apache) }
|
||||
let(:url) { 'http://ex.lo/' }
|
||||
let(:dump_url) { url + 'wp-content/uploads/dump.sql' }
|
||||
let(:dump_url) { "#{url}wp-content/uploads/dump.sql" }
|
||||
let(:fixtures) { FINDERS_FIXTURES.join('interesting_findings', 'upload_sql_dump') }
|
||||
let(:wp_content) { 'wp-content' }
|
||||
|
||||
|
||||
@@ -13,8 +13,8 @@ describe WPScan::Finders::Medias::AttachmentBruteForcing do
|
||||
describe '#target_urls' do
|
||||
it 'returns the expected urls' do
|
||||
expect(finder.target_urls(range: (1..2))).to eql(
|
||||
url + '?attachment_id=1' => 1,
|
||||
url + '?attachment_id=2' => 2
|
||||
"#{url}?attachment_id=1" => 1,
|
||||
"#{url}?attachment_id=2" => 2
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -24,11 +24,13 @@ describe WPScan::Finders::Passwords::XMLRPC do
|
||||
</methodResponse>'
|
||||
|
||||
describe '#attack' do
|
||||
let(:wordlist_path) { FINDERS_FIXTURES.join('passwords.txt').to_s }
|
||||
|
||||
context 'when no valid credentials' do
|
||||
before do
|
||||
stub_request(:post, url).to_return(status: status, body: RESPONSE_403_BODY)
|
||||
|
||||
finder.attack(users, %w[pwd])
|
||||
finder.attack(users, wordlist_path)
|
||||
end
|
||||
|
||||
let(:users) { %w[admin].map { |username| WPScan::Model::User.new(username) } }
|
||||
|
||||
@@ -109,7 +109,7 @@ describe WPScan::Finders::PluginVersion::Readme do
|
||||
'a-lead-capture-contact-form-and-tab-button-by-awebvoicecom' => '3.1',
|
||||
'backup-scheduler' => '1.5.9',
|
||||
'release_date_slash' => '1.0.4'
|
||||
}. each do |file, version_number|
|
||||
}.each do |file, version_number|
|
||||
context "whith #{file}.txt" do
|
||||
it 'returns the expected version' do
|
||||
@file = "#{file}.txt"
|
||||
|
||||
@@ -13,8 +13,8 @@ describe WPScan::Finders::Users::AuthorIdBruteForcing do
|
||||
describe '#target_urls' do
|
||||
it 'returns the correct URLs' do
|
||||
expect(finder.target_urls(range: (1..2))).to eql(
|
||||
url + '?author=1' => 1,
|
||||
url + '?author=2' => 2
|
||||
"#{url}?author=1" => 1,
|
||||
"#{url}?author=2" => 2
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
48
spec/app/finders/users/author_sitemap_spec.rb
Normal file
48
spec/app/finders/users/author_sitemap_spec.rb
Normal file
@@ -0,0 +1,48 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
describe WPScan::Finders::Users::AuthorSitemap do
|
||||
subject(:finder) { described_class.new(target) }
|
||||
let(:target) { WPScan::Target.new(url) }
|
||||
let(:url) { 'http://wp.lab/' }
|
||||
let(:fixtures) { FINDERS_FIXTURES.join('users', 'author_sitemap') }
|
||||
|
||||
describe '#aggressive' do
|
||||
before do
|
||||
allow(target).to receive(:sub_dir).and_return(false)
|
||||
|
||||
stub_request(:get, finder.sitemap_url).to_return(body: body)
|
||||
end
|
||||
|
||||
context 'when not an XML response' do
|
||||
let(:body) { '' }
|
||||
|
||||
its(:aggressive) { should eql([]) }
|
||||
end
|
||||
|
||||
context 'when an XML response' do
|
||||
context 'when no usernames disclosed' do
|
||||
let(:body) { File.read(fixtures.join('no_usernames.xml')) }
|
||||
|
||||
its(:aggressive) { should eql([]) }
|
||||
end
|
||||
|
||||
context 'when usernames disclosed' do
|
||||
let(:body) { File.read(fixtures.join('usernames.xml')) }
|
||||
|
||||
it 'returns the expected array of users' do
|
||||
users = finder.aggressive
|
||||
|
||||
expect(users.size).to eql 2
|
||||
|
||||
expect(users.first.username).to eql 'admin'
|
||||
expect(users.first.confidence).to eql 100
|
||||
expect(users.first.interesting_entries).to eql ['http://wp.lab/wp-sitemap-users-1.xml']
|
||||
|
||||
expect(users.last.username).to eql 'author'
|
||||
expect(users.last.confidence).to eql 100
|
||||
expect(users.last.interesting_entries).to eql ['http://wp.lab/wp-sitemap-users-1.xml']
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -8,7 +8,7 @@ describe WPScan::Finders::Users::Base do
|
||||
describe '#finders' do
|
||||
it 'contains the expected finders' do
|
||||
expect(user.finders.map { |f| f.class.to_s.demodulize })
|
||||
.to eq %w[AuthorPosts WpJsonApi OembedApi RSSGenerator YoastSeoAuthorSitemap
|
||||
.to eq %w[AuthorPosts WpJsonApi OembedApi RSSGenerator AuthorSitemap YoastSeoAuthorSitemap
|
||||
AuthorIdBruteForcing LoginErrorMessages]
|
||||
end
|
||||
end
|
||||
|
||||
@@ -5,7 +5,7 @@ describe WPScan::Finders::WpVersion::Readme do
|
||||
let(:target) { WPScan::Target.new(url).extend(CMSScanner::Target::Server::Apache) }
|
||||
let(:url) { 'http://ex.lo/' }
|
||||
let(:fixtures) { FINDERS_FIXTURES.join('wp_version', 'readme') }
|
||||
let(:readme_url) { url + 'readme.html' }
|
||||
let(:readme_url) { "#{url}readme.html" }
|
||||
|
||||
describe '#aggressive' do
|
||||
before { stub_request(:get, readme_url).to_return(body: File.read(fixtures.join(file))) }
|
||||
|
||||
@@ -202,11 +202,11 @@ describe WPScan::Model::Plugin do
|
||||
[
|
||||
WPScan::Vulnerability.new(
|
||||
'First Vuln <= 6.3.10 - LFI',
|
||||
{ wpvulndb: '1' },
|
||||
'LFI',
|
||||
'6.3.10'
|
||||
references: { wpvulndb: '1' },
|
||||
type: 'LFI',
|
||||
fixed_in: '6.3.10'
|
||||
),
|
||||
WPScan::Vulnerability.new('No Fixed In', wpvulndb: '2')
|
||||
WPScan::Vulnerability.new('No Fixed In', references: { wpvulndb: '2' })
|
||||
]
|
||||
end
|
||||
|
||||
|
||||
@@ -41,6 +41,12 @@ describe WPScan::Model::Theme do
|
||||
its(:style_uri) { should eql 'http://www.elegantthemes.com/gallery/divi/' }
|
||||
its(:license_uri) { should eql 'http://www.gnu.org/licenses/gpl-2.0.html' }
|
||||
end
|
||||
|
||||
context 'when no tags' do
|
||||
let(:fixture) { fixtures.join('no_tags.css') }
|
||||
|
||||
its(:author) { should eql nil }
|
||||
end
|
||||
end
|
||||
|
||||
describe '#version' do
|
||||
@@ -224,11 +230,11 @@ describe WPScan::Model::Theme do
|
||||
[
|
||||
WPScan::Vulnerability.new(
|
||||
'First Vuln',
|
||||
{ wpvulndb: '1' },
|
||||
'LFI',
|
||||
'6.3.10'
|
||||
references: { wpvulndb: '1' },
|
||||
type: 'LFI',
|
||||
fixed_in: '6.3.10'
|
||||
),
|
||||
WPScan::Vulnerability.new('No Fixed In', wpvulndb: '2')
|
||||
WPScan::Vulnerability.new('No Fixed In', references: { wpvulndb: '2' })
|
||||
]
|
||||
end
|
||||
|
||||
|
||||
@@ -55,31 +55,15 @@ describe WPScan::Model::WpVersion do
|
||||
expect(version).to be_vulnerable
|
||||
end
|
||||
|
||||
let(:all_vulns) do
|
||||
[
|
||||
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], osvdb: %w[10], cve: %w[2014-0166], wpvulndb: '2' },
|
||||
nil,
|
||||
'3.8.2'
|
||||
)
|
||||
]
|
||||
end
|
||||
|
||||
context 'when a signle vuln' do
|
||||
let(:number) { '3.8.1' }
|
||||
let(:number) { '3.8' }
|
||||
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'
|
||||
references: { url: %w[url-4], wpvulndb: '3' },
|
||||
type: 'AUTHBYPASS'
|
||||
)]
|
||||
end
|
||||
end
|
||||
@@ -92,14 +76,14 @@ describe WPScan::Model::WpVersion do
|
||||
@expected = [
|
||||
WPScan::Vulnerability.new(
|
||||
'WP 3.8.1 - Vuln 1',
|
||||
{ wpvulndb: '1' },
|
||||
'SQLI'
|
||||
references: { wpvulndb: '1' },
|
||||
type: 'SQLI',
|
||||
cvss: { score: '5.4', vector: 'VECTOR' }
|
||||
),
|
||||
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'
|
||||
references: { url: %w[url-2 url-3], cve: %w[2014-0166], wpvulndb: '2' },
|
||||
fixed_in: '3.8.2'
|
||||
)
|
||||
]
|
||||
end
|
||||
|
||||
8828
spec/fixtures/db/dynamic_finders.yml
vendored
8828
spec/fixtures/db/dynamic_finders.yml
vendored
File diff suppressed because it is too large
Load Diff
@@ -9,7 +9,11 @@
|
||||
"id" : 1,
|
||||
"vuln_type" : "SQLI",
|
||||
"published_date" : null,
|
||||
"fixed_in" : null
|
||||
"fixed_in" : null,
|
||||
"cvss": {
|
||||
"score": "5.4",
|
||||
"vector": "VECTOR"
|
||||
}
|
||||
},
|
||||
{
|
||||
"references" : {
|
||||
|
||||
3391
spec/fixtures/dynamic_finders/expected.yml
vendored
3391
spec/fixtures/dynamic_finders/expected.yml
vendored
File diff suppressed because it is too large
Load Diff
13
spec/fixtures/dynamic_finders/plugin_version/24liveblog/composer_file/package.json
vendored
Normal file
13
spec/fixtures/dynamic_finders/plugin_version/24liveblog/composer_file/package.json
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"name": "liveblog24-live-blogging-tool-cgb-guten-block",
|
||||
"version": "2.0",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"start": "cgb-scripts start",
|
||||
"build": "cgb-scripts build",
|
||||
"eject": "cgb-scripts eject"
|
||||
},
|
||||
"dependencies": {
|
||||
"cgb-scripts": "1.23.0"
|
||||
}
|
||||
}
|
||||
1418
spec/fixtures/dynamic_finders/plugin_version/2fas/translation_file/languages/2fas-pt_BR.po
vendored
Normal file
1418
spec/fixtures/dynamic_finders/plugin_version/2fas/translation_file/languages/2fas-pt_BR.po
vendored
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,254 @@
|
||||
# Copyright 2019
|
||||
# This file is distributed under the GNU General Public License v3 or later.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: ACh Updates Manager v1.0.0\n"
|
||||
"POT-Creation-Date: 2019-05-29 10:50+0100\n"
|
||||
"PO-Revision-Date: 2019-05-29 10:50+0100\n"
|
||||
"Last-Translator: Ali Chopani <Chopaniali@gmail.com>\n"
|
||||
"Language-Team: A. Ch <Chopaniali@gmail.com>\n"
|
||||
"Report-Msgid-Bugs-To: Ali Chopani <Chopaniali@gmail.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Textdomain-Support: yes"
|
||||
"X-Generator: Poedit 2.2\n"
|
||||
"X-Poedit-SourceCharset: UTF-8\n"
|
||||
"X-Poedit-KeywordsList: __;_e;esc_html_e;esc_html__;_x;\n"
|
||||
"X-Poedit-Basepath: ../\n"
|
||||
"X-Poedit-SearchPath-0: .\n"
|
||||
"X-Poedit-Language: English\n"
|
||||
"X-Poedit-Country: UNITED STATES\n"
|
||||
"X-Poedit-Bookmarks: \n"
|
||||
|
||||
#: ACh-Updates-Manager.php:5
|
||||
msgid "The ACh Updates and Notices Manager is an easy way to manage all your WordPress updates and notifications with one click! e.g. Disable all updates or notifications, Disable automatic updates, Hide errors and warnings messages, Update themes and plugins from zip file and etc."
|
||||
msgstr ""
|
||||
|
||||
#: ACh-Updates-Manager.php:65
|
||||
msgid "Thanks for installing %1$s v%2$s plugin. Click <a href="%3$s">here</a> to configure plugin settings."
|
||||
msgstr ""
|
||||
|
||||
#: ACh-Updates-Manager.php:75
|
||||
msgid "Manage"
|
||||
msgstr ""
|
||||
|
||||
#: ACh-Updates-Manager.php:86
|
||||
#: includes/acupnm-settings.php:34
|
||||
#: includes/acupnm-settings.php:144
|
||||
msgid "Support"
|
||||
msgstr ""
|
||||
|
||||
#: ACh-Updates-Manager.php:87
|
||||
msgid "Donate"
|
||||
msgstr ""
|
||||
|
||||
#: ACh-Updates-Manager.php:103
|
||||
#: includes/acupnm-settings.php:27
|
||||
msgid "ACh Updates and Notices Manager"
|
||||
msgstr ""
|
||||
|
||||
#: ACh-Updates-Manager.php:103
|
||||
msgid "Updates Manager"
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:28
|
||||
msgid "The ACh Update Manager plugin for WordPress. Manage all your WordPress updates and notifications with one click!"
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:33
|
||||
msgid "Options"
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:44
|
||||
msgid "✔ Disable all WP updates and notifs"
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:53
|
||||
msgid "Disable all WordPress core, themes, plugins and translations updates and notifications."
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:57
|
||||
msgid "✔ Hide all notices from WP dashboard"
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:66
|
||||
msgid "Disable all notices from the WordPress dashboard. e.g. errors, updates, warning, rate us, license, dismissible and etc."
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:70
|
||||
msgid "✔ Disable plugins updates and notifs"
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:79
|
||||
msgid "Disable the WordPress plugins updates and notifications."
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:83
|
||||
msgid "✔ Disable themes updates and notifs"
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:92
|
||||
msgid "Disable the WordPress themes updates and notifications."
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:96
|
||||
msgid "✔ Disable WP core update and notifs"
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:105
|
||||
msgid "Disable the WordPress core update and notifications."
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:109
|
||||
msgid "✔ Hide WordPress core update notice"
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:118
|
||||
msgid "Hide WordPress core update notice from WP dashboard."
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:122
|
||||
msgid "✔ Update theme and plugin from zip"
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:131
|
||||
msgid "This feature allows you to update plugins and themes using a zip file. While upgrading, a backup copy of the old theme or plugin is first created. This allows you to install the old version in case of problems with the new version."
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:147
|
||||
msgid "If you need assistance, see our help resources."
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:148
|
||||
msgid "Please make a search to find help with your problem, or head over to our support forum to ask a question."
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:152
|
||||
msgid "Visit my site"
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:155
|
||||
msgid "Send email"
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:158
|
||||
msgid "Support forum"
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:167
|
||||
msgid "About us"
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:170
|
||||
msgid "The ACh Updates and Notices Manager is an easy way to manage all your WordPress updates and notifications with one click!"
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:171
|
||||
msgid "ACh Updates and Notices Manager was developed by <a class="achupnm-link-text" href="https://ach.li" target="_blank">A. Ch</a> and is <a class="achupnm-link-text" href="https://wordpress.org" target="_blank">available for free</a> on WordPress."
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:172
|
||||
msgid "We work hard to give you an exceptional premium products and 5 star support. To show your appreciation you can buy us a coffee or simply by sharing or follow us on social media."
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:176
|
||||
msgid "Buy us a coffee"
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:177
|
||||
msgid "Like us"
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:178
|
||||
msgid "Tweet us"
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:179
|
||||
msgid "Rate us"
|
||||
msgstr ""
|
||||
|
||||
#: includes/acupnm-settings.php:191
|
||||
msgid "Save Changes"
|
||||
msgstr ""
|
||||
|
||||
#: includes/easy-update/ach-plugin-updater.php:41
|
||||
msgid "Upgrading the plugin…"
|
||||
msgstr ""
|
||||
|
||||
#: includes/easy-update/ach-plugin-updater.php:42
|
||||
msgid "Backing up the old version of the plugin…"
|
||||
msgstr ""
|
||||
|
||||
#: includes/easy-update/ach-plugin-updater.php:88
|
||||
msgid "A backup zip file of the old plugin version can be downloaded <a href="%1$s">here</a>."
|
||||
msgstr ""
|
||||
|
||||
#: includes/easy-update/ach-plugin-updater.php:98
|
||||
msgid "Moving the old version of the plugin to a new directory…"
|
||||
msgstr ""
|
||||
|
||||
#: includes/easy-update/ach-plugin-updater.php:114
|
||||
msgid "Unable to find a new directory name to move the old version of the plugin to. No backup will be created."
|
||||
msgstr ""
|
||||
|
||||
#: includes/easy-update/ach-plugin-updater.php:120
|
||||
msgid "Moved the old version of the plugin to a new plugin directory named %1$s. This directory should be backed up and removed from the site."
|
||||
msgstr ""
|
||||
|
||||
#: includes/easy-update/ach-plugin-updater.php:122
|
||||
msgid "Unable to move the old version of the plugin to a new directory. No backup will be created."
|
||||
msgstr ""
|
||||
|
||||
#: includes/easy-update/ach-plugin-updater.php:142
|
||||
msgid "A plugin backup can not be created since a destination path for the backup file could not be found."
|
||||
msgstr ""
|
||||
|
||||
#: includes/easy-update/ach-plugin-updater.php:167
|
||||
msgid "A plugin backup can not be created as creation of the zip file failed with the following error: %1$s"
|
||||
msgstr ""
|
||||
|
||||
#: includes/easy-update/ach-plugin-updater.php:174
|
||||
msgid "Plugin Backup - %1$s - %2$s"
|
||||
msgstr ""
|
||||
|
||||
#: includes/easy-update/ach-theme-updater.php:41
|
||||
msgid "Upgrading the theme…"
|
||||
msgstr ""
|
||||
|
||||
#: includes/easy-update/ach-theme-updater.php:42
|
||||
msgid "Backing up the old version of the theme…"
|
||||
msgstr ""
|
||||
|
||||
#: includes/easy-update/ach-theme-updater.php:60
|
||||
msgid "A backup zip file of the old theme version can be downloaded <a href="%1$s">here</a>."
|
||||
msgstr ""
|
||||
|
||||
#: includes/easy-update/ach-theme-updater.php:70
|
||||
msgid "Moving the old version of the theme to a new directory…"
|
||||
msgstr ""
|
||||
|
||||
#: includes/easy-update/ach-theme-updater.php:91
|
||||
msgid "Unable to find a new directory name to move the old version of the theme to. No backup will be created."
|
||||
msgstr ""
|
||||
|
||||
#: includes/easy-update/ach-theme-updater.php:97
|
||||
msgid "Moved the old version of the theme to a new theme directory named %1$s. This directory should be backed up and removed from the site."
|
||||
msgstr ""
|
||||
|
||||
#: includes/easy-update/ach-theme-updater.php:99
|
||||
msgid "Unable to move the old version of the theme to a new directory. No backup will be created."
|
||||
msgstr ""
|
||||
|
||||
#: includes/easy-update/ach-theme-updater.php:119
|
||||
msgid "A theme backup can not be created since a destination path for the backup file could not be found."
|
||||
msgstr ""
|
||||
|
||||
#: includes/easy-update/ach-theme-updater.php:148
|
||||
msgid "A theme backup can not be created as creation of the zip file failed with the following error: %1$s"
|
||||
msgstr ""
|
||||
|
||||
#: includes/easy-update/ach-theme-updater.php:155
|
||||
msgid "Theme Backup - %1$s - %2$s"
|
||||
msgstr ""
|
||||
@@ -0,0 +1,42 @@
|
||||
# Copyright (C) 2020 Acowebs
|
||||
# This file is distributed under the same license as the Product Labels For Woocommerce plugin.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Product Labels For Woocommerce 1.0.0\n"
|
||||
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/woocomerce-sales-badge\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: 2020-07-09T05:22:44+00:00\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"X-Generator: WP-CLI 2.3.0\n"
|
||||
"X-Domain: aco-product-labels-for-woocommerce\n"
|
||||
|
||||
#. Plugin Name of the plugin
|
||||
#. Description of the plugin
|
||||
msgid "Product Labels For Woocommerce"
|
||||
msgstr ""
|
||||
|
||||
#. Author of the plugin
|
||||
msgid "Acowebs"
|
||||
msgstr ""
|
||||
|
||||
#. Author URI of the plugin
|
||||
msgid "http://acowebs.com"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-acoplw-backend.php:130
|
||||
#: includes/class-acoplw-backend.php:144
|
||||
msgid "Badges"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-acoplw-backend.php:132
|
||||
#: includes/class-acoplw-backend.php:145
|
||||
msgid "Product Lists"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-acoplw-backend.php:134
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
29
spec/fixtures/dynamic_finders/plugin_version/addonify-quick-view/composer_file/package.json
vendored
Normal file
29
spec/fixtures/dynamic_finders/plugin_version/addonify-quick-view/composer_file/package.json
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"name": "addonify-quick-view",
|
||||
"version": "1.0.0",
|
||||
"description": "Addonify WooCoomerce Quick View plugin adds functionality to have a WooCoomerce product quick view preview on a modal window.",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/addonify/addonify-quick-view.git"
|
||||
},
|
||||
"keywords": [
|
||||
"woocommerce",
|
||||
"quick",
|
||||
"view",
|
||||
"addonify"
|
||||
],
|
||||
"author": "Addonify",
|
||||
"license": "ISC",
|
||||
"bugs": {
|
||||
"url": "https://github.com/addonify/addonify-quick-view/issues"
|
||||
},
|
||||
"homepage": "https://github.com/addonify/addonify-quick-view#readme",
|
||||
"devDependencies": {
|
||||
"gulp": "^4.0.2",
|
||||
"gulp-wp-pot": "^2.4.3"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,111 @@
|
||||
# Copyright (C) 2020 PRESSMAN
|
||||
# This file is distributed under the same license as the Admin User Control plugin.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Admin User Control 1.0.0\n"
|
||||
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/admin-user-"
|
||||
"control\n"
|
||||
"POT-Creation-Date: 2020-05-18T02:23:41+00:00\n"
|
||||
"PO-Revision-Date: 2020-05-18 11:26+0900\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"Language: ja\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 2.3\n"
|
||||
"X-Domain: admin-user-control\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
#. Plugin Name of the plugin
|
||||
msgid "Admin User Control"
|
||||
msgstr "Admin User Control"
|
||||
|
||||
#. Description of the plugin
|
||||
msgid "Control admin user in administration screens in real time."
|
||||
msgstr "管理画面にログインしているユーザーをリアルタイムで制御します。"
|
||||
|
||||
#. Author of the plugin
|
||||
msgid "PRESSMAN"
|
||||
msgstr "PRESSMAN"
|
||||
|
||||
#. Author URI of the plugin
|
||||
msgid "https://www.pressman.ne.jp"
|
||||
msgstr "https://www.pressman.ne.jp"
|
||||
|
||||
#: auc-login-monitor.php:22
|
||||
msgid "Logged in"
|
||||
msgstr "ログイン"
|
||||
|
||||
#: auc-maintenance.php:38 auc-maintenance.php:174
|
||||
msgid "Maintenance"
|
||||
msgstr "メンテナンス"
|
||||
|
||||
#: auc-maintenance.php:42 auc-maintenance.php:220
|
||||
msgid "maintenance_start_date"
|
||||
msgstr "メンテナンス開始日時"
|
||||
|
||||
#: auc-maintenance.php:59 auc-maintenance.php:221
|
||||
msgid "maintenance_end_date"
|
||||
msgstr "メンテナンス終了日時"
|
||||
|
||||
#: auc-maintenance.php:114
|
||||
msgid "Forced logout after 10 seconds because the maintenance start time"
|
||||
msgstr "メンテナンスの開始時刻になったため10秒後に強制ログアウトします"
|
||||
|
||||
#: auc-maintenance.php:115
|
||||
msgid "Scheduled maintenance end time"
|
||||
msgstr "メンテナンス終了予定時間"
|
||||
|
||||
#: auc-maintenance.php:175
|
||||
msgid "Add New Maintenance"
|
||||
msgstr "メンテナンスを追加"
|
||||
|
||||
#: auc-maintenance.php:176
|
||||
msgid "Edit Maintenance"
|
||||
msgstr "メンテナンスの編集"
|
||||
|
||||
#: auc-maintenance.php:246
|
||||
msgid "Latest maintenance information"
|
||||
msgstr "直近のメンテナンス情報"
|
||||
|
||||
#: auc-maintenance.php:269
|
||||
msgid "Click a title to display a detail."
|
||||
msgstr "タイトルをクリックすると詳細が表示されます。"
|
||||
|
||||
#: auc-maintenance.php:287
|
||||
msgid "No maintenance information"
|
||||
msgstr "メンテナンス情報がありません"
|
||||
|
||||
#: auc-notification.php:26
|
||||
msgid "New notification"
|
||||
msgstr "新しいお知らせがあります"
|
||||
|
||||
#: auc-notification.php:50
|
||||
msgid "Notification"
|
||||
msgstr "お知らせ"
|
||||
|
||||
#: auc-notification.php:51
|
||||
msgid "Add New Notification"
|
||||
msgstr "お知らせを追加"
|
||||
|
||||
#: auc-notification.php:52
|
||||
msgid "Edit Notification"
|
||||
msgstr "お知らせの編集"
|
||||
|
||||
#: auc-notification.php:70
|
||||
msgid "Latest notifications"
|
||||
msgstr "直近のお知らせ"
|
||||
|
||||
#: auc-notification.php:86
|
||||
msgid "Click a title to display a detail. If you read it, mark it as read."
|
||||
msgstr ""
|
||||
"タイトルをクリックすると詳細が表示されます。読んだら既読にしてください。"
|
||||
|
||||
#: auc-notification.php:91
|
||||
msgid "Mark as read"
|
||||
msgstr "既読にする"
|
||||
|
||||
#: auc-notification.php:113
|
||||
msgid "There is no notifications"
|
||||
msgstr "お知らせがありません"
|
||||
@@ -0,0 +1,73 @@
|
||||
# Copyright (C) 2020 Condless
|
||||
# This file is distributed under the same license as the Advanced Options for WooCommerce plugin.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Advanced Options for WooCommerce 1.0.1\n"
|
||||
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/advanced-options-"
|
||||
"for-woocommerce\n"
|
||||
"Language-Team: Condless <info@condless.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"POT-Creation-Date: 2020-04-24 08:53+0300\n"
|
||||
"PO-Revision-Date: 2020-04-24 08:55+0300\n"
|
||||
"X-Generator: Poedit 2.3\n"
|
||||
"X-Domain: advanced-options-for-woocommerce\n"
|
||||
"Last-Translator: Condless <info@condless.com>\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : n==2 ? 1 : n>10 && n%10==0 ? "
|
||||
"2 : 3);\n"
|
||||
"Language: he_IL\n"
|
||||
|
||||
#. Plugin Name of the plugin
|
||||
msgid "Advanced Options for WooCommerce"
|
||||
msgstr "אפשרויות מתקדמות לווקומרס"
|
||||
|
||||
#. Plugin URI of the plugin
|
||||
msgid "https://en.condless.com/advanced-options-for-woocommerce/"
|
||||
msgstr "https://www.condless.com/advanced-options-for-woocommerce/"
|
||||
|
||||
#. Description of the plugin
|
||||
msgid ""
|
||||
"WooCommerce plugin for more options and customizations. Simple and Easy to "
|
||||
"use."
|
||||
msgstr "תוסף לווקומרס לאפשרויות נוספות והתאמה אישית. פשוט וקל לשימוש."
|
||||
|
||||
#. Author of the plugin
|
||||
msgid "Condless"
|
||||
msgstr "Condless"
|
||||
|
||||
#. Author URI of the plugin
|
||||
msgid "https://www.condless.com/"
|
||||
msgstr "https://www.condless.com/"
|
||||
|
||||
#: advanced-options-for-woocommerce.php:163
|
||||
msgid "contains letters not from the permitted languages"
|
||||
msgstr "מכיל אותיות שלא שייכות לשפות המותרות"
|
||||
|
||||
#: advanced-options-for-woocommerce.php:200
|
||||
msgid "Advanced Options"
|
||||
msgstr "אפשרויות מתקדמות"
|
||||
|
||||
#: advanced-options-for-woocommerce.php:235
|
||||
msgid ""
|
||||
"Allow only ASCII chars (which prevent non-English letters) in the checkout "
|
||||
"fields"
|
||||
msgstr "אפשר רק תווי ASCII (מה שמונע אותיות שלא באנגלית) בשדות התשלום"
|
||||
|
||||
#: advanced-options-for-woocommerce.php:241
|
||||
msgid ""
|
||||
"Display the VAT amount and the product price include & exlude it in single "
|
||||
"product page"
|
||||
msgstr "הצג את סכום המע\"מ ואת מחיר המוצר איתו ובלעדיו בעמוד מוצר"
|
||||
|
||||
#: advanced-options-for-woocommerce.php:247
|
||||
msgid "Display for variable products the attribute name instead of"
|
||||
msgstr "הצג במוצרים עם וריאיציות את שם התכונה במקום"
|
||||
|
||||
#: advanced-options-for-woocommerce.php:253
|
||||
msgid "Display only products in"
|
||||
msgstr "הצג מוצרים בלבד ב"
|
||||
|
||||
#: advanced-options-for-woocommerce.php:259
|
||||
msgid "Auto triggered by"
|
||||
msgstr "פועל אוטומטית כאשר"
|
||||
26
spec/fixtures/dynamic_finders/plugin_version/affiliatewp-blocks/composer_file/package.json
vendored
Normal file
26
spec/fixtures/dynamic_finders/plugin_version/affiliatewp-blocks/composer_file/package.json
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"name": "affiliatewp-blocks",
|
||||
"version": "1.0.1",
|
||||
"description": "Blocks for AffiliateWP.",
|
||||
"author": "Sandhills Development, LLC",
|
||||
"license": "GPL-2.0-or-later",
|
||||
"main": "build/index.js",
|
||||
"scripts": {
|
||||
"build": "wp-scripts build",
|
||||
"format:js": "wp-scripts format-js",
|
||||
"lint:css": "wp-scripts lint-style",
|
||||
"lint:js": "wp-scripts lint-js",
|
||||
"start": "wp-scripts start",
|
||||
"packages-update": "wp-scripts packages-update"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@wordpress/scripts": "^7.2.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@wordpress/icons": "^1.4.0",
|
||||
"@wordpress/url": "^2.14.0",
|
||||
"classnames": "^2.2.6",
|
||||
"lodash": "^4.17.15",
|
||||
"trailing-slash-it": "^0.3.0"
|
||||
}
|
||||
}
|
||||
61
spec/fixtures/dynamic_finders/plugin_version/aiaibot/translation_file/languages/aiaibot.pot
vendored
Normal file
61
spec/fixtures/dynamic_finders/plugin_version/aiaibot/translation_file/languages/aiaibot.pot
vendored
Normal file
@@ -0,0 +1,61 @@
|
||||
# Copyright (C) 2020 aiaibot
|
||||
# This file is distributed under the same license as the aiaibot plugin.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: aiaibot 1.0.3\n"
|
||||
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/aiaibot\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: 2020-05-20T09:25:54+00:00\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"X-Generator: WP-CLI 2.4.0\n"
|
||||
"X-Domain: aiaibot\n"
|
||||
|
||||
#. Plugin Name of the plugin
|
||||
#. Author of the plugin
|
||||
msgid "aiaibot"
|
||||
msgstr ""
|
||||
|
||||
#. Plugin URI of the plugin
|
||||
msgid "https://wordpress.org/plugins/aiaibot/"
|
||||
msgstr ""
|
||||
|
||||
#. Description of the plugin
|
||||
msgid "Integrate your aiaibot chatbot."
|
||||
msgstr ""
|
||||
|
||||
#. Author URI of the plugin
|
||||
msgid "https://app.aiaibot.com"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-aiaibot-admin.php:84
|
||||
msgid "Integration Code"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-aiaibot-admin.php:92
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-aiaibot-admin.php:112
|
||||
msgid "Implement your chatbot on your Wordpress page"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-aiaibot-admin.php:123
|
||||
msgid "Config id is not valid."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-aiaibot-admin.php:147
|
||||
msgid "Chatbot Integration Settings"
|
||||
msgstr ""
|
||||
|
||||
#. translators: %s: url to the app.aiaibot
|
||||
#: admin/class-aiaibot-admin.php:155
|
||||
msgid "Get the integration code on %s."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-aiaibot-admin.php:157
|
||||
msgid "Publish Chatbot"
|
||||
msgstr ""
|
||||
@@ -0,0 +1,91 @@
|
||||
# Blank WordPress Pot
|
||||
# Copyright 2014 ...
|
||||
# This file is distributed under the GNU General Public License v3 or later.
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: "
|
||||
"Blank WordPress Pot "
|
||||
"v1.0.0\n"
|
||||
"POT-Creation-Date: "
|
||||
"2020-07-27 14:57+0200\n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: Fredrik Stigsson"
|
||||
"<info@annytab.se>\n"
|
||||
"Language-Team: Your Team "
|
||||
"<translations@example."
|
||||
"com>\n"
|
||||
"Report-Msgid-Bugs-To: "
|
||||
"Translator Name "
|
||||
"<translations@example."
|
||||
"com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/"
|
||||
"plain; charset=UTF-8\n"
|
||||
"Content-Transfer-"
|
||||
"Encoding: 8bit\n"
|
||||
"Plural-Forms: "
|
||||
"nplurals=2; plural=n != "
|
||||
"1;\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"
|
||||
"Language: en_US\n"
|
||||
"X-Generator: Poedit 2.4\n"
|
||||
"X-Poedit-"
|
||||
"SearchPath-0: .\n"
|
||||
|
||||
#: annytab-photoswipe.php:85
|
||||
msgid "Share on Facebook"
|
||||
msgstr ""
|
||||
|
||||
#: annytab-photoswipe.php:86
|
||||
msgid "Tweet"
|
||||
msgstr ""
|
||||
|
||||
#: annytab-photoswipe.php:87
|
||||
msgid "Pin it"
|
||||
msgstr ""
|
||||
|
||||
#: annytab-photoswipe.php:88
|
||||
msgid "Download image"
|
||||
msgstr ""
|
||||
|
||||
#: annytab-photoswipe.php:114
|
||||
msgid "Close (Esc)"
|
||||
msgstr ""
|
||||
|
||||
#: annytab-photoswipe.php:116
|
||||
msgid "Share"
|
||||
msgstr ""
|
||||
|
||||
#: annytab-photoswipe.php:118
|
||||
msgid "Toggle fullscreen"
|
||||
msgstr ""
|
||||
|
||||
#: annytab-photoswipe.php:120
|
||||
msgid "Zoom in/out"
|
||||
msgstr ""
|
||||
|
||||
#: annytab-photoswipe.php:137
|
||||
msgid "Previous"
|
||||
msgstr ""
|
||||
|
||||
#: annytab-photoswipe.php:140
|
||||
msgid "Next"
|
||||
msgstr ""
|
||||
@@ -0,0 +1,7 @@
|
||||
== Changelog ==
|
||||
|
||||
= 0.5.1 - 2020-04-14 =
|
||||
* fixed performance problem on sites with large amount of posts
|
||||
|
||||
= 0.5.0 - 2020-04-14 =
|
||||
* Initial public release
|
||||
41
spec/fixtures/dynamic_finders/plugin_version/apijoin-gumroad/composer_file/package.json
vendored
Normal file
41
spec/fixtures/dynamic_finders/plugin_version/apijoin-gumroad/composer_file/package.json
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"name": "agu-apijoin",
|
||||
"version": "1.0.0",
|
||||
"description": "test",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"build": "wp-scripts build",
|
||||
"check-engines": "wp-scripts check-engines",
|
||||
"check-licenses": "wp-scripts check-licenses",
|
||||
"format:js": "wp-scripts format-js",
|
||||
"lint:css": "wp-scripts lint-style",
|
||||
"lint:js": "wp-scripts lint-js",
|
||||
"lint:md:docs": "wp-scripts lint-md-docs",
|
||||
"lint:md:js": "wp-scripts lint-md-js",
|
||||
"lint:pkg-json": "wp-scripts lint-pkg-json",
|
||||
"packages-update": "wp-scripts packages-update",
|
||||
"start": "wp-scripts start",
|
||||
"test:e2e": "wp-scripts test-e2e",
|
||||
"test:unit": "wp-scripts test-unit-js"
|
||||
},
|
||||
"author": "Miguras",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"@wordpress/scripts": "^7.1.0",
|
||||
"css-loader": "^3.4.2",
|
||||
"html-react-parser": "^0.10.3",
|
||||
"image-webpack-loader": "^6.0.0",
|
||||
"react-responsive-carousel": "^3.1.51",
|
||||
"react-slick": "^0.25.2",
|
||||
"react-smart-slider": "^0.1.2",
|
||||
"slick-carousel": "^1.8.1",
|
||||
"style-loader": "^1.1.3",
|
||||
"styled-jsx-plugin-stylelint": "^0.1.0",
|
||||
"webpack": "^4.41.6"
|
||||
},
|
||||
"devDependencies": {
|
||||
"file-loader": "^5.1.0",
|
||||
"svgo": "^1.3.2",
|
||||
"svgo-loader": "^2.2.1"
|
||||
}
|
||||
}
|
||||
88
spec/fixtures/dynamic_finders/plugin_version/app-log/translation_file/lang/aplg.pot
vendored
Normal file
88
spec/fixtures/dynamic_finders/plugin_version/app-log/translation_file/lang/aplg.pot
vendored
Normal file
@@ -0,0 +1,88 @@
|
||||
# Copyright (C) 2020 PRESSMAN
|
||||
# This file is distributed under the same license as the App Log plugin.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: App Log 1.1\n"
|
||||
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/app-log\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: 2020-07-29T02:35:19+00:00\n"
|
||||
"PO-Revision-Date: 2020-08-07T06:01:23+00:00\n"
|
||||
"X-Generator: WP-CLI 2.4.0\n"
|
||||
"X-Domain: aplg\n"
|
||||
|
||||
#. Plugin Name of the plugin
|
||||
#: admin/aplg-dashboard.php:48
|
||||
#: admin/aplg-settings.php:38
|
||||
msgid "App Log"
|
||||
msgstr ""
|
||||
|
||||
#. Description of the plugin
|
||||
msgid "A simple logger for debugging."
|
||||
msgstr ""
|
||||
|
||||
#. Author of the plugin
|
||||
msgid "PRESSMAN"
|
||||
msgstr ""
|
||||
|
||||
#. Author URI of the plugin
|
||||
msgid "https://www.pressman.ne.jp/"
|
||||
msgstr ""
|
||||
|
||||
#: admin/aplg-dashboard.php:64
|
||||
msgid "File will be deleted. Are you sure you want to proceed?"
|
||||
msgstr ""
|
||||
|
||||
#: admin/aplg-dashboard.php:83
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: admin/aplg-dashboard.php:105
|
||||
msgid "No logs found."
|
||||
msgstr ""
|
||||
|
||||
#: admin/aplg-dashboard.php:117
|
||||
msgid "Log File List"
|
||||
msgstr ""
|
||||
|
||||
#: admin/aplg-dashboard.php:117
|
||||
msgid "Path"
|
||||
msgstr ""
|
||||
|
||||
#: admin/aplg-dashboard.php:152
|
||||
msgid "Set path to where the application logs are stored"
|
||||
msgstr ""
|
||||
|
||||
#: admin/aplg-dashboard.php:159
|
||||
msgid "※No need to set if default path will be used. (Default Path: %s)"
|
||||
msgstr ""
|
||||
|
||||
#: admin/aplg-dashboard.php:191
|
||||
msgid "Invalid access"
|
||||
msgstr ""
|
||||
|
||||
#: admin/aplg-dashboard.php:231
|
||||
#: classes/class-aplg-logger.php:122
|
||||
msgid "%s successfully deleted."
|
||||
msgstr ""
|
||||
|
||||
#: admin/aplg-settings.php:37
|
||||
#: admin/aplg-settings.php:53
|
||||
msgid "App Log Settings"
|
||||
msgstr ""
|
||||
|
||||
#: admin/aplg-settings.php:60
|
||||
msgid "Log Directory"
|
||||
msgstr ""
|
||||
|
||||
#: admin/aplg-settings.php:68
|
||||
msgid "Enable/Disable Mail Log"
|
||||
msgstr ""
|
||||
|
||||
#: classes/class-aplg-logger.php:114
|
||||
#: classes/class-aplg-logger.php:127
|
||||
msgid "Failed to delete log."
|
||||
msgstr ""
|
||||
292
spec/fixtures/dynamic_finders/plugin_version/ar-contactus/changelog/changelog.txt
vendored
Normal file
292
spec/fixtures/dynamic_finders/plugin_version/ar-contactus/changelog/changelog.txt
vendored
Normal file
@@ -0,0 +1,292 @@
|
||||
# Changelog
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
##[1.8.4] - 2020-05-21
|
||||
### Added
|
||||
- Button icon size option
|
||||
- Button appearing animation option
|
||||
- Menu sidebar style
|
||||
- Menu popup animation
|
||||
- Menu sidebar animation
|
||||
- Menu items animation
|
||||
- Plugin core updated
|
||||
|
||||
##[1.8.3] - 2020-05-19
|
||||
### Added
|
||||
- Deactivation plugin for current domain
|
||||
- PhpLive integration
|
||||
- Paldesk integration
|
||||
|
||||
##[1.8.2] - 2020-05-15
|
||||
### Fixed
|
||||
- Small issues
|
||||
|
||||
##[1.8.1] - 2020-05-11
|
||||
### Added
|
||||
- Output filtration
|
||||
- Server config values validation
|
||||
|
||||
##[1.8.0] - 2020-05-06
|
||||
### Added
|
||||
- Option to choose who can access callback list
|
||||
|
||||
### Fixed
|
||||
- Security improvements
|
||||
|
||||
##[1.7.9] - 2020-04-09
|
||||
### Fixed
|
||||
- Skype integration
|
||||
- FreshChat integration
|
||||
|
||||
##[1.7.8] - 2020-02-07
|
||||
### Fixed
|
||||
- Tawk.to appearance issue
|
||||
|
||||
##[1.7.7] - 2020-01-29
|
||||
### Added
|
||||
- FreshChat integration
|
||||
|
||||
##[1.7.6] - 2020-01-20
|
||||
### Fixed
|
||||
- Zoho SalesIQ chat integration fix
|
||||
|
||||
##[1.7.5] - 2020-01-14
|
||||
### Added
|
||||
- Zoho SalesIQ chat integration
|
||||
|
||||
##[1.7.4] - 2019-12-18
|
||||
### Fixed
|
||||
- Name validation unicode languages
|
||||
|
||||
##[1.7.3] - 2019-12-15
|
||||
### Fixed
|
||||
- Name validation unicode languages
|
||||
|
||||
##[1.7.2] - 2019-12-13
|
||||
### Added
|
||||
- Name field validation options
|
||||
- Email field to callback form
|
||||
- Email field to callback requests table
|
||||
- Updated translations
|
||||
|
||||
### Fixed
|
||||
- Email subject translation
|
||||
|
||||
##[1.7.1] - 2019-12-04
|
||||
### Fixed
|
||||
- Activation issue
|
||||
|
||||
##[1.7.0] - 2019-11-30
|
||||
### Fixed
|
||||
- Fixed JivoSite issue
|
||||
|
||||
##[1.6.9] - 2019-11-22
|
||||
### Fixed
|
||||
- Fixed Tawk.to issue
|
||||
|
||||
##[1.6.8] - 2019-09-30
|
||||
### Fixed
|
||||
- Fixed JivoSite issue
|
||||
|
||||
##[1.6.7] - 2019-09-25
|
||||
### Fixed
|
||||
- HTML code in GDRP Title
|
||||
|
||||
##[1.6.6] - 2019-09-03
|
||||
### Added
|
||||
- Tidio Integration
|
||||
- Jivosite integration
|
||||
- Added comments functionality to callback requests
|
||||
- Updated translation template
|
||||
- Updated Russian translation
|
||||
- Added Google Analytics integration
|
||||
|
||||
### Fixed
|
||||
- Callback requests admin table mobile view
|
||||
|
||||
##[1.6.4] - 2019-08-05
|
||||
### Fixed
|
||||
- LiveZilla integration
|
||||
|
||||
##[1.6.3] - 2019-07-31
|
||||
### Added
|
||||
- Name and referer fileds to email notification
|
||||
- Name and referer fileds to webpush notification
|
||||
- Name and referer fileds to sms notification
|
||||
- Name and referer fileds to telegram notification
|
||||
- Export callback requests to CSV file
|
||||
- Delay initialization
|
||||
- Disable initialization
|
||||
- Open menu after timeout automatically
|
||||
|
||||
##[1.6.2] - 2019-06-01
|
||||
### Fixed
|
||||
- Crisp integration issue
|
||||
- Callback customer name field
|
||||
|
||||
##[1.6.1] - 2019-05-27
|
||||
### Added
|
||||
- Custom popup item type - allows to open popup with text/html content by clicking menu item
|
||||
- Name field to callback form
|
||||
- Activation functionality
|
||||
|
||||
##[1.5.9] - 2019-05-01
|
||||
### Added
|
||||
- Background and color option for shortcode
|
||||
|
||||
### Fixed
|
||||
- Exporting data issue on some PHP versions
|
||||
- Button and menu z-index
|
||||
- Modal conflict with SimpleModal
|
||||
- Safari item editing/adding
|
||||
|
||||
##[1.5.8] - 2019-04-29
|
||||
### Added
|
||||
- GDPR checkbox
|
||||
|
||||
##[1.5.7] - 2019-04-25
|
||||
### Added
|
||||
- WooCommerce StoreFront theme integration to mobile footer
|
||||
- New Menu style - icons without background
|
||||
- 1-click auto update
|
||||
- LiveZilla integration
|
||||
- StoreFront theme compliant - now you can add "contact-us" button to storefront mobile footer
|
||||
|
||||
### Fixed
|
||||
- LiveChat Pro integration issue
|
||||
- Update issue
|
||||
- Generate css after import
|
||||
|
||||
##[1.5.5] - 2019-04-08
|
||||
### Added
|
||||
- LiveChat Pro integration
|
||||
- Close callback popup timeout
|
||||
- Menu items subtitles
|
||||
- Option to display menu item for all users or registred users or unregistred users only
|
||||
- FontAwesome icons support
|
||||
|
||||
### Fixed
|
||||
- Performance improved
|
||||
|
||||
##[1.5.3] - 2019-04-02
|
||||
### Added
|
||||
- New icons
|
||||
|
||||
### Fixed
|
||||
- Skype WebControl integration
|
||||
- UI bootstrap conflicts
|
||||
|
||||
##[1.5.2] - 2019-03-14
|
||||
### Added
|
||||
- Predefinded Brand Colors selector
|
||||
|
||||
### Fixed
|
||||
- Landscape responsive
|
||||
- Layout fixes
|
||||
|
||||
##[1.5.1] - 2019-02-26
|
||||
### Added
|
||||
- Menu width option
|
||||
- Callback request form width option
|
||||
|
||||
##[1.5.0] - 2019-02-24
|
||||
### Added
|
||||
- LiveChat integration (livechatinc.com)
|
||||
- SmartSupp integratin
|
||||
- All button settings now can be set separately for descktop and mobile versions
|
||||
- All menu settings now can be set separately for descktop and mobile versions
|
||||
- All prompts settings now can be set separately for descktop and mobile versions
|
||||
- Pause between main button animation loops
|
||||
- Icon type option to menu settings
|
||||
- Lines options to menu settings
|
||||
- Header options to menu settings
|
||||
- Header close button options to menu settings
|
||||
- Shadow size/opacity to menu settings
|
||||
- Export option (for exporting all module data)
|
||||
- Import option (for impoting all module data)
|
||||
- Prompt position option
|
||||
- Russian translation
|
||||
- Light design updates
|
||||
|
||||
### Fixed
|
||||
- TextDomain loading
|
||||
- Html email bug
|
||||
- RTL bug
|
||||
- Improved responsivness
|
||||
- Email adress validation
|
||||
|
||||
##[1.3.9] - 2019-02-01
|
||||
### Added
|
||||
- Live helper chat integration
|
||||
|
||||
### Fixed
|
||||
- Callback mobile form layout
|
||||
- Zalo chat validation error
|
||||
- Callback is not running custom JS code
|
||||
|
||||
##[1.3.8] - 2019-01-30
|
||||
### Added
|
||||
- OneSignal integration to receive webpush on callback request
|
||||
- Link target option
|
||||
- Option to control when display prompt messages again after visitor closed them
|
||||
- Shortcodes for menu items
|
||||
|
||||
##[1.3.7] - 2019-01-26
|
||||
### Fixed
|
||||
- create_function deprecated in php 7.2
|
||||
- load plugin text domain
|
||||
|
||||
##[1.3.5] - 2019-01-18
|
||||
### Added
|
||||
- LinkedIn icon
|
||||
- Instagram icon
|
||||
- Zendesk icon
|
||||
- Zendesk chat support
|
||||
- Sandbox mode
|
||||
- Html mail support
|
||||
- Main button mode option (callback only or menu)
|
||||
- Zalo integration
|
||||
|
||||
### Fixed
|
||||
- Problem with ajaxUrl on some WP versions
|
||||
- CSS fixes
|
||||
- Tawk.to hidding issue
|
||||
|
||||
##[1.3.3] - 2019-01-03
|
||||
### Added
|
||||
- Zalo icon
|
||||
|
||||
### Fixed
|
||||
- Fixed bootstrap conflicts
|
||||
|
||||
##[1.3.2] - 2018-10-09
|
||||
### Fixed
|
||||
- Fixed innoDB tables creation
|
||||
|
||||
##[1.3.1] - 2018-09-25
|
||||
### Added
|
||||
- More icons
|
||||
- Telegram bot
|
||||
- Change main button feature
|
||||
- Phone mask feature
|
||||
- Crisp integration
|
||||
- Tawk.to integration
|
||||
- Hashtags commands
|
||||
|
||||
##[1.3.0] - 2018-08-02
|
||||
### Added
|
||||
- Skype Web Control integration
|
||||
- Zendesk chat integration
|
||||
- VK community messages integration
|
||||
- Facebook customer chat integration
|
||||
- Prompt messages feature
|
||||
|
||||
##[1.2.0] - 2018-07-21
|
||||
### Added
|
||||
- Menu size
|
||||
- Main button size
|
||||
- Twilio integration
|
||||
|
||||
|
||||
##[1.0.0] - 2018-06-19
|
||||
- First released version
|
||||
@@ -0,0 +1,316 @@
|
||||
# Copyright (C) 2020 Konstantin Kröpfl
|
||||
# This file is distributed under the same license as the Attachment Usage plugin.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Attachment Usage 1.0.0\n"
|
||||
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/attachment-usage\n"
|
||||
"POT-Creation-Date: 2020-07-01 17:28+0200\n"
|
||||
"PO-Revision-Date: 2020-07-01 17:28+0200\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"Language: de\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 1.8.12\n"
|
||||
"X-Domain: attachment-usage\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#. Plugin Name of the plugin
|
||||
msgid "Attachment Usage"
|
||||
msgstr ""
|
||||
|
||||
#. Plugin URI of the plugin
|
||||
msgid "https://wordpress.org/plugins/attachment-usage/"
|
||||
msgstr ""
|
||||
|
||||
#. Description of the plugin
|
||||
msgid ""
|
||||
"This plugin shows the usage of attachments (posts, widgets, products) on the "
|
||||
"website."
|
||||
msgstr ""
|
||||
"Dieses Plugin zeigt die Verwendung von Anhängen (Beiträge, Widgets, "
|
||||
"Produkten) auf der Website an."
|
||||
|
||||
#. Author of the plugin
|
||||
msgid "Konstantin Kröpfl"
|
||||
msgstr ""
|
||||
|
||||
#. Author URI of the plugin
|
||||
msgid "#"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-attachment-usage-admin.php:135
|
||||
#: admin/classes/attachment-list-table.php:13
|
||||
#: includes/class-attachment-usage.php:214
|
||||
msgid "Attachment Usages"
|
||||
msgstr "Anhang-Verwendung"
|
||||
|
||||
#: admin/class-attachment-usage-admin.php:155
|
||||
msgid "No valid Ajax request"
|
||||
msgstr "keine gültige Ajax Anfrage"
|
||||
|
||||
#: admin/class-attachment-usage-admin.php:163
|
||||
msgid "No valid Attachment Id sent"
|
||||
msgstr "keine gültige Anhangs-Id übermittelt"
|
||||
|
||||
#: admin/classes/attachment-item-usage-db-controller.php:67
|
||||
#: admin/classes/attachment-list-table.php:29
|
||||
msgid "found"
|
||||
msgstr "gefunden"
|
||||
|
||||
#: admin/classes/attachment-item-usage-db-controller.php:69
|
||||
#: admin/classes/attachment-list-table.php:27
|
||||
msgid "not-found"
|
||||
msgstr "nicht gefunden"
|
||||
|
||||
#: admin/classes/fetch-button-content-helper.php:18
|
||||
#: admin/js/attachment-usage-media-library-behavior.js:62
|
||||
msgid "Fetch Attachment Usage"
|
||||
msgstr "Anhang aktualisieren"
|
||||
|
||||
#: admin/classes/output_setting/attachment-output-setting-factory.php:25
|
||||
msgid "(in widget)"
|
||||
msgstr "(in Widget)"
|
||||
|
||||
#: admin/classes/output_setting/attachment-output-setting-factory.php:26
|
||||
msgid "Widgets"
|
||||
msgstr ""
|
||||
|
||||
#: admin/classes/output_setting/attachment-output-setting-factory.php:31
|
||||
msgid "(in product category)"
|
||||
msgstr "(in Produktkategorie)"
|
||||
|
||||
#: admin/classes/output_setting/attachment-output-setting-factory.php:32
|
||||
msgid "Product Category"
|
||||
msgstr "Produktkategorie"
|
||||
|
||||
#: admin/classes/output_setting/attachment-output-setting-factory.php:37
|
||||
msgid "(in product gallery)"
|
||||
msgstr "(in Produktgalerie)"
|
||||
|
||||
#: admin/classes/output_setting/attachment-output-setting-factory.php:38
|
||||
msgid "Product Attachment"
|
||||
msgstr "Produktanhang"
|
||||
|
||||
#: admin/classes/output_setting/attachment-output-setting-factory.php:43
|
||||
msgid "(in product content)"
|
||||
msgstr "(in Produktinhalt)"
|
||||
|
||||
#: admin/classes/output_setting/attachment-output-setting-factory.php:44
|
||||
msgid "Product Content"
|
||||
msgstr "Produktinhalt"
|
||||
|
||||
#: admin/classes/output_setting/attachment-output-setting-factory.php:49
|
||||
msgid "(in post content)"
|
||||
msgstr "(in Beitragsinhalt)"
|
||||
|
||||
#: admin/classes/output_setting/attachment-output-setting-factory.php:50
|
||||
msgid "Post Content"
|
||||
msgstr "Beitraginhalt"
|
||||
|
||||
#: admin/classes/output_setting/attachment-output-setting-factory.php:55
|
||||
msgid "(in page content)"
|
||||
msgstr "(in Seiteninhalt)"
|
||||
|
||||
#: admin/classes/output_setting/attachment-output-setting-factory.php:56
|
||||
msgid "Page Content"
|
||||
msgstr "Seiteninhalt"
|
||||
|
||||
#: admin/classes/output_setting/attachment-output-setting-factory.php:61
|
||||
msgid "(thumbnail)"
|
||||
msgstr "(Miniaturbild)"
|
||||
|
||||
#: admin/classes/output_setting/attachment-output-setting-factory.php:62
|
||||
msgid "Post Attachment"
|
||||
msgstr "Beitraganhang"
|
||||
|
||||
#: admin/classes/result_builder/result-builder-controller.php:36
|
||||
msgid "Attachment not found"
|
||||
msgstr "Anhang nicht gefunden"
|
||||
|
||||
#: admin/settings_page/elements/validators/email-validator.php:9
|
||||
msgid "No valid Email"
|
||||
msgstr "keine gültige E-Mail"
|
||||
|
||||
#: admin/settings_page/elements/validators/file-validator.php:9
|
||||
msgid "The entered data is no valid attachment id"
|
||||
msgstr "keine gültige Anhangs-Id"
|
||||
|
||||
#: admin/settings_page/elements/validators/number-validator.php:9
|
||||
msgid "The entered data is not valid - just numbers"
|
||||
msgstr "Daten sind nicht gültig - nur Zahlen"
|
||||
|
||||
#: admin/settings_page/elements/validators/string-validator.php:12
|
||||
msgid "The entered data is not valid - just text"
|
||||
msgstr "Daten sind nicht gültig - nur Text"
|
||||
|
||||
#: admin/settings_page/pages/attachment_usage_page/options.php:8
|
||||
msgid "Attachment Usage Settings"
|
||||
msgstr "Attachment Usage Einstellungen"
|
||||
|
||||
#: admin/settings_page/pages/attachment_usage_page/page_elements.php:15
|
||||
msgid ""
|
||||
"On this page you can modify the appearance and the way how the plugin does "
|
||||
"the lookup. The relevant pages (media upload pages) are referred as:<br> <a "
|
||||
"href=\"%1$s\" target=\"_blank\">Media Grid</a> & <a href=\"%2$s\" target="
|
||||
"\"_blank\">Media List</a>"
|
||||
msgstr ""
|
||||
"Auf dieser Seite kann man die Erscheinung und die Art wie das Plugin nach "
|
||||
"Daten sucht bearbeiten. Die relevanten Seiten (Medienübersichtsseiten) "
|
||||
"werden folgendermaßen bezeichnet: <br> <a href=\"%1$s\" target=\"_blank"
|
||||
"\">Medien-Grid</a> & <a href=\"%2$s\" target=\"_blank\">Medien-Liste</a>"
|
||||
|
||||
#: admin/settings_page/pages/attachment_usage_page/page_elements.php:25
|
||||
msgid "General Settings"
|
||||
msgstr "Generelle Einstellungen"
|
||||
|
||||
#: admin/settings_page/pages/attachment_usage_page/page_elements.php:29
|
||||
msgid ""
|
||||
"This section provides general settings, which impacts only the appearance of "
|
||||
"the usage status."
|
||||
msgstr ""
|
||||
"Dieser Abschnitt bietet generelle Einstellungen, welche lediglich die "
|
||||
"Erscheinungsweise des Plugins verändert."
|
||||
|
||||
#: admin/settings_page/pages/attachment_usage_page/page_elements.php:38
|
||||
msgid "Performance Settings"
|
||||
msgstr "Performance Einstellungen"
|
||||
|
||||
#: admin/settings_page/pages/attachment_usage_page/page_elements.php:42
|
||||
msgid ""
|
||||
"This section provides settings for performance, which might have a "
|
||||
"significant impact on the loading time of the media upload pages.</br> If "
|
||||
"you have a rather small site (little number of pages, a few attachments) you "
|
||||
"will not notice a huge difference by switching between the options."
|
||||
msgstr ""
|
||||
"Dieser Abschnitt bietet Performance-Einstellungen, welche sich "
|
||||
"möglicherweise spürbar auf die Ladezeit der Medienbibliothek auf der \"Media "
|
||||
"Upload\" Seite ausüben kann.</br>Falls eine eher kleine Website (geringe "
|
||||
"Anzahl von Seiten, wenig hochgeladen Anhänge) vorhanden ist, werden die "
|
||||
"Änderung kaum spürbar sein."
|
||||
|
||||
#: admin/settings_page/pages/attachment_usage_page/page_elements.php:56
|
||||
msgid "Display Attachment Usage Color"
|
||||
msgstr "Farbanzeige für Anhang-Verwendung"
|
||||
|
||||
#: admin/settings_page/pages/attachment_usage_page/page_elements.php:62
|
||||
msgid ""
|
||||
"By enabling this option, the media grid items will have a colored border "
|
||||
"depending on their usage. Red implies nothing found, whereas green shows an "
|
||||
"usage"
|
||||
msgstr ""
|
||||
"Nach Aktivierung erhalten die Kacheln eine farbige Umrandung in Abhängigkeit "
|
||||
"ihrer Verwendung. Rot steht für nicht gefunden, wohingegen Grün eine "
|
||||
"Verwendung signalisiert."
|
||||
|
||||
#: admin/settings_page/pages/attachment_usage_page/page_elements.php:69
|
||||
msgid "Display color"
|
||||
msgstr "Farbe anzeigen"
|
||||
|
||||
#: admin/settings_page/pages/attachment_usage_page/page_elements.php:70
|
||||
msgid "Hide color"
|
||||
msgstr "Farbe nicht anzeigen"
|
||||
|
||||
#: admin/settings_page/pages/attachment_usage_page/page_elements.php:78
|
||||
msgid "Filter attachment list by usage"
|
||||
msgstr "Anhänge nach Verwendung sortieren"
|
||||
|
||||
#: admin/settings_page/pages/attachment_usage_page/page_elements.php:84
|
||||
msgid ""
|
||||
"By enabling this option, the media list view will contain a sortable column, "
|
||||
"which allows to sort the attachments by their usage status (found/not-"
|
||||
"found). This can be helpful to get an overview about not used attachments.</"
|
||||
"br> Furthermore it is important to note that by enabling this option the "
|
||||
"process of saving the relevant information changes and this can lead to "
|
||||
"longer loading times on the media upload pages depending on the overall "
|
||||
"amount of attachments and size of the website."
|
||||
msgstr ""
|
||||
"Nach Aktivierung enthält die Medien-Liste eine sortierbare Spalte, welche es "
|
||||
"ermöglicht Anhänge nach deren Verwendung (gefunden/nicht gefunden) zu "
|
||||
"sortieren. Dies kann hilfreich sein um einen Überblick über nicht verwendete "
|
||||
"Anhänge zu erhalten. </br> Zusätzlich ist es wichtig anzumerken, dass durch "
|
||||
"Verwendung dieser Option sich der Prozess wie Daten in der Datenbank "
|
||||
"gespeichert werden verändert und dies unter Umständen zu längeren Ladezeiten "
|
||||
"auf der Medienübersichtsseite führen kann. Dies ist auch von der Anzahl der "
|
||||
"Anhänge und der Größe der Website abhängig."
|
||||
|
||||
#: admin/settings_page/pages/attachment_usage_page/page_elements.php:96
|
||||
msgid "Make media column sortable"
|
||||
msgstr "Medienspalte sortierbar machen"
|
||||
|
||||
#: admin/settings_page/pages/attachment_usage_page/page_elements.php:97
|
||||
msgid "Do not make media column sortable"
|
||||
msgstr "Medienspalte nicht sortierbar machen"
|
||||
|
||||
#: admin/settings_page/pages/attachment_usage_page/page_elements.php:105
|
||||
msgid "Sync Attachment Usage on media upload site"
|
||||
msgstr "Synchronisierung der Anhang-Verwendung auf Medienübersichtsseite"
|
||||
|
||||
#: admin/settings_page/pages/attachment_usage_page/page_elements.php:111
|
||||
msgid ""
|
||||
"By enabling this option, the attachment relevant data will be fetched as "
|
||||
"soon as the media upload pages is opened. By disabling this option, a button "
|
||||
"on the page will trigger the lookup process when clicked."
|
||||
msgstr ""
|
||||
"Nach Aktivierung werden die Verwendungen der Anhänge beim Laden der "
|
||||
"Medienübersichtsseite aktualisiert. Nach Deaktivierung wird ein Button für "
|
||||
"die Aktualisierung auf der Medienübersichtsseite angezeigt."
|
||||
|
||||
#: admin/settings_page/pages/attachment_usage_page/page_elements.php:119
|
||||
msgid "Auto-sync attachments usage on page visit"
|
||||
msgstr ""
|
||||
"automatische Synchronisierung der Anhänge beim Aufruf der "
|
||||
"Medienübersichtsseite"
|
||||
|
||||
#: admin/settings_page/pages/attachment_usage_page/page_elements.php:120
|
||||
msgid "Do not auto-sync attachments usage"
|
||||
msgstr ""
|
||||
"keine automatische Synchronisierung der Anhänge beim Aufruf der "
|
||||
"Medienübersichtsseite"
|
||||
|
||||
#: admin/settings_page/setting-string-helper.php:8
|
||||
msgid "Field \"%s\" is required"
|
||||
msgstr "Feld \"%s\" ist verpflichtend"
|
||||
|
||||
#: admin/settings_page/setting-string-helper.php:9
|
||||
msgid "Do not change value of field \"%s\""
|
||||
msgstr "ändere nicht den Wert von Feld \"%s\""
|
||||
|
||||
#: admin/settings_page/setting-string-helper.php:19
|
||||
msgid "Field is required"
|
||||
msgstr "Feld ist verpflichtend"
|
||||
|
||||
#: admin/settings_page/setting-string-helper.php:20
|
||||
msgid "Do not change value of field"
|
||||
msgstr "Ändere nicht den Wert des Feldes"
|
||||
|
||||
#: admin/settings_page/templates/pages/menu_page.php:16
|
||||
#: admin/settings_page/templates/pages/tabbed_menu_page.php:31
|
||||
msgid "Fields marked with * are required"
|
||||
msgstr "Felder mit einem * sind verpflichtend"
|
||||
|
||||
#: admin/settings_page/templates/pages/menu_page.php:19
|
||||
msgid "Save Settings"
|
||||
msgstr "Einstellungen speichen"
|
||||
|
||||
#: admin/settings_page/templates/settings/fields/file.php:7
|
||||
msgid "Upload File"
|
||||
msgstr "Datei hochladen"
|
||||
|
||||
#: admin/settings_page/templates/settings/fields/file.php:14
|
||||
msgid "Remove File"
|
||||
msgstr "Datei entfernen"
|
||||
|
||||
#: admin/settings_page/templates/settings/fields/image.php:8
|
||||
msgid "Upload Image"
|
||||
msgstr "Bild hochladen"
|
||||
|
||||
#: admin/settings_page/templates/settings/fields/image.php:11
|
||||
msgid "Remove Image"
|
||||
msgstr "Bild entfernen"
|
||||
|
||||
#: admin/js/attachment-usage-media-frame.js:19
|
||||
#: admin/js/attachment-usage-media-frame.js:25
|
||||
msgid "Choose Attachment"
|
||||
msgstr "Anhang entfernen"
|
||||
@@ -0,0 +1,94 @@
|
||||
# Copyright (C) 2020 AWSM Innovations
|
||||
# This file is distributed under the same license as the Auto Delete Applications - Add-on for WP Job Openings plugin.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Auto Delete Applications - Add-on for WP Job Openings 1.0.0\n"
|
||||
"Report-Msgid-Bugs-To: https://awsm.in/support\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Awsm Innovations <hello@awsm.in>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"POT-Creation-Date: 2020-08-28T17:05:59+00:00\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"X-Generator: WP-CLI 2.4.0\n"
|
||||
"X-Domain: auto-delete-wp-job-openings\n"
|
||||
|
||||
#. Plugin Name of the plugin
|
||||
#: auto-delete.php:143
|
||||
msgid "Auto Delete Applications - Add-on for WP Job Openings"
|
||||
msgstr ""
|
||||
|
||||
#. Plugin URI of the plugin
|
||||
msgid "https://wpjobopenings.com/"
|
||||
msgstr ""
|
||||
|
||||
#. Description of the plugin
|
||||
msgid "This is an add-on for WP Job Openings Plugin, which will let you delete the received applications periodically."
|
||||
msgstr ""
|
||||
|
||||
#. Author of the plugin
|
||||
msgid "AWSM Innovations"
|
||||
msgstr ""
|
||||
|
||||
#. Author URI of the plugin
|
||||
msgid "https://awsm.in/"
|
||||
msgstr ""
|
||||
|
||||
#: auto-delete.php:110
|
||||
msgid "Activate"
|
||||
msgstr ""
|
||||
|
||||
#: auto-delete.php:120
|
||||
msgid "Install"
|
||||
msgstr ""
|
||||
|
||||
#: auto-delete.php:127
|
||||
msgid "Update"
|
||||
msgstr ""
|
||||
|
||||
#. translators: %1$s: main plugin, %2$s: current plugin, %3$s: plugin activation link, %4$s: line break
|
||||
#: auto-delete.php:146
|
||||
msgid "The plugin %2$s needs the plugin %1$s active. %4$s Please %3$s %1$s"
|
||||
msgstr ""
|
||||
|
||||
#. translators: %1$s: main plugin, %2$s: current plugin, %3$s: minimum required version of the main plugin, %4$s: plugin updation link
|
||||
#: auto-delete.php:149
|
||||
msgid "%2$s plugin requires %1$s version %3$s. Please %4$s %1$s plugin to the latest version."
|
||||
msgstr ""
|
||||
|
||||
#: auto-delete.php:165
|
||||
msgid "Auto delete applications "
|
||||
msgstr ""
|
||||
|
||||
#: auto-delete.php:168
|
||||
msgid "CAUTION: Checking this option will delete applications after the selected period from the date of application. (For example, if you configure the option for 6 months, all the applications you have received before 6 months will be deleted immediately and every application that completes 6 months will be deleted from next day onwards automatically)."
|
||||
msgstr ""
|
||||
|
||||
#: inc/remove-applications.php:5
|
||||
msgid "Day(s)"
|
||||
msgstr ""
|
||||
|
||||
#: inc/remove-applications.php:6
|
||||
msgid "Month(s)"
|
||||
msgstr ""
|
||||
|
||||
#: inc/remove-applications.php:7
|
||||
msgid "Year(s)"
|
||||
msgstr ""
|
||||
|
||||
#: inc/remove-applications.php:15
|
||||
msgid "Enable auto delete applications"
|
||||
msgstr ""
|
||||
|
||||
#: inc/remove-applications.php:23
|
||||
msgid "After"
|
||||
msgstr ""
|
||||
|
||||
#: inc/remove-applications.php:46
|
||||
msgid "Enable force delete"
|
||||
msgstr ""
|
||||
|
||||
#: inc/remove-applications.php:48
|
||||
msgid "Whether to force delete applications or move it to trash."
|
||||
msgstr ""
|
||||
@@ -0,0 +1,3 @@
|
||||
Version 1.0
|
||||
- First Release
|
||||
- A new version of Automatically add product to cart plug-in.
|
||||
7
spec/fixtures/dynamic_finders/plugin_version/badgeos-edd-integration/change_log/CHANGELOG.md
vendored
Normal file
7
spec/fixtures/dynamic_finders/plugin_version/badgeos-edd-integration/change_log/CHANGELOG.md
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
# Changelog
|
||||
|
||||
## 1.1
|
||||
- Fix: Resolve conflict with BadgeOS Community add-on
|
||||
|
||||
## 1.0
|
||||
- Initial
|
||||
@@ -0,0 +1,9 @@
|
||||
# Changelog
|
||||
|
||||
## 1.0
|
||||
- Initial
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
# Changelog
|
||||
|
||||
## 1.3
|
||||
- New: Removed OB features
|
||||
|
||||
## 1.2
|
||||
- New: Added option to allow only embed or social share on front-end
|
||||
- New: Made the popup compatible with badgeOS Congratulation add-on popup
|
||||
- Fix: UI Tweaks
|
||||
|
||||
## 1.1
|
||||
- New: Option to display social sharing popup on badge award
|
||||
- New: Option to display social sharing option with BadgeOS earned achievement shortcode
|
||||
- New: Option to share badges to social media from front-end
|
||||
- Fix: Fixed email image issue
|
||||
- Fix: string translation issues in email
|
||||
|
||||
## 1.0
|
||||
- Initial
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
3
spec/fixtures/dynamic_finders/plugin_version/badgeos-rest-api-addon/change_log/CHANGELOG.md
vendored
Normal file
3
spec/fixtures/dynamic_finders/plugin_version/badgeos-rest-api-addon/change_log/CHANGELOG.md
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
# Changelog
|
||||
## 1.0
|
||||
- Initial
|
||||
@@ -0,0 +1,344 @@
|
||||
# Copyright (C) 2020 Barn2 Plugins
|
||||
# This file is distributed under the same license as the Block for Woo Product Table plugin.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Block for Woo Product Table 1.0.0\n"
|
||||
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/block-for-woo-product-table\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: 2020-05-21T12:32:42+00:00\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"X-Generator: WP-CLI 2.3.0\n"
|
||||
"X-Domain: block-for-woo-product-table\n"
|
||||
|
||||
#. Plugin Name of the plugin
|
||||
msgid "Block for Woo Product Table"
|
||||
msgstr ""
|
||||
|
||||
#. Plugin URI of the plugin
|
||||
msgid "https://barn2.co.uk/wordpress-plugins/block-for-woo-product-table/"
|
||||
msgstr ""
|
||||
|
||||
#. Description of the plugin
|
||||
msgid "Adds an editor block to the WooCommerce Product Table plugin by Barn2, making it quick and easy to create product tables with the block editor."
|
||||
msgstr ""
|
||||
|
||||
#. Author of the plugin
|
||||
msgid "Barn2 Plugins"
|
||||
msgstr ""
|
||||
|
||||
#. Author URI of the plugin
|
||||
msgid "https://barn2.co.uk"
|
||||
msgstr ""
|
||||
|
||||
#. translators: %s is the plugin name
|
||||
#: src/class-block.php:120
|
||||
msgid "Warning! This block is an add-on for the %s plugin, which is not currently installed. Please install the plugin before continuing."
|
||||
msgstr ""
|
||||
|
||||
#. translators: %s is the plugin name
|
||||
#: src/class-block.php:121
|
||||
#: src/class-block.php:134
|
||||
#: assets/js/editor.js:41
|
||||
msgid "WooCommerce Product Table"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-block.php:133
|
||||
msgid "Warning! This block requires WooCommerce to function."
|
||||
msgstr ""
|
||||
|
||||
#: src/class-block.php:208
|
||||
msgid "SKU"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-block.php:209
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-block.php:210
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-block.php:211
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-block.php:212
|
||||
msgid "Short Description"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-block.php:213
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-block.php:214
|
||||
msgid "Categories"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-block.php:215
|
||||
msgid "Tags"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-block.php:216
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-block.php:217
|
||||
msgid "Reviews"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-block.php:218
|
||||
msgid "Stock"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-block.php:219
|
||||
msgid "Weight"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-block.php:220
|
||||
msgid "Dimensions"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-block.php:221
|
||||
msgid "Price"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-block.php:222
|
||||
msgid "Add to Cart"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-block.php:223
|
||||
#: assets/js/settings-panel.js:50
|
||||
msgid "Button"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-block.php:225
|
||||
msgid "Product Attribute"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-block.php:228
|
||||
msgid "Custom Field Value"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-block.php:228
|
||||
msgid "Enter a customer meta key"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-block.php:229
|
||||
msgid "Custom Taxonomy"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-block.php:229
|
||||
msgid "Enter a taxonomy name"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-plugin.php:143
|
||||
msgid "PHP must be running on version 5.6 or above to use this plugin."
|
||||
msgstr ""
|
||||
|
||||
#: src/class-plugin.php:147
|
||||
msgid "This plugin requires WordPress 5.3 or above"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-plugin.php:151
|
||||
msgid "This plugin requires WooCommerce to be active"
|
||||
msgstr ""
|
||||
|
||||
#: src/class-plugin.php:159
|
||||
msgid "The \"Block for WooCommerce Product Table\" plugin is active but not functioning!"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/editor.js:31
|
||||
msgid "Display a searchable table listing any or all of your products."
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/editor.js:36
|
||||
msgid "Warning! This block is an add-on for the WooCommerce Product Table plugin, which is not currently installed. Please install the plugin before continuing."
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/editor.js:148
|
||||
msgid "Product Table"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/editor.js:159
|
||||
msgid "Lists products in a table view using the WooCommerce Product Table plugin. "
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/editor.js:163
|
||||
msgid "Documentation"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/editor.js:198
|
||||
msgid "You can configure additional settings in the 'Block' tab in the sidebar."
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/product-selection.js:95
|
||||
msgid "Select products"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/product-selection.js:221
|
||||
msgid "Selections"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/product-selection.js:224
|
||||
#: assets/js/table-columns.js:357
|
||||
msgid "Add"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/product-selection.js:458
|
||||
msgid "Products"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/product-selection.js:477
|
||||
#: assets/js/table-columns.js:307
|
||||
msgid "(Using global options)"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/product-selection.js:510
|
||||
msgid "Products must match all values"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/product-selection.js:559
|
||||
msgid "Select"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/product-selection.js:571
|
||||
#: assets/js/table-columns.js:235
|
||||
msgid "Done"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/product-selection.js:581
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:41
|
||||
msgid "Add to Cart Column Settings"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:46
|
||||
msgid "Add to Cart Button"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:49
|
||||
#: assets/js/settings-panel.js:73
|
||||
#: assets/js/settings-panel.js:88
|
||||
#: assets/js/settings-panel.js:118
|
||||
msgid "(Use global option)"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:51
|
||||
msgid "Checkbox"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:52
|
||||
msgid "Button and Checkbox"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:58
|
||||
msgid "How 'Add to Cart' buttons are displayed in the table. "
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:62
|
||||
#: assets/js/settings-panel.js:101
|
||||
#: assets/js/settings-panel.js:134
|
||||
msgid "Read More"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:70
|
||||
msgid "Quantities"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:74
|
||||
msgid "Show in add to cart column"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:75
|
||||
msgid "Do not show quantity selectors"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:85
|
||||
msgid "Variations"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:89
|
||||
msgid "Link to product page"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:90
|
||||
msgid "Dropdowns in add to cart column"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:91
|
||||
msgid "Separate rows in table"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:97
|
||||
msgid "How to display options for variable products. "
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:110
|
||||
msgid "Table Controls"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:115
|
||||
msgid "Product Filters"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:119
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:120
|
||||
msgid "Show based on columns in table"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:121
|
||||
msgid "Custom"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:130
|
||||
msgid "Dropdown lists to filter the table by category, tag, attribute, or custom taxonomy. "
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:149
|
||||
msgid "Custom Product Filters"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:162
|
||||
msgid "Additional Options"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:168
|
||||
msgid "You can configure additional options globally on the "
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:172
|
||||
msgid "WooCommerce Product Table settings page"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:174
|
||||
msgid ", or by adding them below with one option per line (e.g. sort_by=\"name\"). "
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:178
|
||||
msgid "See full list of options."
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/settings-panel.js:185
|
||||
msgid "Additional Shortcode Attributes"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/table-columns.js:32
|
||||
msgid "Add column"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/table-columns.js:53
|
||||
msgid "Select global attribute"
|
||||
msgstr ""
|
||||
|
||||
#: assets/js/table-columns.js:294
|
||||
msgid "Table Columns"
|
||||
msgstr ""
|
||||
25
spec/fixtures/dynamic_finders/plugin_version/blockmeister/change_log/changelog.md
vendored
Normal file
25
spec/fixtures/dynamic_finders/plugin_version/blockmeister/change_log/changelog.md
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
# Change Log
|
||||
|
||||
## [2.0.1] - 2020-09-03 ##
|
||||
|
||||
### Fixed
|
||||
- keywords taxonomy's edit capability
|
||||
|
||||
## [2.0.0] - 2020-08-20
|
||||
First public release.
|
||||
|
||||
### Fixed
|
||||
- refactored complete 1.0 code set
|
||||
|
||||
### Added
|
||||
- block settings menu item to add selected blocks to a new block pattern
|
||||
- category taxonomy
|
||||
- keyword taxonomy
|
||||
- viewport width setting
|
||||
- limit pattern building to administrators
|
||||
- admin capabilities
|
||||
- made translatable
|
||||
- Dutch translation
|
||||
|
||||
## [1.0.x] - 2020-07-10
|
||||
Private releases
|
||||
@@ -0,0 +1,179 @@
|
||||
# Copyright (C) 2020 Bluehost
|
||||
# This file is distributed under the GPL V2 or later.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Bluehost Site Migrator 1.0\n"
|
||||
"Report-Msgid-Bugs-To: "
|
||||
"https://wordpress.org/support/plugin/bluehost-site-migrator\n"
|
||||
"POT-Creation-Date: 2020-06-24 20:12:32+00:00\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"PO-Revision-Date: 2020-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"X-Generator: wp-vue-i18n 1.1.4\n"
|
||||
|
||||
#. Plugin Name of the plugin/theme
|
||||
msgid "Bluehost Site Migrator"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-admin-page.php:14
|
||||
msgid "Site Migrator"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-rest-can-we-migrate-controller.php:66
|
||||
#: includes/class-rest-manifest-controller.php:146
|
||||
#: includes/class-rest-migration-id-controller.php:59
|
||||
#: includes/class-rest-migration-package-controller.php:194
|
||||
msgid "Sorry, you are not allowed to access this endpoint."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-rest-manifest-controller.php:126
|
||||
msgid "An error occured when delivering the migration payload."
|
||||
msgstr ""
|
||||
|
||||
#: source/components/PageCheckCompatibility.vue:5
|
||||
msgid "Let's get this truck rolling:"
|
||||
msgstr ""
|
||||
|
||||
#: source/components/PageCheckCompatibility.vue:7
|
||||
msgid "First we'll check to see if your website is compatible."
|
||||
msgstr ""
|
||||
|
||||
#: source/components/PageCheckCompatibility.vue:8
|
||||
msgid "If it's compatible, we'll transfer your site."
|
||||
msgstr ""
|
||||
|
||||
#: source/components/PageCheckCompatibility.vue:9
|
||||
msgid "And then send you a link for review."
|
||||
msgstr ""
|
||||
|
||||
#: source/components/PageCheckCompatibility.vue:12
|
||||
msgid "Check Compatibility"
|
||||
msgstr ""
|
||||
|
||||
#: source/components/PageCheckCompatibility.vue:62
|
||||
msgid "Checking environment..."
|
||||
msgstr ""
|
||||
|
||||
#: source/components/PageCheckCompatibility.vue:63
|
||||
msgid "Checking plugins..."
|
||||
msgstr ""
|
||||
|
||||
#: source/components/PageCheckCompatibility.vue:64
|
||||
msgid "Checking themes..."
|
||||
msgstr ""
|
||||
|
||||
#: source/components/PageCheckCompatibility.vue:65
|
||||
msgid "Checking configuration..."
|
||||
msgstr ""
|
||||
|
||||
#: source/components/PageCompatible.vue:4
|
||||
msgid "Looks like we're compatible!"
|
||||
msgstr ""
|
||||
|
||||
#: source/components/PageCompatible.vue:5
|
||||
msgid "Next, let's transfer your site."
|
||||
msgstr ""
|
||||
|
||||
#: source/components/PageCompatible.vue:7
|
||||
msgid ""
|
||||
"Please wait to make changes to your website until the transfer is "
|
||||
"completely done. For now, leave your DNS and domain the same as well."
|
||||
msgstr ""
|
||||
|
||||
#: source/components/PageCompatible.vue:9
|
||||
msgid "Start Transfer"
|
||||
msgstr ""
|
||||
|
||||
#: source/components/PageComplete.vue:6
|
||||
msgid "Welcome to the Bluehost family!"
|
||||
msgstr ""
|
||||
|
||||
#: source/components/PageComplete.vue:9
|
||||
msgid ""
|
||||
"You've transferred your website to Bluehost. Now we just need to get it set "
|
||||
"up on your Bluehost account so you can review it."
|
||||
msgstr ""
|
||||
|
||||
#: source/components/PageComplete.vue:17
|
||||
msgid "Login to Bluehost"
|
||||
msgstr ""
|
||||
|
||||
#: source/components/PageComplete.vue:21
|
||||
msgid "Don't have an account?"
|
||||
msgstr ""
|
||||
|
||||
#: source/components/PageComplete.vue:27
|
||||
msgid "Create account"
|
||||
msgstr ""
|
||||
|
||||
#: source/components/PageError.vue:5
|
||||
msgid "It looks like your site didn't transfer."
|
||||
msgstr ""
|
||||
|
||||
#: source/components/PageError.vue:8
|
||||
msgid ""
|
||||
"We might have gotten disconnected, or there could be something else going "
|
||||
"on. Let's figure it out."
|
||||
msgstr ""
|
||||
|
||||
#: source/components/PageError.vue:12
|
||||
msgid "Call us at 888-401-4678"
|
||||
msgstr ""
|
||||
|
||||
#: source/components/PageError.vue:15
|
||||
msgid "Try Again"
|
||||
msgstr ""
|
||||
|
||||
#: source/components/PageIncompatible.vue:7
|
||||
msgid "That didn't work:"
|
||||
msgstr ""
|
||||
|
||||
#: source/components/PageIncompatible.vue:8
|
||||
msgid "Let's bring in the pros."
|
||||
msgstr ""
|
||||
|
||||
#: source/components/PageIncompatible.vue:12
|
||||
msgid ""
|
||||
"This can happen if you have a multisite, alternate directory structures, or "
|
||||
"certain themes or plugins. The transfer might require some extra steps, or "
|
||||
"we might need to look at other options."
|
||||
msgstr ""
|
||||
|
||||
#: source/components/PageIncompatible.vue:15
|
||||
msgid "Give us a call at 888-401-4678."
|
||||
msgstr ""
|
||||
|
||||
#: source/components/PageTransfer.vue:4
|
||||
msgid "Transferring your website"
|
||||
msgstr ""
|
||||
|
||||
#: source/components/PageTransfer.vue:8
|
||||
msgid "Cancel Transfer"
|
||||
msgstr ""
|
||||
|
||||
#: source/components/PageTransfer.vue:32
|
||||
msgid "Preparing to generate package files..."
|
||||
msgstr ""
|
||||
|
||||
#: source/components/PageTransfer.vue:63
|
||||
msgid "Packaging %s..."
|
||||
msgstr ""
|
||||
|
||||
#. Plugin URI of the plugin/theme
|
||||
msgid "https://wordpress.org/plugins/bluehost-site-migrator"
|
||||
msgstr ""
|
||||
|
||||
#. Description of the plugin/theme
|
||||
msgid "Quickly and easily migrate your website to Bluehost."
|
||||
msgstr ""
|
||||
|
||||
#. Author of the plugin/theme
|
||||
msgid "Bluehost"
|
||||
msgstr ""
|
||||
|
||||
#. Author URI of the plugin/theme
|
||||
msgid "https://www.bluehost.com/"
|
||||
msgstr ""
|
||||
1506
spec/fixtures/dynamic_finders/plugin_version/boo-recipes/translation_file/languages/boo-recipes-de_DE.po
vendored
Normal file
1506
spec/fixtures/dynamic_finders/plugin_version/boo-recipes/translation_file/languages/boo-recipes-de_DE.po
vendored
Normal file
File diff suppressed because it is too large
Load Diff
7236
spec/fixtures/dynamic_finders/plugin_version/branda-white-labeling/translation_file/languages/ub.pot
vendored
Normal file
7236
spec/fixtures/dynamic_finders/plugin_version/branda-white-labeling/translation_file/languages/ub.pot
vendored
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,141 @@
|
||||
# Copyright (C) 2020 Marian Kanev
|
||||
# This file is distributed under the same license as the TaxiBooking Light plugin.
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: TaxiBooking Light 1.0.1\n"
|
||||
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/tblight\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: 2020-03-31 19:53+0600\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"X-Generator: Poedit 2.3\n"
|
||||
"X-Domain: tblight\n"
|
||||
|
||||
#. Plugin Name of the plugin
|
||||
msgid "TaxiBooking Light"
|
||||
msgstr ""
|
||||
|
||||
#. Plugin URI of the plugin
|
||||
#. Author URI of the plugin
|
||||
msgid "https://kanev.com/"
|
||||
msgstr ""
|
||||
|
||||
#. Description of the plugin
|
||||
msgid "Taxi Booking Light for Wordpress."
|
||||
msgstr ""
|
||||
|
||||
#. Author of the plugin
|
||||
msgid "Marian Kanev"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default.php:11
|
||||
msgid "BOOKING_FORM_NEW_ORDER_BTN_LABEL"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default.php:19
|
||||
msgid "BOOKING_FORM_FIRST_STEP_LABEL"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default.php:25 views/tblight/default_step2.php:40
|
||||
msgid "BOOKING_FORM_SECOND_STEP_LABEL"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default.php:31
|
||||
msgid "BOOKING_FORM_THIRD_STEP_LABEL"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step1.php:7
|
||||
msgid "BOOKING_FORM_SELECT_DATE_LABEL"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step1.php:25
|
||||
msgid "HRS"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step1.php:48
|
||||
msgid "MINS"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step1.php:77
|
||||
msgid "TAXI_FROM"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step1.php:83 views/tblight/default_step1.php:97
|
||||
msgid "ENTER_ADDRESS"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step1.php:91
|
||||
msgid "TAXI_TO"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step1.php:104
|
||||
msgid "VIEW_MAP_BTN_LBL"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step1.php:112
|
||||
msgid "PASSENGER_SEATS"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step1.php:127
|
||||
msgid "SUITCASE_NO"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step1.php:140
|
||||
msgid "BOOKING_FORM_RIDING_CHILD_BTN_LABEL"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step1.php:147
|
||||
msgid "BOOKING_FORM_ADDITIONAL_SEATS_HEADER"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step1.php:149
|
||||
msgid "BOOSTER_SEATS"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step1.php:150
|
||||
msgid "CHILD_SEATS"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step1.php:151
|
||||
msgid "INFANT_SEATS"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step1.php:166 views/tblight/default_step1.php:196
|
||||
msgid "SEE_PRICE"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step2.php:47 views/tblight/default_step2.php:49
|
||||
msgid "CARS_TABLE_LIST_BTN_LABEL"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step2.php:51 views/tblight/default_step2.php:53
|
||||
msgid "CARS_TABLE_GRID_BTN_LABEL"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step2.php:217 views/tblight/default_step3.php:176
|
||||
msgid "BACK_TO_PREVIOUS"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step3.php:8
|
||||
msgid "BOOKING_FORM_PASSENGER_INFORMATION_HEADER"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step3.php:10
|
||||
msgid "NAME"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step3.php:16
|
||||
msgid "EMAIL"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step3.php:22
|
||||
msgid "PHONE"
|
||||
msgstr ""
|
||||
|
||||
#: views/tblight/default_step3.php:52
|
||||
msgid "ONEPAGE_BOOKING_FOURTH_STEP_HEADER"
|
||||
msgstr ""
|
||||
6
spec/fixtures/dynamic_finders/plugin_version/capture-and-convert/change_log/CHANGELOG.md
vendored
Normal file
6
spec/fixtures/dynamic_finders/plugin_version/capture-and-convert/change_log/CHANGELOG.md
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
|
||||
## 1.4.2
|
||||
|
||||
- Added Changelog
|
||||
- Fixed bug with widgets
|
||||
- Fixed bug with Twitter auth token
|
||||
503
spec/fixtures/dynamic_finders/plugin_version/card-oracle/translation_file/languages/card-oracle.pot
vendored
Normal file
503
spec/fixtures/dynamic_finders/plugin_version/card-oracle/translation_file/languages/card-oracle.pot
vendored
Normal file
@@ -0,0 +1,503 @@
|
||||
# Copyright (C) 2020 Christopher Graham
|
||||
# This file is distributed under the same license as the Card Oracle plugin.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Card Oracle 0.5.0\n"
|
||||
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/card-oracle\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: 2020-05-01T12:01:11+01:00\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"X-Generator: WP-CLI 2.3.0\n"
|
||||
"X-Domain: card-oracle\n"
|
||||
|
||||
#. Plugin Name of the plugin
|
||||
#: admin/class-card-oracle-admin.php:67
|
||||
#: admin/class-card-oracle-admin.php:578
|
||||
#: admin/partials/card-oracle-admin-display.php:19
|
||||
msgid "Card Oracle"
|
||||
msgstr ""
|
||||
|
||||
#. Plugin URI of the plugin
|
||||
msgid "https://chillichalli.com/card-oracle"
|
||||
msgstr ""
|
||||
|
||||
#. Description of the plugin
|
||||
msgid "This plugin lets you create tarot and oracle readings using your own cards, spreads and interpretations."
|
||||
msgstr ""
|
||||
|
||||
#. Author of the plugin
|
||||
msgid "Christopher Graham"
|
||||
msgstr ""
|
||||
|
||||
#. Author URI of the plugin
|
||||
msgid "https://cdgraham.com"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:66
|
||||
msgid "Card Oracle Settings"
|
||||
msgstr ""
|
||||
|
||||
#. translators: %d is a number
|
||||
#: admin/class-card-oracle-admin.php:156
|
||||
#: admin/class-card-oracle-admin.php:160
|
||||
#: admin/class-card-oracle-admin.php:164
|
||||
#: admin/class-card-oracle-admin.php:168
|
||||
msgid "%d Total"
|
||||
msgid_plural "%d Total"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:193
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:195
|
||||
msgid "Email Options"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:230
|
||||
#: admin/class-card-oracle-admin.php:1178
|
||||
msgid "Multiple Positions for a Description"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:235
|
||||
msgid "Enabling this will allow you to select multiple Positions for a Description"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:239
|
||||
msgid "Allow users to send reading to an email address"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:247
|
||||
msgid "From email address"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:252
|
||||
msgid "The From email address used when the user sends the reading."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:253
|
||||
msgid "If blank this defaults to the Admin email address."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:257
|
||||
msgid "From email name"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:262
|
||||
msgid "The Name displayed as the From email address."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:263
|
||||
msgid "If blank this defaults to the site title."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:267
|
||||
#: admin/class-card-oracle-admin.php:277
|
||||
msgid "Text to display"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:272
|
||||
msgid "Text to display on the email form."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:273
|
||||
msgid "If blank this defaults \"Email this Reading to:\"."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:282
|
||||
msgid "Text to display after the user submits the email form."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:283
|
||||
msgid "If blank this defaults \"Your email has been sent. Please make sure to check your spam folder.\""
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:500
|
||||
#: admin/class-card-oracle-admin.php:514
|
||||
#: admin/class-card-oracle-admin.php:529
|
||||
#: admin/class-card-oracle-admin.php:544
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:580
|
||||
msgid "Card Oracle Options"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:580
|
||||
msgid "Dashboard"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:582
|
||||
msgid "Card Oracle Readings Admin"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:582
|
||||
#: admin/partials/card-oracle-admin-display.php:39
|
||||
msgid "Readings"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:584
|
||||
msgid "Card Oracle positions Admin"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:584
|
||||
#: admin/class-card-oracle-admin.php:1384
|
||||
#: admin/partials/card-oracle-admin-display.php:50
|
||||
msgid "Positions"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:586
|
||||
msgid "Card Oracle cards Admin"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:586
|
||||
#: admin/class-card-oracle-admin.php:833
|
||||
#: admin/partials/card-oracle-admin-display.php:61
|
||||
msgid "Cards"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:588
|
||||
msgid "Card Oracle Descriptions Admin"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:588
|
||||
#: admin/partials/card-oracle-admin-display.php:73
|
||||
msgid "Descriptions"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:604
|
||||
msgid "Front of Card Image"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:609
|
||||
msgid "Back of Card Image"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:614
|
||||
msgid "Previous Page"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:773
|
||||
msgid "Sorry, the maximum number of Readings has been reached."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:782
|
||||
msgid "Sorry, the maxiumum number of Positions has been reached."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:791
|
||||
msgid "Sorry, the maxiumum number of Cards has been reached."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:807
|
||||
msgid "Please consider upgrading to our premium version."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:810
|
||||
msgid "You can purchase it here at "
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:812
|
||||
msgid "Maximum reached"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:834
|
||||
#: admin/class-card-oracle-admin.php:1047
|
||||
#: admin/class-card-oracle-admin.php:1363
|
||||
msgid "Card"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:835
|
||||
#: admin/class-card-oracle-admin.php:836
|
||||
msgid "Add New Card"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:837
|
||||
msgid "Edit Card"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:838
|
||||
msgid "New Card"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:839
|
||||
msgid "All Cards"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:840
|
||||
msgid "View Card"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:841
|
||||
msgid "Search Cards"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:842
|
||||
msgid "Card Image"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:843
|
||||
msgid "Add Card Image"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:867
|
||||
msgid "Card Descriptions"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:868
|
||||
msgid "Card Description"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:869
|
||||
#: admin/class-card-oracle-admin.php:870
|
||||
msgid "Add New Card Description"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:871
|
||||
msgid "Edit Card Description"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:872
|
||||
msgid "New Card Description"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:873
|
||||
msgid "All Card Descriptions"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:874
|
||||
msgid "View Card Description"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:875
|
||||
msgid "Search Card Descriptions"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:876
|
||||
msgid "Card Description Image"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:877
|
||||
msgid "Add Card Description Image"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:901
|
||||
msgid "Card Readings"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:902
|
||||
#: admin/class-card-oracle-admin.php:1010
|
||||
#: admin/class-card-oracle-admin.php:1108
|
||||
#: admin/class-card-oracle-admin.php:1401
|
||||
msgid "Card Reading"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:903
|
||||
#: admin/class-card-oracle-admin.php:904
|
||||
msgid "Add New Card Reading"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:905
|
||||
msgid "Edit Card Reading"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:906
|
||||
msgid "New Card Reading"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:907
|
||||
msgid "All Card Readings"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:908
|
||||
msgid "View Card Reading"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:909
|
||||
msgid "Search Card Readings"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:910
|
||||
msgid "Card Back"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:911
|
||||
msgid "Add Card Back"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:935
|
||||
msgid "Card Positions"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:936
|
||||
msgid "Card Position"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:937
|
||||
#: admin/class-card-oracle-admin.php:938
|
||||
msgid "Add New Card Position"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:939
|
||||
msgid "Edit Card Position"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:940
|
||||
msgid "New Card Position"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:941
|
||||
msgid "All Card Positions"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:942
|
||||
msgid "View Card Position"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:943
|
||||
msgid "Search Card Positions"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:944
|
||||
msgid "Card Position Image"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:945
|
||||
msgid "Add Card Position Image"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:976
|
||||
msgid "Allow multiple Positions for a Card Description."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:1051
|
||||
#: admin/class-card-oracle-admin.php:1085
|
||||
msgid "(no card)"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:1059
|
||||
msgid "Description Position"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:1126
|
||||
msgid "Card Order"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:1186
|
||||
msgid "Display Question Input Box"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:1192
|
||||
msgid "Enabling this will display an input field to the users to enter a question."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:1195
|
||||
msgid "Text for question input box"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:1200
|
||||
msgid "Avoid using apostrophes in the text if you plan on allowing users to email the readings."
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:1204
|
||||
msgid "Footer to be displayed on daily and random cards"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:1345
|
||||
msgid "Associated Reading(s)"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:1346
|
||||
msgid "Number of Descriptions"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:1347
|
||||
#: admin/class-card-oracle-admin.php:1367
|
||||
#: admin/class-card-oracle-admin.php:1385
|
||||
#: admin/class-card-oracle-admin.php:1403
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:1365
|
||||
#: admin/class-card-oracle-admin.php:1402
|
||||
msgid "Position"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:1366
|
||||
msgid "Position Number"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-card-oracle-admin.php:1383
|
||||
msgid "Shortcode"
|
||||
msgstr ""
|
||||
|
||||
#: admin/partials/card-oracle-admin-display.php:84
|
||||
msgid "Reading Statistics"
|
||||
msgstr ""
|
||||
|
||||
#: admin/partials/card-oracle-admin-display.php:88
|
||||
msgid "Reading Shortcodes"
|
||||
msgstr ""
|
||||
|
||||
#: admin/partials/card-oracle-admin-display.php:89
|
||||
msgid "Copy to clipboard"
|
||||
msgstr ""
|
||||
|
||||
#. translators: %d is a number
|
||||
#: admin/partials/card-oracle-admin-display.php:93
|
||||
msgid "%d position"
|
||||
msgid_plural "%d positions"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#. translators: %d is a number
|
||||
#: admin/partials/card-oracle-admin-display.php:96
|
||||
msgid "%d card"
|
||||
msgid_plural "%d cards"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#. translators: %d is a number
|
||||
#: admin/partials/card-oracle-admin-display.php:99
|
||||
msgid "%d description"
|
||||
msgid_plural "%d descriptions"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: admin/partials/card-oracle-admin-display.php:125
|
||||
#: admin/partials/card-oracle-admin-display.php:135
|
||||
#: admin/partials/card-oracle-admin-display.php:145
|
||||
msgid "Click to copy shortcode"
|
||||
msgstr ""
|
||||
|
||||
#: admin/partials/card-oracle-admin-display.php:130
|
||||
msgid "Daily Card Shortcode"
|
||||
msgstr ""
|
||||
|
||||
#: admin/partials/card-oracle-admin-display.php:140
|
||||
msgid "Random Card Shortcode"
|
||||
msgstr ""
|
||||
|
||||
#: public/class-card-oracle-public.php:145
|
||||
msgid "Your Reading"
|
||||
msgstr ""
|
||||
|
||||
#: public/class-card-oracle-public.php:165
|
||||
msgid "Your email has been sent. Please make sure to check your spam folder."
|
||||
msgstr ""
|
||||
|
||||
#. translators: %d is a number
|
||||
#: public/class-card-oracle-public.php:324
|
||||
msgid "Next select %d card."
|
||||
msgid_plural "Next select %d cards."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: public/class-card-oracle-public.php:350
|
||||
msgid "Email this Reading to:"
|
||||
msgstr ""
|
||||
@@ -0,0 +1,40 @@
|
||||
# Copyright (C) 2020 Rimes Gold
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: CF7 File Download 1.0\n"
|
||||
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/cf7-file-download\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"POT-Creation-Date: 2020-07-24 11:14+0300\n"
|
||||
"PO-Revision-Date: 2020-07-25 10:18+0300\n"
|
||||
"X-Generator: Poedit 1.8.7.1\n"
|
||||
"X-Domain: cf-file-download\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"Language: en\n"
|
||||
|
||||
#: classes/class-cf7-file-download.php:34
|
||||
#: classes/class-cf7-file-download.php:35
|
||||
msgid "CF7 File Download"
|
||||
msgstr ""
|
||||
|
||||
#: classes/class-cf7-file-download.php:53
|
||||
msgid "File Download Settings"
|
||||
msgstr ""
|
||||
|
||||
#: classes/class-cf7-file-download.php:59
|
||||
msgid "Download Settings"
|
||||
msgstr ""
|
||||
|
||||
#: classes/class-cf7-file-download.php:78
|
||||
msgid "Contact Form ID"
|
||||
msgstr ""
|
||||
|
||||
#: classes/class-cf7-file-download.php:87
|
||||
msgid "Attachment URL"
|
||||
msgstr ""
|
||||
|
||||
#: classes/class-cf7-file-download.php:95
|
||||
msgid "Downloaded File Name"
|
||||
msgstr ""
|
||||
685
spec/fixtures/dynamic_finders/plugin_version/chatster/translation_file/languages/chatster.pot
vendored
Normal file
685
spec/fixtures/dynamic_finders/plugin_version/chatster/translation_file/languages/chatster.pot
vendored
Normal file
@@ -0,0 +1,685 @@
|
||||
# Copyright (C) 2020 Frankspress
|
||||
# This file is distributed under the GPLv2 or later.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: chatster 1.0.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: yyyy-mm-dd hh:mm+0000\n"
|
||||
"PO-Revision-Date: 2020-07-18 14:46-0500\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
|
||||
"X-Generator: Eazy Po 0.9.5.3\n"
|
||||
|
||||
#: includes/api/class.request-all.php:207
|
||||
msgid "Testing Chatster! Your email setup works! "
|
||||
msgstr ""
|
||||
|
||||
#: includes/api/class.request-all.php:209
|
||||
msgid "Mock request message.. Customer original message will be shown here!"
|
||||
msgstr ""
|
||||
|
||||
#: includes/api/class.request-all.php:210
|
||||
msgid "This is a test email sent by"
|
||||
msgstr ""
|
||||
|
||||
#: includes/api/class.request-all.php:211
|
||||
msgid "The plugin is working. For more testing, please read the documentation."
|
||||
msgstr ""
|
||||
|
||||
#: includes/api/class.request-all.php:212
|
||||
msgid "Test your website link here: "
|
||||
msgstr ""
|
||||
|
||||
#: includes/api/class.request-all.php:213
|
||||
msgid "Thank you."
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/action.global.php:17 views/admin/function.header.php:17
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class.add-admin-menu.php:27
|
||||
msgid "Started"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class.add-admin-menu.php:28
|
||||
msgid "more than one hour ago"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class.add-admin-menu.php:29
|
||||
msgid "hour ago"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class.add-admin-menu.php:30
|
||||
msgid "minutes ago"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class.add-admin-menu.php:31
|
||||
msgid "minute ago"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class.add-admin-menu.php:32
|
||||
msgid "just now"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class.add-admin-menu.php:33
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class.add-admin-menu.php:34
|
||||
#: views/admin/function.request.php:90
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class.add-admin-menu.php:35
|
||||
msgid "Reset settings?"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class.add-admin-menu.php:36
|
||||
msgid "Reset All settings?"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class.add-admin-menu.php:37
|
||||
msgid "Disconnect"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class.add-admin-menu.php:38
|
||||
msgid "Replied by admin"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class.add-admin-menu.php:102
|
||||
msgid "Chatster"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class.add-admin-menu.php:103
|
||||
msgid "Online"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class.add-chat-public.php:118
|
||||
msgid "open"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class.cron-manager.php:30
|
||||
msgid "Once every 3 minutes"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class.cron-manager.php:59
|
||||
msgid "New Request received on"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class.cron-manager.php:60
|
||||
msgid "Hello"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class.cron-manager.php:61
|
||||
msgid "You have received "
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class.cron-manager.php:62
|
||||
#, php-format
|
||||
msgid "%s new request"
|
||||
msgid_plural "%s new requests"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: includes/core/class.cron-manager.php:63
|
||||
msgid "on"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class.cron-manager.php:64
|
||||
msgid "To login to your website go here:"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class.cron-manager.php:65
|
||||
msgid "Thank you for using Chatster!"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class.emailer.php:27
|
||||
msgid "Your original message: "
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class.emailer.php:55
|
||||
msgid "RE:"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class.notices.php:15
|
||||
msgid "Thank you and Welcome to"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class.notices.php:15
|
||||
msgid "Chatster!"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class.notices.php:17
|
||||
msgid "Testing:"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class.notices.php:18
|
||||
msgid ""
|
||||
"- Please use only <b>incognito windows</b> or <b>second browser</b> to test "
|
||||
"chat functionalities.<br>"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class.notices.php:19
|
||||
msgid "- API functionality <b>must be enabled!</b><br>"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class.notices.php:20
|
||||
msgid ""
|
||||
"- Email delivery only works if you have a <b>transactional email service</b>."
|
||||
"<br>"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class.notices.php:21
|
||||
msgid ""
|
||||
"- Go to <i>Settings->Request/Response->Test Functionality</i> and verify "
|
||||
"email delivery."
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class.notices.php:22
|
||||
msgid "Suggestions:"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class.notices.php:23
|
||||
msgid ""
|
||||
"- For any questions or suggestions please visit the <a target=\"_blank\" "
|
||||
"href=\""
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-bot-qa.php:32
|
||||
msgid "Bot Q & A"
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-bot-qa.php:43
|
||||
msgid "Add a question or questions"
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-bot-qa.php:44
|
||||
msgid "What are your opening hours? What time do you open?"
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-bot-qa.php:46
|
||||
msgid ""
|
||||
"The Bot will look for similarities between saved questions and user question."
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-bot-qa.php:55
|
||||
msgid "Bot Response to the question or questions"
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-bot-qa.php:56
|
||||
msgid "Our stores are open from 7 a.m. to 8:30 p.m."
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-bot-qa.php:58
|
||||
msgid "This answer will be given when a similar question is asked."
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-bot.php:27
|
||||
msgid "Hi!! How can I help you today?"
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-bot.php:28
|
||||
msgid "If you have any other questions please feel free to ask."
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-bot.php:29
|
||||
msgid ""
|
||||
"Sorry, I couldn't find what you're looking for..\n"
|
||||
" Please try again"
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-bot.php:79
|
||||
msgid "Give your bot your favorite name."
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-bot.php:89
|
||||
msgid "Give your bot a friendly image"
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-bot.php:99
|
||||
msgid ""
|
||||
"Bot introductory sentece used when the chat is initially displayed.\n"
|
||||
" <br><span class=\"ch-field-descr-extra\">(Each "
|
||||
"line break is shown as separate message)</span>"
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-bot.php:110
|
||||
msgid ""
|
||||
"The bot sentece that follows a successfull reply.\n"
|
||||
" <br><span class=\"ch-field-descr-extra\">"
|
||||
"(Each line break is shown as separate message)</span>"
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-bot.php:121
|
||||
msgid ""
|
||||
"When no answer is found the bot will use this sentence.\n"
|
||||
" <br><span class=\"ch-field-descr-extra\">"
|
||||
"(Each line break is shown as separate message)</span>"
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-bot.php:132
|
||||
msgid ""
|
||||
"BOT will search full text in both questions and answers. <br>When not "
|
||||
"enabled it will only search among the saved questions."
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-bot.php:155
|
||||
msgid "BOT settings have been reset!"
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-bot.php:171
|
||||
#: includes/options/class.add-options-bot.php:184
|
||||
#: includes/options/class.add-options-chat.php:279
|
||||
#, php-format
|
||||
msgid "A field text exceeds %d character"
|
||||
msgid_plural "A field text exceeds %d characters"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: includes/options/class.add-options-chat.php:24
|
||||
msgid "Chat or get in touch!"
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-chat.php:25
|
||||
msgid "Contact Us"
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-chat.php:47
|
||||
#: includes/options/class.add-options-chat.php:48
|
||||
#: includes/options/class.add-options-chat.php:49
|
||||
#: includes/options/class.add-options-chat.php:50
|
||||
#: includes/options/class.add-options-chat.php:51
|
||||
msgid "Customers"
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-chat.php:57
|
||||
#: includes/options/class.add-options-chat.php:58
|
||||
#: includes/options/class.add-options-chat.php:59
|
||||
#: includes/options/class.add-options-chat.php:60
|
||||
#: includes/options/class.add-options-chat.php:66
|
||||
#: includes/options/class.add-options-chat.php:67
|
||||
#: includes/options/class.add-options-chat.php:68
|
||||
msgid "Minutes"
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-chat.php:81
|
||||
msgid "Small Text"
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-chat.php:82
|
||||
msgid "Medium Text"
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-chat.php:83
|
||||
msgid "Large Text"
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-chat.php:88
|
||||
msgid "Left Side of the screen"
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-chat.php:89
|
||||
msgid "Right Side of the screen"
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-chat.php:218
|
||||
msgid ""
|
||||
"Will automatically switch the current admin to offline mode when "
|
||||
"\"conversation\" screen is not open.\n"
|
||||
" <br/>You can choose how long before that happens."
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-chat.php:229
|
||||
msgid ""
|
||||
"Automatically disconnects conversations that have been inactive <br>for a "
|
||||
"selected amount of time."
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-chat.php:263
|
||||
msgid "Chatster Chat settings have been reset!"
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-chat.php:290
|
||||
msgid "Wrong Hex color"
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-chat.php:302
|
||||
msgid "Wrong Volume Setting"
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-request.php:39
|
||||
msgid "Chatster Request Settings"
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-request.php:45
|
||||
msgid "Test Functionality"
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-request.php:56
|
||||
msgid "Email Header Image"
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-request.php:58
|
||||
msgid ""
|
||||
"Your response email can display an header image.<br>\n"
|
||||
" Go to Media -> Library -> Add New, then copy "
|
||||
"and paste the link in this field.<br>\n"
|
||||
" (Optimal aspect ratio: 600 X 230 px.)"
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-request.php:71
|
||||
msgid "Enable Reply Forward"
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-request.php:84
|
||||
msgid "Replies will be sent to: your@email.com"
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-request.php:85
|
||||
msgid ""
|
||||
"If your WordPress website sends email from an email address you don't check "
|
||||
"daily, <br>\n"
|
||||
" with this option you can redirect customer "
|
||||
"replies to an account of your choice.<br><br>\n"
|
||||
" Customers replying your initial response email "
|
||||
"sent from the <i>\"Received Messages\"</i> section <br>\n"
|
||||
" and all future back and forth emails will be "
|
||||
"routed to this email address instead."
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-request.php:98
|
||||
msgid "Enable Email Alert"
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-request.php:110
|
||||
msgid "Alerts sent to: your@email.com"
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-request.php:111
|
||||
msgid ""
|
||||
"Receive an email alert when a new request is submitted.<br>\n"
|
||||
" (Wordpress will check for new requests every "
|
||||
"hour.)"
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-request.php:122
|
||||
msgid "Enter an Email Address."
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-request.php:124
|
||||
msgid "Ex: your@email.com"
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-request.php:125
|
||||
msgid ""
|
||||
"You will receive a mock email to check functionalities.<br>\n"
|
||||
" (Depending on your server and service status "
|
||||
"it may take <br>\n"
|
||||
" a few minutes to receive the email. Also "
|
||||
"check your \"junk folder\".)"
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-request.php:141
|
||||
msgid "Chatster Request settings have been reset!"
|
||||
msgstr ""
|
||||
|
||||
#: includes/options/class.add-options-request.php:158
|
||||
msgid "Wrong URL submitted"
|
||||
msgstr ""
|
||||
|
||||
#: views/functions.basic-templates.php:7
|
||||
msgid "support page"
|
||||
msgstr ""
|
||||
|
||||
#: views/admin/function.chat.php:25
|
||||
msgid "Your conversations will be shown here.."
|
||||
msgstr ""
|
||||
|
||||
#: views/admin/function.chat.php:36
|
||||
msgid "Current conversation will be shown here."
|
||||
msgstr ""
|
||||
|
||||
#: views/admin/function.chat.php:45
|
||||
#, php-format
|
||||
msgid "There is %s customer waiting in line"
|
||||
msgstr ""
|
||||
|
||||
#: views/admin/function.chat.php:48
|
||||
#, php-format
|
||||
msgid "There are %s customers waiting in line"
|
||||
msgstr ""
|
||||
|
||||
#: views/admin/function.chat.php:60
|
||||
msgid "Attach a link to a page or product."
|
||||
msgstr ""
|
||||
|
||||
#: views/admin/function.header.php:15
|
||||
msgid "Conversations"
|
||||
msgstr ""
|
||||
|
||||
#: views/admin/function.header.php:16
|
||||
msgid "Received Messages"
|
||||
msgstr ""
|
||||
|
||||
#: views/admin/function.request.php:16
|
||||
msgid "No Messages yet"
|
||||
msgstr ""
|
||||
|
||||
#: views/admin/function.request.php:28
|
||||
msgid "Show Replied Messages"
|
||||
msgstr ""
|
||||
|
||||
#: views/admin/function.request.php:35
|
||||
msgid "User Name"
|
||||
msgstr ""
|
||||
|
||||
#: views/admin/function.request.php:36
|
||||
msgid "Subject"
|
||||
msgstr ""
|
||||
|
||||
#: views/admin/function.request.php:37
|
||||
msgid "Date Received"
|
||||
msgstr ""
|
||||
|
||||
#: views/admin/function.request.php:38
|
||||
msgid "Last Replied"
|
||||
msgstr ""
|
||||
|
||||
#: views/admin/function.request.php:39
|
||||
msgid "Pinned"
|
||||
msgstr ""
|
||||
|
||||
#: views/admin/function.request.php:42
|
||||
msgid "Message Data"
|
||||
msgstr ""
|
||||
|
||||
#: views/admin/function.request.php:70
|
||||
msgid "By: "
|
||||
msgstr ""
|
||||
|
||||
#: views/admin/function.request.php:89
|
||||
msgid "Reply"
|
||||
msgstr ""
|
||||
|
||||
#: views/admin/function.request.php:89
|
||||
msgid "Show/Reply"
|
||||
msgstr ""
|
||||
|
||||
#: views/admin/function.request.php:92
|
||||
msgid "asks"
|
||||
msgstr ""
|
||||
|
||||
#: views/admin/function.request.php:97 views/public/function.front-chat.php:56
|
||||
msgid "Type here your message.."
|
||||
msgstr ""
|
||||
|
||||
#: views/admin/function.request.php:100
|
||||
msgid "Send Email"
|
||||
msgstr ""
|
||||
|
||||
#: views/admin/function.request.php:121 views/admin/function.settings.php:54
|
||||
msgid "«"
|
||||
msgstr ""
|
||||
|
||||
#: views/admin/function.request.php:122 views/admin/function.settings.php:55
|
||||
msgid "»"
|
||||
msgstr ""
|
||||
|
||||
#: views/admin/function.settings.php:16
|
||||
msgid "Bot Setup"
|
||||
msgstr ""
|
||||
|
||||
#: views/admin/function.settings.php:25
|
||||
msgid "Reset Settings"
|
||||
msgstr ""
|
||||
|
||||
#: views/admin/function.settings.php:32
|
||||
msgid "Bot Q & A"
|
||||
msgstr ""
|
||||
|
||||
#: views/admin/function.settings.php:35
|
||||
msgid "Q&A Was Reset Successfully!"
|
||||
msgstr ""
|
||||
|
||||
#: views/admin/function.settings.php:36
|
||||
msgid "Dismiss this notice."
|
||||
msgstr ""
|
||||
|
||||
#: views/admin/function.settings.php:43
|
||||
msgid "You didn't add any Q&A yet!"
|
||||
msgstr ""
|
||||
|
||||
#: views/admin/function.settings.php:71
|
||||
msgid "Reset Bot Q&A"
|
||||
msgstr ""
|
||||
|
||||
#: views/admin/function.settings.php:80
|
||||
msgid "Chat Configuration"
|
||||
msgstr ""
|
||||
|
||||
#: views/admin/function.settings.php:100
|
||||
msgid "Request/Response"
|
||||
msgstr ""
|
||||
|
||||
#: views/admin/function.settings.php:100
|
||||
msgid "Configuration"
|
||||
msgstr ""
|
||||
|
||||
#: views/admin/function.settings.php:116
|
||||
msgid "Send Test Email"
|
||||
msgstr ""
|
||||
|
||||
#: views/admin/function.settings.php:118
|
||||
msgid "Sent Successfully!"
|
||||
msgstr ""
|
||||
|
||||
#: views/admin/function.settings.php:119
|
||||
msgid "Something went wrong."
|
||||
msgstr ""
|
||||
|
||||
#: views/admin/function.settings.php:131
|
||||
msgid "Reset All Configuration"
|
||||
msgstr ""
|
||||
|
||||
#: views/public/function.front-chat.php:22
|
||||
msgid "Customers already waiting: "
|
||||
msgstr ""
|
||||
|
||||
#: views/public/function.front-chat.php:23
|
||||
msgid "An admin will be here shortly.."
|
||||
msgstr ""
|
||||
|
||||
#: views/public/function.front-chat.php:24
|
||||
msgid "You are beign helped by "
|
||||
msgstr ""
|
||||
|
||||
#: views/public/function.front-chat.php:25
|
||||
msgid "Sorry, we are currently unavailable.. "
|
||||
msgstr ""
|
||||
|
||||
#: views/public/function.front-chat.php:26
|
||||
msgid "You are now disconnected.."
|
||||
msgstr ""
|
||||
|
||||
#: views/public/function.front-chat.php:27
|
||||
msgid "You are chatting with "
|
||||
msgstr ""
|
||||
|
||||
#: views/public/function.front-chat.php:32
|
||||
#: views/public/function.front-chat.php:100
|
||||
msgid "Your message here.."
|
||||
msgstr ""
|
||||
|
||||
#: views/public/function.front-chat.php:36
|
||||
msgid "End Chat"
|
||||
msgstr ""
|
||||
|
||||
#: views/public/function.front-chat.php:38
|
||||
#: views/public/function.front-chat.php:60
|
||||
msgid "Back"
|
||||
msgstr ""
|
||||
|
||||
#: views/public/function.front-chat.php:45
|
||||
msgid "Please fill out this form to get in touch!"
|
||||
msgstr ""
|
||||
|
||||
#: views/public/function.front-chat.php:61
|
||||
msgid "Sent"
|
||||
msgstr ""
|
||||
|
||||
#: views/public/function.front-chat.php:63
|
||||
msgid "Try Again"
|
||||
msgstr ""
|
||||
|
||||
#: views/public/function.front-chat.php:64
|
||||
msgid "Send"
|
||||
msgstr ""
|
||||
|
||||
#: views/public/function.front-chat.php:72
|
||||
msgid "Start Chatting now!"
|
||||
msgstr ""
|
||||
|
||||
#: views/public/function.front-chat.php:74
|
||||
msgid "Your name"
|
||||
msgstr ""
|
||||
|
||||
#: views/public/function.front-chat.php:77
|
||||
msgid "Your email"
|
||||
msgstr ""
|
||||
|
||||
#: views/public/function.front-chat.php:80
|
||||
msgid "Type here your question.."
|
||||
msgstr ""
|
||||
|
||||
#: views/public/function.front-chat.php:84
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: views/public/function.front-chat.php:86
|
||||
msgid "Start Chatting"
|
||||
msgstr ""
|
||||
|
||||
#: views/public/function.front-chat.php:97
|
||||
msgid "Our Bot "
|
||||
msgstr ""
|
||||
|
||||
#: views/public/function.front-chat.php:97
|
||||
msgid "is here to help you."
|
||||
msgstr ""
|
||||
|
||||
#: views/public/function.front-chat.php:104
|
||||
msgid "Chat unavailable at the moment."
|
||||
msgstr ""
|
||||
|
||||
#: views/public/function.front-chat.php:104
|
||||
msgid "Live Chat"
|
||||
msgstr ""
|
||||
|
||||
#: views/public/function.front-chat.php:105
|
||||
msgid "Message Us"
|
||||
msgstr ""
|
||||
32
spec/fixtures/dynamic_finders/plugin_version/checkrobin/change_log/changelog.txt
vendored
Normal file
32
spec/fixtures/dynamic_finders/plugin_version/checkrobin/change_log/changelog.txt
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
# Changelog
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [0.0.6] - 2020-06-29
|
||||
### Added
|
||||
- First release version for wordpress repository
|
||||
|
||||
## [0.0.5] - 2020-02-26
|
||||
### Fixed
|
||||
- Avoid settings link in module overview overloading other modules settings links
|
||||
|
||||
## [0.0.4] - 2020-01-27
|
||||
### Added
|
||||
- count(): Parameter must be an array or an object that implements Countable as of as of PHP 7.2
|
||||
- Updating composer/installers (v1.5.0 => v1.7.0)
|
||||
|
||||
## [0.0.3] - 2018-04-27
|
||||
### Added
|
||||
- Added defined check and prefix to constants.php
|
||||
- Re-Worked Failsave email
|
||||
|
||||
## [0.0.2] - 2018-04-27
|
||||
### Added
|
||||
- Disabled Failsave email
|
||||
- Make sure default timezone is set
|
||||
|
||||
## [0.0.1] - 2018-04-13
|
||||
### Added
|
||||
- Started changelog
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,851 @@
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Classic Quiz Feedback Survey 1.0.0\n"
|
||||
"POT-Creation-Date: 2020-08-28 19:56+0530\n"
|
||||
"PO-Revision-Date: 2020-08-28 16:22+0530\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Amit Biswas\n"
|
||||
"Language: en_US\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 2.3\n"
|
||||
"X-Poedit-Basepath: ..\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Poedit-SourceCharset: UTF-8\n"
|
||||
"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;"
|
||||
"esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;"
|
||||
"_n_noop:1,2;_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
|
||||
"X-Poedit-SearchPath-0: .\n"
|
||||
"X-Poedit-SearchPathExcluded-0: assets\n"
|
||||
"X-Poedit-SearchPathExcluded-1: admin/js\n"
|
||||
"X-Poedit-SearchPathExcluded-2: admin/css\n"
|
||||
"X-Poedit-SearchPathExcluded-3: .git\n"
|
||||
"X-Poedit-SearchPathExcluded-4: .gitignore\n"
|
||||
|
||||
#: admin/admin-scripts.php:91
|
||||
msgid "Required field contains invalid entry."
|
||||
msgstr ""
|
||||
|
||||
#: admin/admin-scripts.php:92
|
||||
msgid "Required field value cannot be null."
|
||||
msgstr ""
|
||||
|
||||
#: admin/form-handle.php:203 admin/form-handle.php:318 inc/submission.php:87
|
||||
msgid "Security check unsuccessful."
|
||||
msgstr ""
|
||||
|
||||
#: admin/form-handle.php:220 admin/form-handle.php:335
|
||||
msgid "Permission Denied."
|
||||
msgstr ""
|
||||
|
||||
#: admin/form-handle.php:255
|
||||
#, php-format
|
||||
msgid "[Duplicate #%s]"
|
||||
msgstr ""
|
||||
|
||||
#: admin/form-handle.php:271
|
||||
msgid "Mail successfully sent."
|
||||
msgstr ""
|
||||
|
||||
#: admin/form-handle.php:288
|
||||
msgid "Mail not send. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: admin/form-handle.php:356 inc/roles.php:93
|
||||
msgid "Cqfs Result"
|
||||
msgstr ""
|
||||
|
||||
#: admin/form-handle.php:358 inc/roles.php:95
|
||||
msgid "This page displays CQFS results. Please do not delete this page."
|
||||
msgstr ""
|
||||
|
||||
#: admin/form-handle.php:375
|
||||
msgid "Result page created successfully."
|
||||
msgstr ""
|
||||
|
||||
#: admin/form-handle.php:390
|
||||
msgid "Cannot create result page. Please refresh and check."
|
||||
msgstr ""
|
||||
|
||||
#: admin/menu-pages.php:63
|
||||
#, php-format
|
||||
msgid "This email was sent from <a href=\"%s\">%s</a> © %s"
|
||||
msgstr ""
|
||||
|
||||
#: admin/menu-pages.php:82
|
||||
msgid "CQFS Post Types"
|
||||
msgstr ""
|
||||
|
||||
#: admin/menu-pages.php:83
|
||||
msgid "CQFS"
|
||||
msgstr ""
|
||||
|
||||
#: admin/menu-pages.php:98 admin/menu-pages.php:99
|
||||
msgid "CQFS Settings"
|
||||
msgstr ""
|
||||
|
||||
#: admin/menu-pages.php:118
|
||||
msgid "Welcome to CQFS Settings"
|
||||
msgstr ""
|
||||
|
||||
#: admin/menu-pages.php:127 cqfs.php:219
|
||||
msgid "Classic Quiz Feedback Survey"
|
||||
msgstr ""
|
||||
|
||||
#: admin/menu-pages.php:130
|
||||
msgid ""
|
||||
"This plugin is a free open source project. If this plugin is useful to "
|
||||
"you, please support me and keep this alive."
|
||||
msgstr ""
|
||||
|
||||
#: admin/menu-pages.php:135
|
||||
msgid "Donate via PayPal"
|
||||
msgstr ""
|
||||
|
||||
#: admin/menu-pages.php:140
|
||||
msgid "Full Documentation"
|
||||
msgstr ""
|
||||
|
||||
#: admin/menu-pages.php:147
|
||||
msgid "Overview"
|
||||
msgstr ""
|
||||
|
||||
#: admin/menu-pages.php:156
|
||||
msgid "Getting Started"
|
||||
msgstr ""
|
||||
|
||||
#: admin/menu-pages.php:165
|
||||
msgid "CQFS shortcode"
|
||||
msgstr ""
|
||||
|
||||
#: admin/menu-pages.php:174
|
||||
msgid "Action Hooks"
|
||||
msgstr ""
|
||||
|
||||
#: admin/menu-pages.php:183
|
||||
msgid "Filter Hooks"
|
||||
msgstr ""
|
||||
|
||||
#: admin/menu-pages.php:192
|
||||
msgid "Live Demos"
|
||||
msgstr ""
|
||||
|
||||
#: admin/menu-pages.php:198
|
||||
msgid "Github Repositiroy"
|
||||
msgstr ""
|
||||
|
||||
#: admin/menu-pages.php:203
|
||||
msgid "classic quiz feedback survey"
|
||||
msgstr ""
|
||||
|
||||
#: admin/menu-pages.php:223
|
||||
msgid "Result page is missing."
|
||||
msgstr ""
|
||||
|
||||
#: admin/menu-pages.php:233
|
||||
msgid "Create Result Page"
|
||||
msgstr ""
|
||||
|
||||
#: admin/menu-pages.php:242
|
||||
msgid "Great! Result page exists."
|
||||
msgstr ""
|
||||
|
||||
#: admin/menu-pages.php:272
|
||||
msgid "Mail Settings"
|
||||
msgstr ""
|
||||
|
||||
#: admin/menu-pages.php:283
|
||||
msgid "Sender Email ID (from)"
|
||||
msgstr ""
|
||||
|
||||
#: admin/menu-pages.php:285
|
||||
msgid ""
|
||||
"If not set, administrator email will be used. Try to use email id same as "
|
||||
"domain."
|
||||
msgstr ""
|
||||
|
||||
#: admin/menu-pages.php:295
|
||||
msgid "Email to admin."
|
||||
msgstr ""
|
||||
|
||||
#: admin/menu-pages.php:297
|
||||
msgid ""
|
||||
"Send email to admin when a form is submitted by a user. Administrator "
|
||||
"email will be used."
|
||||
msgstr ""
|
||||
|
||||
#: admin/menu-pages.php:310
|
||||
msgid "Email to user."
|
||||
msgstr ""
|
||||
|
||||
#: admin/menu-pages.php:312
|
||||
msgid "Send email to the user when a form is submitted by that user."
|
||||
msgstr ""
|
||||
|
||||
#: admin/menu-pages.php:325
|
||||
msgid "Additional Notes"
|
||||
msgstr ""
|
||||
|
||||
#: admin/menu-pages.php:327
|
||||
msgid ""
|
||||
"Add any additional notes in the email. It will appear above the footer. "
|
||||
"HTML allowed as post."
|
||||
msgstr ""
|
||||
|
||||
#: admin/menu-pages.php:339
|
||||
msgid "Email Footer"
|
||||
msgstr ""
|
||||
|
||||
#: admin/menu-pages.php:341
|
||||
msgid "Add custom footer content for the email. HTML allowed as post."
|
||||
msgstr ""
|
||||
|
||||
#: admin/menu-pages.php:368 admin/menu-pages.php:369
|
||||
msgid "Add Question"
|
||||
msgstr ""
|
||||
|
||||
#: admin/menu-pages.php:378 admin/menu-pages.php:379
|
||||
msgid "Add Build"
|
||||
msgstr ""
|
||||
|
||||
#: admin/menu-pages.php:388 admin/menu-pages.php:389
|
||||
msgid "Add Entry"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-build.php:39
|
||||
msgid "Build Data"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-build.php:49 inc/admin-columns.php:98
|
||||
msgid "Shortcode"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-build.php:65
|
||||
msgid "Build Shortcode"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-build.php:66
|
||||
msgid "Click to select the shortcode. Then copy it."
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-build.php:77
|
||||
msgid "Enable title"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-build.php:78
|
||||
msgid "Enable ajax"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-build.php:79
|
||||
msgid "Enable guest"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-build.php:80
|
||||
msgid "Enable required"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-build.php:81
|
||||
msgid "Enable pagination"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-build.php:82
|
||||
msgid "Custom class"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-build.php:83
|
||||
msgid "Order"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-build.php:84
|
||||
msgid "Orderby"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-build.php:87
|
||||
msgid "Available attributes and example use:"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-build.php:100
|
||||
msgid "Full documentation is here"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-build.php:137
|
||||
msgid "Questions by Categories"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-build.php:138
|
||||
msgid "You have selected the following categories for questions."
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-build.php:147
|
||||
msgid "No categories are selected. Please select a category."
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-build.php:158 inc/admin-columns.php:97
|
||||
msgid "Build Type"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-build.php:158
|
||||
#: admin/meta-boxes/metabox-build.php:186
|
||||
#: admin/meta-boxes/metabox-question.php:70
|
||||
#: admin/meta-boxes/metabox-question.php:81
|
||||
#: admin/meta-boxes/metabox-question.php:108
|
||||
msgid "*"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-build.php:159
|
||||
msgid "Select a build type."
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-build.php:165
|
||||
#: admin/meta-boxes/metabox-question.php:88
|
||||
msgid "Please Select..."
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-build.php:166
|
||||
msgid "Quiz"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-build.php:167
|
||||
msgid "Feedback"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-build.php:168
|
||||
msgid "Survey"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-build.php:186
|
||||
msgid "Pass Percentage"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-build.php:187
|
||||
msgid ""
|
||||
"Set a percentage for pass mark. It is needed for all types as it will help "
|
||||
"us to assess things better."
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-build.php:190 inc/utilities.php:236
|
||||
#: inc/utilities.php:245
|
||||
msgid "%"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-build.php:203
|
||||
msgid "Pass Message (optional)"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-build.php:204
|
||||
#: admin/meta-boxes/metabox-build.php:215
|
||||
msgid "Leave empty for default."
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-build.php:214
|
||||
msgid "Fail Message (optional)"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-entry.php:40
|
||||
msgid "Entry Data"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-entry.php:50
|
||||
msgid "Edit This Entry"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-entry.php:59
|
||||
msgid "Entry Options"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-entry.php:78
|
||||
msgid "Enable"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-entry.php:79
|
||||
msgid "Disable"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-entry.php:97 inc/utilities.php:704
|
||||
msgid "View Result"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-entry.php:98
|
||||
msgid "Email to user"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-entry.php:146 inc/admin-columns.php:159
|
||||
msgid "Form ID (cqfs build)"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-entry.php:147
|
||||
msgid "The form ID which user have submitted."
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-entry.php:160 inc/admin-columns.php:160
|
||||
msgid "Form Type (cqfs build)"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-entry.php:161
|
||||
msgid "The form type which user have submitted."
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-entry.php:173 inc/admin-columns.php:161
|
||||
msgid "Result"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-entry.php:174
|
||||
msgid "The result."
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-entry.php:180
|
||||
msgid "Passed"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-entry.php:181
|
||||
msgid "Failed"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-entry.php:198
|
||||
msgid "Percentage"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-entry.php:199
|
||||
msgid "Percentage obtained."
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-entry.php:212 inc/cpt.php:36 inc/cpt.php:38
|
||||
#: inc/cpt.php:40 inc/cpt.php:57
|
||||
msgid "Questions"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-entry.php:213
|
||||
msgid ""
|
||||
"The CQFS question list for this entry. Each line break represents a "
|
||||
"question."
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-entry.php:223
|
||||
#: admin/meta-boxes/metabox-question.php:70
|
||||
msgid "Answers"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-entry.php:224
|
||||
msgid ""
|
||||
"The CQFS answer list for this entry. Each line break represents an answer."
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-entry.php:234
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-entry.php:235
|
||||
msgid ""
|
||||
"The CQFS answer status list for this entry. Each line break represents a "
|
||||
"status."
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-entry.php:245
|
||||
msgid "Notes"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-entry.php:246
|
||||
msgid ""
|
||||
"The additional notes for each question. Each line break represents a note."
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-entry.php:256
|
||||
msgid "Remarks"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-entry.php:257
|
||||
msgid "Pass or fail message."
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-entry.php:267
|
||||
msgid "User Email"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-entry.php:268
|
||||
msgid "Email ID of the user who have submitted."
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-question.php:38
|
||||
msgid "Question Data"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-question.php:71
|
||||
msgid ""
|
||||
"Please use separate line for each answer. Each line will be considered as "
|
||||
"1, 2, 3 ... and so on."
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-question.php:81 inc/admin-columns.php:48
|
||||
msgid "Answer Type"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-question.php:82
|
||||
msgid ""
|
||||
"If this question have more than one correct answer, select check boxes. "
|
||||
"Otherwise select radio button."
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-question.php:89
|
||||
msgid "Radio Button"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-question.php:90
|
||||
msgid "Check Boxes"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-question.php:108
|
||||
msgid "Correct Answer"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-question.php:109
|
||||
msgid ""
|
||||
"Consider the answers (above) in each line as 1, 2, 3... and so on. Please "
|
||||
"separate with comma for multiple correct answers. eg; 2,3 (no space)"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-question.php:118
|
||||
msgid "Additional Note"
|
||||
msgstr ""
|
||||
|
||||
#: admin/meta-boxes/metabox-question.php:119
|
||||
msgid ""
|
||||
"This is hidden in questionnaire and showed in the result page for build "
|
||||
"type \"quiz\"."
|
||||
msgstr ""
|
||||
|
||||
#: cqfs-templates/template-results.php:40
|
||||
#: cqfs-templates/template-results.php:158
|
||||
msgid "Invalid Result."
|
||||
msgstr ""
|
||||
|
||||
#: cqfs-templates/template-results.php:59 inc/utilities.php:233
|
||||
msgid "Congratulations! You have passed."
|
||||
msgstr ""
|
||||
|
||||
#: cqfs-templates/template-results.php:61 inc/utilities.php:242
|
||||
msgid "Sorry! You have failed."
|
||||
msgstr ""
|
||||
|
||||
#: cqfs-templates/template-results.php:93 cqfs.php:251
|
||||
msgid "You answered: "
|
||||
msgstr ""
|
||||
|
||||
#: cqfs-templates/template-results.php:94 cqfs.php:252
|
||||
msgid "Status: "
|
||||
msgstr ""
|
||||
|
||||
#: cqfs-templates/template-results.php:95 cqfs.php:253
|
||||
msgid "Note: "
|
||||
msgstr ""
|
||||
|
||||
#: cqfs-templates/template-results.php:129 cqfs.php:249 inc/utilities.php:610
|
||||
msgid "Thank you for your feedback."
|
||||
msgstr ""
|
||||
|
||||
#: cqfs-templates/template-results.php:147 cqfs.php:250
|
||||
msgid "Thank you for your participation in the survey."
|
||||
msgstr ""
|
||||
|
||||
#: cqfs-templates/template-results.php:166
|
||||
msgid "Sorry, something went terribly wrong. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: cqfs-templates/template-results.php:171
|
||||
msgid "No results found."
|
||||
msgstr ""
|
||||
|
||||
#: cqfs.php:218
|
||||
#, php-format
|
||||
msgid "\"%1$s\" requires \"%2$s\" version %3$s or greater."
|
||||
msgstr ""
|
||||
|
||||
#: cqfs.php:220
|
||||
msgid "PHP"
|
||||
msgstr ""
|
||||
|
||||
#: cqfs.php:260
|
||||
msgid "Invalid Result"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin-columns.php:162
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#: inc/cpt.php:37
|
||||
msgid "Question"
|
||||
msgstr ""
|
||||
|
||||
#: inc/cpt.php:39
|
||||
msgid "Question:"
|
||||
msgstr ""
|
||||
|
||||
#: inc/cpt.php:41
|
||||
msgid "View Question"
|
||||
msgstr ""
|
||||
|
||||
#: inc/cpt.php:42
|
||||
msgid "Add New Question"
|
||||
msgstr ""
|
||||
|
||||
#: inc/cpt.php:43 inc/cpt.php:92 inc/cpt.php:140
|
||||
msgid "Add New"
|
||||
msgstr ""
|
||||
|
||||
#: inc/cpt.php:44
|
||||
msgid "Edit Question"
|
||||
msgstr ""
|
||||
|
||||
#: inc/cpt.php:45
|
||||
msgid "Update Question"
|
||||
msgstr ""
|
||||
|
||||
#: inc/cpt.php:46
|
||||
msgid "Search Question"
|
||||
msgstr ""
|
||||
|
||||
#: inc/cpt.php:47
|
||||
msgid "Question Not found"
|
||||
msgstr ""
|
||||
|
||||
#: inc/cpt.php:48 inc/cpt.php:97 inc/cpt.php:145
|
||||
msgid "Not found in Trash"
|
||||
msgstr ""
|
||||
|
||||
#: inc/cpt.php:85 inc/cpt.php:86 inc/cpt.php:87 inc/cpt.php:89
|
||||
#: inc/cpt.php:106
|
||||
msgid "Build"
|
||||
msgstr ""
|
||||
|
||||
#: inc/cpt.php:88
|
||||
msgid "Build:"
|
||||
msgstr ""
|
||||
|
||||
#: inc/cpt.php:90
|
||||
msgid "View Build"
|
||||
msgstr ""
|
||||
|
||||
#: inc/cpt.php:91
|
||||
msgid "Add New Build"
|
||||
msgstr ""
|
||||
|
||||
#: inc/cpt.php:93
|
||||
msgid "Edit Build"
|
||||
msgstr ""
|
||||
|
||||
#: inc/cpt.php:94
|
||||
msgid "Update Build"
|
||||
msgstr ""
|
||||
|
||||
#: inc/cpt.php:95
|
||||
msgid "Search Build"
|
||||
msgstr ""
|
||||
|
||||
#: inc/cpt.php:96
|
||||
msgid "Build Not found"
|
||||
msgstr ""
|
||||
|
||||
#: inc/cpt.php:133 inc/cpt.php:134 inc/cpt.php:135 inc/cpt.php:154
|
||||
msgid "Entry"
|
||||
msgstr ""
|
||||
|
||||
#: inc/cpt.php:136
|
||||
msgid "Entry:"
|
||||
msgstr ""
|
||||
|
||||
#: inc/cpt.php:137
|
||||
msgid "Entries"
|
||||
msgstr ""
|
||||
|
||||
#: inc/cpt.php:138
|
||||
msgid "View Entry"
|
||||
msgstr ""
|
||||
|
||||
#: inc/cpt.php:139
|
||||
msgid "Add New Entry"
|
||||
msgstr ""
|
||||
|
||||
#: inc/cpt.php:141
|
||||
msgid "Edit Entry"
|
||||
msgstr ""
|
||||
|
||||
#: inc/cpt.php:142
|
||||
msgid "Update Entry"
|
||||
msgstr ""
|
||||
|
||||
#: inc/cpt.php:143
|
||||
msgid "Search Entry"
|
||||
msgstr ""
|
||||
|
||||
#: inc/cpt.php:144
|
||||
msgid "Entry Not found"
|
||||
msgstr ""
|
||||
|
||||
#: inc/shortcode.php:77
|
||||
msgid "Something went terribly wrong. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: inc/shortcode.php:136
|
||||
msgid ". "
|
||||
msgstr ""
|
||||
|
||||
#: inc/shortcode.php:201
|
||||
msgid "Next"
|
||||
msgstr ""
|
||||
|
||||
#: inc/shortcode.php:202
|
||||
msgid "Prev"
|
||||
msgstr ""
|
||||
|
||||
#: inc/shortcode.php:203
|
||||
msgid "Submit"
|
||||
msgstr ""
|
||||
|
||||
#: inc/shortcode.php:216
|
||||
msgid "Processing..."
|
||||
msgstr ""
|
||||
|
||||
#: inc/shortcode.php:217
|
||||
msgid "One or more fields are required. Please check again."
|
||||
msgstr ""
|
||||
|
||||
#: inc/submission.php:127 inc/submission.php:131
|
||||
#, php-format
|
||||
msgid ""
|
||||
"<div class=\"cqfs-return-msg success\"><p><span class=\"cqfs-icon success-"
|
||||
"icon\"></span>%s</p></div>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/submission.php:128
|
||||
msgid "Login Successful."
|
||||
msgstr ""
|
||||
|
||||
#: inc/submission.php:132 inc/utilities.php:306
|
||||
msgid "You are now logged in."
|
||||
msgstr ""
|
||||
|
||||
#: inc/submission.php:218
|
||||
msgid "Correct Answer."
|
||||
msgstr ""
|
||||
|
||||
#: inc/submission.php:218
|
||||
msgid "Wrong Answer."
|
||||
msgstr ""
|
||||
|
||||
#: inc/submission.php:231
|
||||
msgid "You have skipped this question."
|
||||
msgstr ""
|
||||
|
||||
#: inc/submission.php:238
|
||||
msgid "Not Available."
|
||||
msgstr ""
|
||||
|
||||
#: inc/submission.php:299
|
||||
msgid "Guest"
|
||||
msgstr ""
|
||||
|
||||
#: inc/utilities.php:235
|
||||
#, php-format
|
||||
msgid ""
|
||||
"<div class=\"cqfs-pass-msg\"><p class=\"cqfs-percentage\">%s correct.</"
|
||||
"p><p>%s</p></div>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/utilities.php:244
|
||||
#, php-format
|
||||
msgid ""
|
||||
"<div class=\"cqfs-fail-msg\"><p class=\"cqfs-percentage\">%s correct.</"
|
||||
"p><p class=\"cqfs-remark\">%s</p></div>"
|
||||
msgstr ""
|
||||
|
||||
#: inc/utilities.php:315
|
||||
msgid "Login and submit"
|
||||
msgstr ""
|
||||
|
||||
#: inc/utilities.php:321
|
||||
msgid "Or you may submit as a guest. Please provide the following info."
|
||||
msgstr ""
|
||||
|
||||
#: inc/utilities.php:328
|
||||
msgid "Invalid Name. Min 3, max 24 characters allowed."
|
||||
msgstr ""
|
||||
|
||||
#: inc/utilities.php:333
|
||||
msgid "Your Name *"
|
||||
msgstr ""
|
||||
|
||||
#: inc/utilities.php:335
|
||||
msgid "please type your name."
|
||||
msgstr ""
|
||||
|
||||
#: inc/utilities.php:340
|
||||
msgid "Invalid Email"
|
||||
msgstr ""
|
||||
|
||||
#: inc/utilities.php:345
|
||||
msgid "Your Email *"
|
||||
msgstr ""
|
||||
|
||||
#: inc/utilities.php:347
|
||||
msgid "please type email."
|
||||
msgstr ""
|
||||
|
||||
#: inc/utilities.php:399 inc/utilities.php:468
|
||||
msgid "×"
|
||||
msgstr ""
|
||||
|
||||
#: inc/utilities.php:400
|
||||
msgid "Please login to submit"
|
||||
msgstr ""
|
||||
|
||||
#: inc/utilities.php:413
|
||||
msgid "Secure Login"
|
||||
msgstr ""
|
||||
|
||||
#: inc/utilities.php:415
|
||||
msgid "Username or email"
|
||||
msgstr ""
|
||||
|
||||
#: inc/utilities.php:419
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#: inc/utilities.php:423
|
||||
msgid "Login"
|
||||
msgstr ""
|
||||
|
||||
#: inc/utilities.php:469
|
||||
msgid "Please confirm"
|
||||
msgstr ""
|
||||
|
||||
#: inc/utilities.php:494
|
||||
msgid "Send Email"
|
||||
msgstr ""
|
||||
|
||||
#: inc/utilities.php:530
|
||||
msgid "Classic quiz feedback survey"
|
||||
msgstr ""
|
||||
|
||||
#: inc/utilities.php:601
|
||||
#, php-format
|
||||
msgid "Hello %s,"
|
||||
msgstr ""
|
||||
|
||||
#: inc/utilities.php:607
|
||||
msgid "Congratulations! You have passed the quiz."
|
||||
msgstr ""
|
||||
|
||||
#: inc/utilities.php:608
|
||||
msgid "Sorry! You did not passed the quiz."
|
||||
msgstr ""
|
||||
|
||||
#: inc/utilities.php:609
|
||||
msgid ""
|
||||
"Thank you for participating in the quiz. Here is your result page link "
|
||||
"below."
|
||||
msgstr ""
|
||||
|
||||
#: inc/utilities.php:611
|
||||
msgid "Thank you for participating in the survey."
|
||||
msgstr ""
|
||||
19
spec/fixtures/dynamic_finders/plugin_version/cloudtables/composer_file/package.json
vendored
Normal file
19
spec/fixtures/dynamic_finders/plugin_version/cloudtables/composer_file/package.json
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"name": "cloudtables-wordpress",
|
||||
"version": "1.0.0",
|
||||
"description": "CloudTables easy integration plug-in for WordPress",
|
||||
"main": "block.js",
|
||||
"scripts": {
|
||||
"build": "wp-scripts build",
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"keywords": [
|
||||
"cloudtables",
|
||||
"wordpress"
|
||||
],
|
||||
"author": "SpryMedia Ltd",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
"@wordpress/scripts": "9.1.0"
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user