Compare commits
133 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b0db15099d | ||
|
|
6fbd2369ba | ||
|
|
f4a6674eed | ||
|
|
c0567ad4f5 | ||
|
|
f146ee7e9f | ||
|
|
e606f4ce18 | ||
|
|
945b589a58 | ||
|
|
b18042c4a8 | ||
|
|
a9ff39104b | ||
|
|
f6af6e5880 | ||
|
|
57c6c2d471 | ||
|
|
c362527903 | ||
|
|
a7acbd0738 | ||
|
|
f67192ebce | ||
|
|
c44fde83e4 | ||
|
|
50119285ef | ||
|
|
6216916fed | ||
|
|
2952380200 | ||
|
|
fb42b82e0d | ||
|
|
6d381ab88d | ||
|
|
c5c1de32bc | ||
|
|
8077ad9bcd | ||
|
|
6f22ba350f | ||
|
|
f23d0c0157 | ||
|
|
a9a38edf24 | ||
|
|
a5534f1e49 | ||
|
|
1c6469f384 | ||
|
|
8cfdbc1196 | ||
|
|
88737ca6ea | ||
|
|
45bebc60bd | ||
|
|
4f7dec4635 | ||
|
|
98739cce5a | ||
|
|
0bfbfacc27 | ||
|
|
73cd862e83 | ||
|
|
3305e9b74f | ||
|
|
c37ec0e8d0 | ||
|
|
0b005477c1 | ||
|
|
a1467f8dac | ||
|
|
40d2c34347 | ||
|
|
528270e767 | ||
|
|
f4a04b2387 | ||
|
|
14ed6ae109 | ||
|
|
4fd43694ae | ||
|
|
552d731e6a | ||
|
|
49ac3ef528 | ||
|
|
4379313f12 | ||
|
|
3901949f36 | ||
|
|
a3d8593fed | ||
|
|
7c5baeb9c7 | ||
|
|
c692db5f85 | ||
|
|
9130196ffc | ||
|
|
dad4a65118 | ||
|
|
4c34c2feb7 | ||
|
|
23522f7775 | ||
|
|
82c61398ba | ||
|
|
02871050a6 | ||
|
|
7d3b1fea6b | ||
|
|
24917fa2a6 | ||
|
|
de3d8e4a23 | ||
|
|
1502845d65 | ||
|
|
af3f10f74e | ||
|
|
c100372b31 | ||
|
|
72d699b39a | ||
|
|
7d2b8a2a8b | ||
|
|
8729c68e22 | ||
|
|
e2d48bedd9 | ||
|
|
6b241ce9b3 | ||
|
|
1b68bdb36c | ||
|
|
fb82538441 | ||
|
|
2709d0869a | ||
|
|
343f87bbe7 | ||
|
|
ecbfc6004c | ||
|
|
c57eecc81b | ||
|
|
7ea14dc03f | ||
|
|
4340d27258 | ||
|
|
e911be8f14 | ||
|
|
a4c650cdff | ||
|
|
31a58f8a8f | ||
|
|
ba4f15f111 | ||
|
|
206a913eb9 | ||
|
|
21ba490073 | ||
|
|
2a29e2ed95 | ||
|
|
9517d14fd3 | ||
|
|
3deaa896df | ||
|
|
c117007dc0 | ||
|
|
50baa238b9 | ||
|
|
0e2d771660 | ||
|
|
32b4670755 | ||
|
|
4a032d5e12 | ||
|
|
5887fede15 | ||
|
|
ad4eeb9f81 | ||
|
|
a62c16d7cc | ||
|
|
e766e7392a | ||
|
|
025c9c24ca | ||
|
|
ab052add27 | ||
|
|
15cb99977b | ||
|
|
82d5af926f | ||
|
|
76f73f3dc8 | ||
|
|
575b22320e | ||
|
|
d20c07dc85 | ||
|
|
f89071b87a | ||
|
|
8b4e90f285 | ||
|
|
9c4f57c786 | ||
|
|
902ec24b77 | ||
|
|
7eba77fa63 | ||
|
|
0753bbf7b3 | ||
|
|
6b2333614a | ||
|
|
80b7f458f5 | ||
|
|
dbd8e59cf4 | ||
|
|
9948230ea0 | ||
|
|
e2c858ac69 | ||
|
|
bac8b613e6 | ||
|
|
abbae15c6f | ||
|
|
1548e8bfc1 | ||
|
|
dc8cf3fc34 | ||
|
|
c3cd815567 | ||
|
|
ce543b9384 | ||
|
|
9755c8cf42 | ||
|
|
434a210fb5 | ||
|
|
587602665a | ||
|
|
bfec63df41 | ||
|
|
3b150df1af | ||
|
|
f24ecf0537 | ||
|
|
9ddecbcc0a | ||
|
|
947bb8d3d5 | ||
|
|
30cbf87b35 | ||
|
|
69c3aab35a | ||
|
|
bdeb3547f1 | ||
|
|
99e04b9669 | ||
|
|
680d2fb7eb | ||
|
|
8814eda018 | ||
|
|
7e72ba2885 | ||
|
|
b4d7a8490b |
@@ -14,3 +14,4 @@ Dockerfile
|
||||
*.orig
|
||||
bin/wpscan-*
|
||||
.wpscan/
|
||||
.github/
|
||||
|
||||
41
.github/workflows/build.yml
vendored
Normal file
41
.github/workflows/build.yml
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
name: Build
|
||||
|
||||
on: [push, pull_request]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
ruby: [2.5, 2.6, 2.7]
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v1
|
||||
|
||||
- name: Set up Ruby ${{ matrix.ruby }}
|
||||
uses: actions/setup-ruby@v1
|
||||
with:
|
||||
ruby-version: ${{ matrix.ruby }}
|
||||
|
||||
- name: Install GEMs
|
||||
run: |
|
||||
gem install bundler
|
||||
bundle config force_ruby_platform true
|
||||
bundle config path vendor/bundle
|
||||
bundle install --jobs 4 --retry 3
|
||||
|
||||
- name: rubocop
|
||||
run: |
|
||||
bundle exec rubocop
|
||||
|
||||
- name: rspec
|
||||
run: |
|
||||
bundle exec rspec
|
||||
|
||||
- name: Coveralls
|
||||
uses: coverallsapp/github-action@master
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
40
.github/workflows/gempush.yml
vendored
Normal file
40
.github/workflows/gempush.yml
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
name: Ruby Gem
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Build + Publish
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@master
|
||||
- name: Set up Ruby 2.6
|
||||
uses: actions/setup-ruby@v1
|
||||
with:
|
||||
ruby-version: 2.6.x
|
||||
|
||||
#- name: Publish to GPR
|
||||
# run: |
|
||||
# mkdir -p $HOME/.gem
|
||||
# touch $HOME/.gem/credentials
|
||||
# chmod 0600 $HOME/.gem/credentials
|
||||
# printf -- "---\n:github: Bearer ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
|
||||
# gem build *.gemspec
|
||||
# gem push --KEY github --host https://rubygems.pkg.github.com/${OWNER} *.gem
|
||||
# env:
|
||||
# GEM_HOST_API_KEY: ${{secrets.GITHUB_TOKEN}}
|
||||
# OWNER: wpscanteam
|
||||
|
||||
- name: Publish to RubyGems
|
||||
run: |
|
||||
mkdir -p $HOME/.gem
|
||||
touch $HOME/.gem/credentials
|
||||
chmod 0600 $HOME/.gem/credentials
|
||||
printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
|
||||
gem build *.gemspec
|
||||
gem push *.gem
|
||||
env:
|
||||
GEM_HOST_API_KEY: ${{secrets.RUBYGEMS_AUTH_TOKEN}}
|
||||
@@ -1,9 +1,11 @@
|
||||
require: rubocop-performance
|
||||
AllCops:
|
||||
TargetRubyVersion: 2.4
|
||||
TargetRubyVersion: 2.5
|
||||
Exclude:
|
||||
- '*.gemspec'
|
||||
- 'vendor/**/*'
|
||||
Layout/LineLength:
|
||||
Max: 120
|
||||
Lint/UriEscapeUnescape:
|
||||
Enabled: false
|
||||
Metrics/AbcSize:
|
||||
@@ -17,8 +19,6 @@ Metrics/ClassLength:
|
||||
- 'app/controllers/enumeration/cli_options.rb'
|
||||
Metrics/CyclomaticComplexity:
|
||||
Max: 8
|
||||
Metrics/LineLength:
|
||||
Max: 120
|
||||
Metrics/MethodLength:
|
||||
Max: 20
|
||||
Exclude:
|
||||
|
||||
@@ -1 +1 @@
|
||||
2.6.2
|
||||
2.7.1
|
||||
|
||||
14
.simplecov
14
.simplecov
@@ -1,4 +1,18 @@
|
||||
|
||||
if ENV['GITHUB_ACTION']
|
||||
require 'simplecov-lcov'
|
||||
|
||||
SimpleCov::Formatter::LcovFormatter.config do |c|
|
||||
c.single_report_path = 'coverage/lcov.info'
|
||||
c.report_with_single_file = true
|
||||
end
|
||||
|
||||
SimpleCov.formatter = SimpleCov::Formatter::LcovFormatter
|
||||
end
|
||||
|
||||
SimpleCov.start do
|
||||
enable_coverage :branch # Only supported for Ruby >= 2.5
|
||||
|
||||
add_filter '/spec/'
|
||||
add_filter 'helper'
|
||||
end
|
||||
16
.travis.yml
16
.travis.yml
@@ -1,16 +0,0 @@
|
||||
language: ruby
|
||||
sudo: false
|
||||
cache: bundler
|
||||
rvm:
|
||||
- 2.4.9
|
||||
- 2.5.7
|
||||
- 2.6.5
|
||||
before_install:
|
||||
- "echo 'gem: --no-ri --no-rdoc' > ~/.gemrc"
|
||||
- gem update --system
|
||||
script:
|
||||
- bundle exec rubocop
|
||||
- bundle exec rspec
|
||||
notifications:
|
||||
email:
|
||||
- team@wpscan.org
|
||||
11
README.md
11
README.md
@@ -7,15 +7,15 @@
|
||||
<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">
|
||||
<a href="https://badge.fury.io/rb/wpscan" target="_blank"><img src="https://badge.fury.io/rb/wpscan.svg"></a>
|
||||
<a href="https://travis-ci.org/wpscanteam/wpscan" target="_blank"><img src="https://travis-ci.org/wpscanteam/wpscan.svg?branch=master"></a>
|
||||
<a href="https://github.com/wpscanteam/wpscan/actions?query=workflow%3ABuild" target="_blank"><img src="https://github.com/wpscanteam/wpscan/workflows/Build/badge.svg"></a>
|
||||
<a href="https://codeclimate.com/github/wpscanteam/wpscan" target="_blank"><img src="https://codeclimate.com/github/wpscanteam/wpscan/badges/gpa.svg"></a>
|
||||
</p>
|
||||
|
||||
@@ -130,6 +130,11 @@ cli_options:
|
||||
api_token: YOUR_API_TOKEN
|
||||
```
|
||||
|
||||
## Load API Token From ENV (since v3.7.10)
|
||||
|
||||
The API Token will be automatically loaded from the ENV variable `WPSCAN_API_TOKEN` if present. If the `--api-token` CLI option is also provided, the value from the CLI will be used.
|
||||
|
||||
|
||||
## Enumerating usernames
|
||||
|
||||
```shell
|
||||
|
||||
@@ -18,9 +18,7 @@ module WPScan
|
||||
target.content_dir = ParsedCli.wp_content_dir if ParsedCli.wp_content_dir
|
||||
target.plugins_dir = ParsedCli.wp_plugins_dir if ParsedCli.wp_plugins_dir
|
||||
|
||||
return if target.content_dir
|
||||
|
||||
raise Error::WpContentDirNotDetected
|
||||
raise Error::WpContentDirNotDetected unless target.content_dir
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -51,7 +51,7 @@ module WPScan
|
||||
OptSmartList.new(['--plugins-list LIST', 'List of plugins to enumerate'], advanced: true),
|
||||
OptChoice.new(
|
||||
['--plugins-detection MODE',
|
||||
'Use the supplied mode to enumerate Plugins, instead of the global (--detection-mode) mode.'],
|
||||
'Use the supplied mode to enumerate Plugins.'],
|
||||
choices: %w[mixed passive aggressive], normalize: :to_sym, default: :passive
|
||||
),
|
||||
OptBoolean.new(
|
||||
@@ -62,8 +62,7 @@ module WPScan
|
||||
),
|
||||
OptChoice.new(
|
||||
['--plugins-version-detection MODE',
|
||||
'Use the supplied mode to check plugins versions instead of the --detection-mode ' \
|
||||
'or --plugins-detection modes.'],
|
||||
'Use the supplied mode to check plugins\' versions.'],
|
||||
choices: %w[mixed passive aggressive], normalize: :to_sym, default: :mixed
|
||||
),
|
||||
OptInteger.new(
|
||||
|
||||
@@ -4,6 +4,8 @@ module WPScan
|
||||
module Controller
|
||||
# Controller to handle the API token
|
||||
class VulnApi < CMSScanner::Controller::Base
|
||||
ENV_KEY = 'WPSCAN_API_TOKEN'
|
||||
|
||||
def cli_options
|
||||
[
|
||||
OptString.new(['--api-token TOKEN', 'The WPVulnDB API Token to display vulnerability data'])
|
||||
@@ -11,9 +13,9 @@ module WPScan
|
||||
end
|
||||
|
||||
def before_scan
|
||||
return unless ParsedCli.api_token
|
||||
return unless ParsedCli.api_token || ENV.key?(ENV_KEY)
|
||||
|
||||
DB::VulnApi.token = ParsedCli.api_token
|
||||
DB::VulnApi.token = ParsedCli.api_token || ENV[ENV_KEY]
|
||||
|
||||
api_status = DB::VulnApi.status
|
||||
|
||||
|
||||
@@ -16,8 +16,7 @@ module WPScan
|
||||
target.url(path),
|
||||
confidence: 70,
|
||||
found_by: DIRECT_ACCESS,
|
||||
interesting_entries: target.directory_listing_entries(path),
|
||||
references: { url: 'https://github.com/wpscanteam/wpscan/issues/422' }
|
||||
interesting_entries: target.directory_listing_entries(path)
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -11,11 +11,7 @@ module WPScan
|
||||
|
||||
return unless target.debug_log?(path)
|
||||
|
||||
Model::DebugLog.new(
|
||||
target.url(path),
|
||||
confidence: 100, found_by: DIRECT_ACCESS,
|
||||
references: { url: 'https://codex.wordpress.org/Debugging_in_WordPress' }
|
||||
)
|
||||
Model::DebugLog.new(target.url(path), confidence: 100, found_by: DIRECT_ACCESS)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -11,12 +11,7 @@ module WPScan
|
||||
|
||||
return unless /DUPLICATOR INSTALL-LOG/.match?(target.head_and_get(path).body)
|
||||
|
||||
Model::DuplicatorInstallerLog.new(
|
||||
target.url(path),
|
||||
confidence: 100,
|
||||
found_by: DIRECT_ACCESS,
|
||||
references: { url: 'https://www.exploit-db.com/ghdb/3981/' }
|
||||
)
|
||||
Model::DuplicatorInstallerLog.new(target.url(path), confidence: 100, found_by: DIRECT_ACCESS)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -15,10 +15,7 @@ module WPScan
|
||||
Model::EmergencyPwdResetScript.new(
|
||||
target.url(path),
|
||||
confidence: /password/i.match?(res.body) ? 100 : 40,
|
||||
found_by: DIRECT_ACCESS,
|
||||
references: {
|
||||
url: 'https://codex.wordpress.org/Resetting_Your_Password#Using_the_Emergency_Password_Reset_Script'
|
||||
}
|
||||
found_by: DIRECT_ACCESS
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -16,8 +16,7 @@ module WPScan
|
||||
target.url(path),
|
||||
confidence: 100,
|
||||
found_by: DIRECT_ACCESS,
|
||||
interesting_entries: fpd_entries,
|
||||
references: { url: 'https://www.owasp.org/index.php/Full_Path_Disclosure' }
|
||||
interesting_entries: fpd_entries
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -9,20 +9,14 @@ module WPScan
|
||||
def passive(_opts = {})
|
||||
pattern = %r{#{target.content_dir}/mu\-plugins/}i
|
||||
|
||||
target.in_scope_uris(target.homepage_res) do |uri|
|
||||
target.in_scope_uris(target.homepage_res, '(//@href|//@src)[contains(., "mu-plugins")]') do |uri|
|
||||
next unless uri.path&.match?(pattern)
|
||||
|
||||
url = target.url('wp-content/mu-plugins/')
|
||||
|
||||
target.mu_plugins = true
|
||||
|
||||
return Model::MuPlugins.new(
|
||||
url,
|
||||
confidence: 70,
|
||||
found_by: 'URLs In Homepage (Passive Detection)',
|
||||
to_s: "This site has 'Must Use Plugins': #{url}",
|
||||
references: { url: 'http://codex.wordpress.org/Must_Use_Plugins' }
|
||||
)
|
||||
return Model::MuPlugins.new(url, confidence: 70, found_by: 'URLs In Homepage (Passive Detection)')
|
||||
end
|
||||
nil
|
||||
end
|
||||
@@ -37,13 +31,7 @@ module WPScan
|
||||
|
||||
target.mu_plugins = true
|
||||
|
||||
Model::MuPlugins.new(
|
||||
url,
|
||||
confidence: 80,
|
||||
found_by: DIRECT_ACCESS,
|
||||
to_s: "This site has 'Must Use Plugins': #{url}",
|
||||
references: { url: 'http://codex.wordpress.org/Must_Use_Plugins' }
|
||||
)
|
||||
Model::MuPlugins.new(url, confidence: 80, found_by: DIRECT_ACCESS)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -17,13 +17,7 @@ module WPScan
|
||||
|
||||
target.multisite = true
|
||||
|
||||
Model::Multisite.new(
|
||||
url,
|
||||
confidence: 100,
|
||||
found_by: DIRECT_ACCESS,
|
||||
to_s: 'This site seems to be a multisite',
|
||||
references: { url: 'http://codex.wordpress.org/Glossary#Multisite' }
|
||||
)
|
||||
Model::Multisite.new(url, confidence: 100, found_by: DIRECT_ACCESS)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -20,12 +20,7 @@ module WPScan
|
||||
|
||||
target.registration_enabled = true
|
||||
|
||||
Model::Registration.new(
|
||||
res.effective_url,
|
||||
confidence: 100,
|
||||
found_by: DIRECT_ACCESS,
|
||||
to_s: "Registration is enabled: #{res.effective_url}"
|
||||
)
|
||||
Model::Registration.new(res.effective_url, confidence: 100, found_by: DIRECT_ACCESS)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -13,12 +13,7 @@ module WPScan
|
||||
|
||||
return unless res.code == 200 && res.headers['Content-Type'] =~ %r{\Aapplication/zip}i
|
||||
|
||||
Model::TmmDbMigrate.new(
|
||||
url,
|
||||
confidence: 100,
|
||||
found_by: DIRECT_ACCESS,
|
||||
references: { packetstorm: 131_957 }
|
||||
)
|
||||
Model::TmmDbMigrate.new(url, confidence: 100, found_by: DIRECT_ACCESS)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -13,12 +13,7 @@ module WPScan
|
||||
|
||||
url = target.url(path)
|
||||
|
||||
Model::UploadDirectoryListing.new(
|
||||
url,
|
||||
confidence: 100,
|
||||
found_by: DIRECT_ACCESS,
|
||||
to_s: "Upload directory has listing enabled: #{url}"
|
||||
)
|
||||
Model::UploadDirectoryListing.new(url, confidence: 100, found_by: DIRECT_ACCESS)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -14,11 +14,7 @@ module WPScan
|
||||
|
||||
return unless SQL_PATTERN.match?(res.body)
|
||||
|
||||
Model::UploadSQLDump.new(
|
||||
target.url(path),
|
||||
confidence: 100,
|
||||
found_by: DIRECT_ACCESS
|
||||
)
|
||||
Model::UploadSQLDump.new(target.url(path), confidence: 100, found_by: DIRECT_ACCESS)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -11,17 +11,7 @@ module WPScan
|
||||
|
||||
return unless res.code == 200
|
||||
|
||||
Model::WPCron.new(
|
||||
wp_cron_url,
|
||||
confidence: 60,
|
||||
found_by: DIRECT_ACCESS,
|
||||
references: {
|
||||
url: [
|
||||
'https://www.iplocation.net/defend-wordpress-from-ddos',
|
||||
'https://github.com/wpscanteam/wpscan/issues/1299'
|
||||
]
|
||||
}
|
||||
)
|
||||
Model::WPCron.new(wp_cron_url, confidence: 60, found_by: DIRECT_ACCESS)
|
||||
end
|
||||
|
||||
def wp_cron_url
|
||||
|
||||
@@ -20,7 +20,7 @@ module WPScan
|
||||
end
|
||||
|
||||
def passive_from_css_href(res, opts)
|
||||
target.in_scope_uris(res, '//style/@src|//link/@href') do |uri|
|
||||
target.in_scope_uris(res, '//link/@href[contains(., "style.css")]') do |uri|
|
||||
next unless uri.path =~ %r{/themes/([^\/]+)/style.css\z}i
|
||||
|
||||
return create_theme(Regexp.last_match[1], uri.to_s, opts)
|
||||
|
||||
@@ -16,7 +16,7 @@ module WPScan
|
||||
end
|
||||
|
||||
def errored_response?(response)
|
||||
response.code != 200 && response.body !~ /login_error/i
|
||||
response.code != 200 && response.body !~ /Incorrect username or password/i
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -68,11 +68,9 @@ module WPScan
|
||||
extracted_versions = extracted_versions.select { |x| x =~ /[0-9]+/ }
|
||||
|
||||
sorted = extracted_versions.sort do |x, y|
|
||||
begin
|
||||
Gem::Version.new(x) <=> Gem::Version.new(y)
|
||||
rescue StandardError
|
||||
0
|
||||
end
|
||||
Gem::Version.new(x) <=> Gem::Version.new(y)
|
||||
rescue StandardError
|
||||
0
|
||||
end
|
||||
|
||||
sorted.last
|
||||
|
||||
@@ -19,8 +19,12 @@ module WPScan
|
||||
def aggressive(opts = {})
|
||||
found = []
|
||||
|
||||
enumerate(target_urls(opts), opts.merge(check_full_response: true)) do |_res, slug|
|
||||
found << Model::Plugin.new(slug, target, opts.merge(found_by: found_by, confidence: 80))
|
||||
enumerate(target_urls(opts), opts.merge(check_full_response: true)) do |res, slug|
|
||||
finding_opts = opts.merge(found_by: found_by,
|
||||
confidence: 80,
|
||||
interesting_entries: ["#{res.effective_url}, status: #{res.code}"])
|
||||
|
||||
found << Model::Plugin.new(slug, target, finding_opts)
|
||||
|
||||
raise Error::PluginsThresholdReached if opts[:threshold].positive? && found.size >= opts[:threshold]
|
||||
end
|
||||
|
||||
@@ -19,8 +19,12 @@ module WPScan
|
||||
def aggressive(opts = {})
|
||||
found = []
|
||||
|
||||
enumerate(target_urls(opts), opts.merge(check_full_response: true)) do |_res, slug|
|
||||
found << Model::Theme.new(slug, target, opts.merge(found_by: found_by, confidence: 80))
|
||||
enumerate(target_urls(opts), opts.merge(check_full_response: true)) do |res, slug|
|
||||
finding_opts = opts.merge(found_by: found_by,
|
||||
confidence: 80,
|
||||
interesting_entries: ["#{res.effective_url}, status: #{res.code}"])
|
||||
|
||||
found << Model::Theme.new(slug, target, finding_opts)
|
||||
|
||||
raise Error::ThemesThresholdReached if opts[:threshold].positive? && found.size >= opts[:threshold]
|
||||
end
|
||||
|
||||
@@ -71,11 +71,13 @@ module WPScan
|
||||
return username, 'Display Name', 50 if username
|
||||
end
|
||||
|
||||
# @param [ String ] url
|
||||
# @param [ String, Addressable::URI ] uri
|
||||
#
|
||||
# @return [ String, nil ]
|
||||
def username_from_author_url(url)
|
||||
url[%r{/author/([^/\b]+)/?}i, 1]
|
||||
def username_from_author_url(uri)
|
||||
uri = Addressable::URI.parse(uri) unless uri.is_a?(Addressable::URI)
|
||||
|
||||
uri.path[%r{/author/([^/\b]+)/?}i, 1]
|
||||
end
|
||||
|
||||
# @param [ Typhoeus::Response ] res
|
||||
@@ -83,12 +85,12 @@ module WPScan
|
||||
# @return [ String, nil ] The username found
|
||||
def username_from_response(res)
|
||||
# Permalink enabled
|
||||
target.in_scope_uris(res, '//link/@href|//a/@href') do |uri|
|
||||
username = username_from_author_url(uri.to_s)
|
||||
target.in_scope_uris(res, '//@href[contains(., "author/")]') do |uri|
|
||||
username = username_from_author_url(uri)
|
||||
return username if username
|
||||
end
|
||||
|
||||
# No permalink
|
||||
# No permalink, TODO Maybe use xpath to extract the classes ?
|
||||
res.body[/<body class="archive author author-([^\s]+)[ "]/i, 1]
|
||||
end
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ module WPScan
|
||||
def potential_usernames(res)
|
||||
usernames = []
|
||||
|
||||
target.in_scope_uris(res, '//a/@href') do |uri, node|
|
||||
target.in_scope_uris(res, '//a/@href[contains(., "author")]') do |uri, node|
|
||||
if uri.path =~ %r{/author/([^/\b]+)/?\z}i
|
||||
usernames << [Regexp.last_match[1], 'Author Pattern', 100]
|
||||
elsif /author=[0-9]+/.match?(uri.query)
|
||||
|
||||
@@ -21,7 +21,7 @@ module WPScan
|
||||
loop do
|
||||
current_page += 1
|
||||
|
||||
res = Typhoeus.get(api_url, params: { per_page: MAX_PER_PAGE, page: current_page })
|
||||
res = Browser.get(api_url, params: { per_page: MAX_PER_PAGE, page: current_page })
|
||||
|
||||
total_pages ||= res.headers['X-WP-TotalPages'].to_i
|
||||
|
||||
|
||||
@@ -8,11 +8,15 @@ module WPScan
|
||||
# @param [ String ] type plugins / themes
|
||||
# @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 homepage
|
||||
# @return [ Array<String> ] The plugins/themes detected in the href, src attributes of the page
|
||||
def items_from_links(type, uniq = true)
|
||||
found = []
|
||||
xpath = format(
|
||||
'(//@href|//@src|//@data-src)[contains(., "%s")]',
|
||||
type == 'plugins' ? target.plugins_dir : target.content_dir
|
||||
)
|
||||
|
||||
target.in_scope_uris(page_res) do |uri|
|
||||
target.in_scope_uris(page_res, xpath) do |uri|
|
||||
next unless uri.to_s =~ item_attribute_pattern(type)
|
||||
|
||||
slug = Regexp.last_match[1]&.strip
|
||||
|
||||
@@ -28,7 +28,7 @@ module WPScan
|
||||
end
|
||||
|
||||
def passive_urls_xpath
|
||||
'//a[contains(@href, "rdf")]/@href'
|
||||
'//a[contains(@href, "/rdf")]/@href'
|
||||
end
|
||||
|
||||
def aggressive_urls(_opts = {})
|
||||
|
||||
@@ -8,45 +8,110 @@ module WPScan
|
||||
end
|
||||
|
||||
#
|
||||
# Empty classes for the #type to be correctly displayed (as taken from the self.class from the parent)
|
||||
# Some classes are empty for the #type to be correctly displayed (as taken from the self.class from the parent)
|
||||
#
|
||||
class BackupDB < InterestingFinding
|
||||
# @return [ Hash ]
|
||||
def references
|
||||
@references ||= { url: ['https://github.com/wpscanteam/wpscan/issues/422'] }
|
||||
end
|
||||
end
|
||||
|
||||
class DebugLog < InterestingFinding
|
||||
# @ return [ Hash ]
|
||||
def references
|
||||
@references ||= { url: ['https://codex.wordpress.org/Debugging_in_WordPress'] }
|
||||
end
|
||||
end
|
||||
|
||||
class DuplicatorInstallerLog < InterestingFinding
|
||||
# @return [ Hash ]
|
||||
def references
|
||||
@references ||= { url: ['https://www.exploit-db.com/ghdb/3981/'] }
|
||||
end
|
||||
end
|
||||
|
||||
class EmergencyPwdResetScript < InterestingFinding
|
||||
def references
|
||||
@references ||= {
|
||||
url: ['https://codex.wordpress.org/Resetting_Your_Password#Using_the_Emergency_Password_Reset_Script']
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
class FullPathDisclosure < InterestingFinding
|
||||
# @return [ Hash ]
|
||||
def references
|
||||
@references ||= { url: ['https://www.owasp.org/index.php/Full_Path_Disclosure'] }
|
||||
end
|
||||
end
|
||||
|
||||
class MuPlugins < InterestingFinding
|
||||
# @return [ String ]
|
||||
def to_s
|
||||
@to_s ||= "This site has 'Must Use Plugins': #{url}"
|
||||
end
|
||||
|
||||
# @return [ Hash ]
|
||||
def references
|
||||
@references ||= { url: ['http://codex.wordpress.org/Must_Use_Plugins'] }
|
||||
end
|
||||
end
|
||||
|
||||
class Multisite < InterestingFinding
|
||||
# @return [ String ]
|
||||
def to_s
|
||||
@to_s ||= 'This site seems to be a multisite'
|
||||
end
|
||||
|
||||
# @return [ Hash ]
|
||||
def references
|
||||
@references ||= { url: ['http://codex.wordpress.org/Glossary#Multisite'] }
|
||||
end
|
||||
end
|
||||
|
||||
class Readme < InterestingFinding
|
||||
end
|
||||
|
||||
class Registration < InterestingFinding
|
||||
# @return [ String ]
|
||||
def to_s
|
||||
@to_s ||= "Registration is enabled: #{url}"
|
||||
end
|
||||
end
|
||||
|
||||
class TmmDbMigrate < InterestingFinding
|
||||
# @return [ Hash ]
|
||||
def references
|
||||
@references ||= { packetstorm: [131_957] }
|
||||
end
|
||||
end
|
||||
|
||||
class UploadDirectoryListing < InterestingFinding
|
||||
# @return [ String ]
|
||||
def to_s
|
||||
@to_s ||= "Upload directory has listing enabled: #{url}"
|
||||
end
|
||||
end
|
||||
|
||||
class UploadSQLDump < InterestingFinding
|
||||
end
|
||||
|
||||
class WPCron < InterestingFinding
|
||||
# @return [ String ]
|
||||
def to_s
|
||||
@to_s ||= "The external WP-Cron seems to be enabled: #{url}"
|
||||
end
|
||||
|
||||
# @return [ Hash ]
|
||||
def references
|
||||
@references ||= {
|
||||
url: [
|
||||
'https://www.iplocation.net/defend-wordpress-from-ddos',
|
||||
'https://github.com/wpscanteam/wpscan/issues/1299'
|
||||
]
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
||||
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
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ module WPScan
|
||||
# @option opts [ Hash ] :version_detection The options to use when looking for the version
|
||||
# @option opts [ String ] :url The URL of the item
|
||||
def initialize(slug, blog, opts = {})
|
||||
@slug = URI.decode(slug)
|
||||
@slug = Addressable::URI.unencode(slug)
|
||||
@blog = blog
|
||||
@uri = Addressable::URI.parse(opts[:url]) if opts[:url]
|
||||
|
||||
@@ -83,11 +83,6 @@ module WPScan
|
||||
end
|
||||
end
|
||||
|
||||
# URI.encode is preferered over Addressable::URI.encode as it will encode
|
||||
# leading # character:
|
||||
# URI.encode('#t#') => %23t%23
|
||||
# Addressable::URI.encode('#t#') => #t%23
|
||||
#
|
||||
# @param [ String ] path Optional path to merge with the uri
|
||||
#
|
||||
# @return [ String ]
|
||||
@@ -95,7 +90,7 @@ module WPScan
|
||||
return unless @uri
|
||||
return @uri.to_s unless path
|
||||
|
||||
@uri.join(URI.encode(path)).to_s
|
||||
@uri.join(Addressable::URI.encode(path)).to_s
|
||||
end
|
||||
|
||||
# @return [ Boolean ]
|
||||
@@ -166,7 +161,7 @@ module WPScan
|
||||
# @return [ Typhoeus::Response ]
|
||||
def head_and_get(path, codes = [200], params = {})
|
||||
final_path = +@path_from_blog
|
||||
final_path << URI.encode(path) unless path.nil?
|
||||
final_path << path unless path.nil?
|
||||
|
||||
blog.head_and_get(final_path, codes, params)
|
||||
end
|
||||
|
||||
@@ -8,7 +8,7 @@ module WPScan
|
||||
|
||||
# @return [ Hash ]
|
||||
def references
|
||||
{
|
||||
@references ||= {
|
||||
url: ['http://codex.wordpress.org/XML-RPC_Pingback_API'],
|
||||
metasploit: [
|
||||
'auxiliary/scanner/http/wordpress_ghost_scanner',
|
||||
|
||||
@@ -9,6 +9,6 @@ _______________________________________________________________
|
||||
WordPress Security Scanner by the WPScan Team
|
||||
Version <%= WPScan::VERSION %>
|
||||
<%= ' ' * ((63 - WPScan::DB::Sponsor.text.length)/2) + WPScan::DB::Sponsor.text %>
|
||||
@_WPScan_, @ethicalhack3r, @erwan_lr, @_FireFart_
|
||||
@_WPScan_, @ethicalhack3r, @erwan_lr, @firefart
|
||||
_______________________________________________________________
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<% if @users.empty? -%>
|
||||
<%= notice_icon %> No Valid Passwords Found.
|
||||
<% else -%>
|
||||
<%= notice_icon %> Valid Combinations Found:
|
||||
<%= critical_icon %> Valid Combinations Found:
|
||||
<% @users.each do |user| -%>
|
||||
| Username: <%= user.username %>, Password: <%= user.password %>
|
||||
<% end -%>
|
||||
|
||||
@@ -9,5 +9,5 @@
|
||||
<% end -%>
|
||||
<% else -%>
|
||||
<%= warning_icon %> No WPVulnDB API Token given, as a result vulnerability data has not been output.
|
||||
<%= warning_icon %> You can get a free API token with 50 daily requests by registering at https://wpvulndb.com/users/sign_up.
|
||||
<%= warning_icon %> You can get a free API token with 50 daily requests by registering at https://wpvulndb.com/users/sign_up
|
||||
<% 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 -%>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"@_WPScan_",
|
||||
"@ethicalhack3r",
|
||||
"@erwan_lr",
|
||||
"@_FireFart_"
|
||||
"@firefart"
|
||||
],
|
||||
"sponsor": <%= WPScan::DB::Sponsor.text.to_json %>
|
||||
},
|
||||
|
||||
@@ -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 -%>
|
||||
|
||||
@@ -8,6 +8,6 @@
|
||||
"requests_remaining": <%= @status['requests_remaining'].to_json %>
|
||||
<% end -%>
|
||||
<% else -%>
|
||||
"error": "No WPVulnDB API Token given, as a result vulnerability data has not been output.\nYou can get a free API token with 50 daily requests by registering at https://wpvulndb.com/users/sign_up."
|
||||
"error": "No WPVulnDB API Token given, as a result vulnerability data has not been output.\nYou can get a free API token with 50 daily requests by registering at https://wpvulndb.com/users/sign_up"
|
||||
<% end -%>
|
||||
},
|
||||
@@ -67,13 +67,13 @@ module WPScan
|
||||
# @return [ Hash ] The params for Typhoeus::Request
|
||||
# @note Those params can't be overriden by CLI options
|
||||
def request_params
|
||||
@request_params ||= {
|
||||
@request_params ||= Browser.instance.default_connect_request_params.merge(
|
||||
timeout: 600,
|
||||
connecttimeout: 300,
|
||||
accept_encoding: 'gzip, deflate',
|
||||
cache_ttl: 0,
|
||||
headers: { 'User-Agent' => Browser.instance.default_user_agent, 'Referer' => nil }
|
||||
}
|
||||
headers: { 'User-Agent' => Browser.instance.default_user_agent }
|
||||
)
|
||||
end
|
||||
|
||||
# @return [ String ] The raw file URL associated with the given filename
|
||||
@@ -85,7 +85,7 @@ module WPScan
|
||||
def remote_file_checksum(filename)
|
||||
url = "#{remote_file_url(filename)}.sha512"
|
||||
|
||||
res = Browser.get(url, request_params)
|
||||
res = Typhoeus.get(url, request_params)
|
||||
raise Error::Download, res if res.timed_out? || res.code != 200
|
||||
|
||||
res.body.chomp
|
||||
@@ -126,7 +126,7 @@ module WPScan
|
||||
file_path = local_file_path(filename)
|
||||
file_url = remote_file_url(filename)
|
||||
|
||||
res = Browser.get(file_url, request_params)
|
||||
res = Typhoeus.get(file_url, request_params)
|
||||
raise Error::Download, res if res.timed_out? || res.code != 200
|
||||
|
||||
File.open(file_path, 'wb') { |f| f.write(res.body) }
|
||||
@@ -139,24 +139,22 @@ module WPScan
|
||||
updated = []
|
||||
|
||||
FILES.each do |filename|
|
||||
begin
|
||||
db_checksum = remote_file_checksum(filename)
|
||||
db_checksum = remote_file_checksum(filename)
|
||||
|
||||
# Checking if the file needs to be updated
|
||||
next if File.exist?(local_file_path(filename)) && db_checksum == local_file_checksum(filename)
|
||||
# Checking if the file needs to be updated
|
||||
next if File.exist?(local_file_path(filename)) && db_checksum == local_file_checksum(filename)
|
||||
|
||||
create_backup(filename)
|
||||
dl_checksum = download(filename)
|
||||
create_backup(filename)
|
||||
dl_checksum = download(filename)
|
||||
|
||||
raise "#{filename}: checksums do not match" unless dl_checksum == db_checksum
|
||||
raise Error::ChecksumsMismatch, filename unless dl_checksum == db_checksum
|
||||
|
||||
updated << filename
|
||||
rescue StandardError => e
|
||||
restore_backup(filename)
|
||||
raise e
|
||||
ensure
|
||||
delete_backup(filename) if File.exist?(backup_file_path(filename))
|
||||
end
|
||||
updated << filename
|
||||
rescue StandardError => e
|
||||
restore_backup(filename)
|
||||
raise e
|
||||
ensure
|
||||
delete_backup(filename) if File.exist?(backup_file_path(filename))
|
||||
end
|
||||
|
||||
File.write(last_update_file, Time.now)
|
||||
|
||||
@@ -21,8 +21,10 @@ module WPScan
|
||||
# @return [ Hash ]
|
||||
def self.get(path, params = {})
|
||||
return {} unless token
|
||||
return {} if path.end_with?('/latest') # Remove this when api/v4 is up
|
||||
|
||||
res = Browser.get(uri.join(path), params.merge(request_params))
|
||||
# Typhoeus.get is used rather than Browser.get to avoid merging irrelevant params from the CLI
|
||||
res = Typhoeus.get(uri.join(path), default_request_params.merge(params))
|
||||
|
||||
return {} if res.code == 404 # This is for API inconsistencies when dots in path
|
||||
return JSON.parse(res.body) if NON_ERROR_CODES.include?(res.code)
|
||||
@@ -64,15 +66,14 @@ module WPScan
|
||||
end
|
||||
|
||||
# @return [ Hash ]
|
||||
def self.request_params
|
||||
{
|
||||
# @note Those params can not be overriden by CLI options
|
||||
def self.default_request_params
|
||||
Browser.instance.default_connect_request_params.merge(
|
||||
headers: {
|
||||
'Host' => uri.host, # Reset in case user provided a --vhost for the target
|
||||
'Referer' => nil, # Removes referer set by the cmsscanner to the target url
|
||||
'User-Agent' => Browser.instance.default_user_agent,
|
||||
'Authorization' => "Token token=#{token}"
|
||||
}
|
||||
}
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -8,5 +8,17 @@ module WPScan
|
||||
'Update required, you can not run a scan if a database file is missing.'
|
||||
end
|
||||
end
|
||||
|
||||
class ChecksumsMismatch < Standard
|
||||
attr_reader :db_file
|
||||
|
||||
def initialize(db_file)
|
||||
@db_file = db_file
|
||||
end
|
||||
|
||||
def to_s
|
||||
"#{db_file}: checksums do not match. Please try again in a few minutes."
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -17,7 +17,7 @@ module WPScan
|
||||
end
|
||||
|
||||
# Needed to have inheritance of the @child_class_constants
|
||||
# If inheritance is not needed, then the #child_class_constant can be used in the classe definition, ie
|
||||
# If inheritance is not needed, then the #child_class_constant can be used in the class definition, ie
|
||||
# child_class_constant :FILES, PATTERN: /aaa/i
|
||||
# @return [ Hash ]
|
||||
def self.child_class_constants
|
||||
|
||||
@@ -21,13 +21,11 @@ module WPScan
|
||||
parsers = ALLOWED_PARSERS.include?(self.class::PARSER) ? [self.class::PARSER] : ALLOWED_PARSERS
|
||||
|
||||
parsers.each do |parser|
|
||||
begin
|
||||
parsed = parser.respond_to?(:safe_load) ? parser.safe_load(body) : parser.load(body)
|
||||
parsed = parser.respond_to?(:safe_load) ? parser.safe_load(body) : parser.load(body)
|
||||
|
||||
return parsed if parsed.is_a?(Hash) || parsed.is_a?(Array)
|
||||
rescue StandardError
|
||||
next
|
||||
end
|
||||
return parsed if parsed.is_a?(Hash) || parsed.is_a?(Array)
|
||||
rescue StandardError
|
||||
next
|
||||
end
|
||||
|
||||
nil # Make sure nil is returned in case none of the parsers managed to parse the body correctly
|
||||
|
||||
@@ -37,6 +37,8 @@ module WPScan
|
||||
end
|
||||
end
|
||||
|
||||
# This one has been disabled from the DF.yml as it was causing FPs when a plugin had numerous
|
||||
# files matching a known WP version.
|
||||
class WpItemQueryParameter < QueryParameter
|
||||
def xpath
|
||||
@xpath ||=
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -32,8 +32,12 @@ module WPScan
|
||||
|
||||
if %i[mixed aggressive].include?(detection_mode)
|
||||
%w[wp-admin/install.php wp-login.php].each do |path|
|
||||
return true if in_scope_uris(Browser.get_and_follow_location(url(path))).any? do |uri|
|
||||
WORDPRESS_PATTERN.match?(uri.path)
|
||||
res = Browser.get_and_follow_location(url(path))
|
||||
|
||||
next unless res.code == 200
|
||||
|
||||
in_scope_uris(res, '//link/@href|//script/@src') do |uri|
|
||||
return true if WORDPRESS_PATTERN.match?(uri.path)
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -44,7 +48,7 @@ module WPScan
|
||||
# @param [ Typhoeus::Response ] response
|
||||
# @return [ Boolean ]
|
||||
def wordpress_from_meta_comments_or_scripts?(response)
|
||||
in_scope_uris(response) do |uri|
|
||||
in_scope_uris(response, '//link/@href|//script/@src') do |uri|
|
||||
return true if WORDPRESS_PATTERN.match?(uri.path) || WP_JSON_OEMBED_PATTERN.match?(uri.path)
|
||||
end
|
||||
|
||||
@@ -100,8 +104,9 @@ module WPScan
|
||||
|
||||
unless content_dir
|
||||
pattern = %r{https?://s\d\.wp\.com#{WORDPRESS_PATTERN}}i.freeze
|
||||
xpath = '(//@href|//@src)[contains(., "wp.com")]'
|
||||
|
||||
uris_from_page(homepage_res) do |uri|
|
||||
uris_from_page(homepage_res, xpath) do |uri|
|
||||
return true if uri.to_s.match?(pattern)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -71,7 +71,7 @@ module WPScan
|
||||
#
|
||||
# @return [ String ]
|
||||
def plugin_url(slug)
|
||||
plugins_uri.join("#{URI.encode(slug)}/").to_s
|
||||
plugins_uri.join("#{Addressable::URI.encode(slug)}/").to_s
|
||||
end
|
||||
|
||||
# @return [ String ]
|
||||
@@ -93,7 +93,7 @@ module WPScan
|
||||
#
|
||||
# @return [ String ]
|
||||
def theme_url(slug)
|
||||
themes_uri.join("#{URI.encode(slug)}/").to_s
|
||||
themes_uri.join("#{Addressable::URI.encode(slug)}/").to_s
|
||||
end
|
||||
|
||||
# @return [ String, False ] String of the sub_dir found, false otherwise
|
||||
@@ -105,9 +105,10 @@ module WPScan
|
||||
|
||||
# url_pattern is from CMSScanner::Target
|
||||
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|
|
||||
in_scope_uris(page_res) do |uri|
|
||||
in_scope_uris(page_res, xpath) do |uri|
|
||||
return @sub_dir = Regexp.last_match[1] if uri.to_s.match(pattern)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -2,5 +2,5 @@
|
||||
|
||||
# Version
|
||||
module WPScan
|
||||
VERSION = '3.7.5'
|
||||
VERSION = '3.8.1'
|
||||
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
|
||||
|
||||
@@ -74,20 +74,40 @@ describe WPScan::Controller::VulnApi do
|
||||
context 'when limited requests' do
|
||||
let(:requests) { 100 }
|
||||
|
||||
it 'does not raise an error' do
|
||||
it 'sets the token and does not raise an error' do
|
||||
expect { controller.before_scan }.to_not raise_error
|
||||
|
||||
expect(WPScan::DB::VulnApi.token).to eql 'token'
|
||||
end
|
||||
|
||||
context 'when unlimited requests' do
|
||||
let(:requests) { 'Unlimited' }
|
||||
|
||||
it 'does not raise an error' do
|
||||
it 'sets the token and does not raise an error' do
|
||||
expect { controller.before_scan }.to_not raise_error
|
||||
|
||||
expect(WPScan::DB::VulnApi.token).to eql 'token'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'when token in ENV' do
|
||||
before do
|
||||
ENV[described_class::ENV_KEY] = 'token-from-env'
|
||||
|
||||
expect(WPScan::DB::VulnApi)
|
||||
.to receive(:status)
|
||||
.and_return('success' => true, 'plan' => 'free', 'requests_remaining' => 'Unlimited')
|
||||
end
|
||||
|
||||
it 'sets the token and does not raise an error' do
|
||||
expect { controller.before_scan }.to_not raise_error
|
||||
|
||||
expect(WPScan::DB::VulnApi.token).to eql 'token-from-env'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -6,8 +6,55 @@ describe WPScan::Finders::InterestingFindings::MuPlugins do
|
||||
let(:url) { 'http://ex.lo/' }
|
||||
let(:fixtures) { FINDERS_FIXTURES.join('interesting_findings', 'mu_plugins') }
|
||||
|
||||
before do
|
||||
expect(target).to receive(:content_dir).at_least(1).and_return('wp-content')
|
||||
end
|
||||
|
||||
describe '#passive' do
|
||||
xit
|
||||
before { stub_request(:get, url).to_return(body: body) }
|
||||
|
||||
context 'when no uris' do
|
||||
let(:body) { '' }
|
||||
|
||||
its(:passive) { should be nil }
|
||||
end
|
||||
|
||||
context 'when a large amount of unrelated uris' do
|
||||
let(:body) do
|
||||
Array.new(250) { |i| "<a href='#{url}#{i}.html'>Some Link</a><img src='#{url}img-#{i}.png'/>" }.join("\n")
|
||||
end
|
||||
|
||||
it 'should not take a while to process the page' do
|
||||
time_start = Time.now
|
||||
result = finder.passive
|
||||
time_end = Time.now
|
||||
|
||||
expect(result).to be nil
|
||||
expect(time_end - time_start).to be < 1
|
||||
end
|
||||
end
|
||||
|
||||
context 'when uris' do
|
||||
let(:body) { File.read(fixtures.join(fixture)) }
|
||||
|
||||
context 'when none matching' do
|
||||
let(:fixture) { 'no_match.html' }
|
||||
|
||||
its(:passive) { should be nil }
|
||||
end
|
||||
|
||||
context 'when matching via href' do
|
||||
let(:fixture) { 'match_href.html' }
|
||||
|
||||
its(:passive) { should be_a WPScan::Model::MuPlugins }
|
||||
end
|
||||
|
||||
context 'when matching from src' do
|
||||
let(:fixture) { 'match_src.html' }
|
||||
|
||||
its(:passive) { should be_a WPScan::Model::MuPlugins }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '#aggressive' do
|
||||
|
||||
49
spec/app/finders/passwords/xml_rpc_spec.rb
Normal file
49
spec/app/finders/passwords/xml_rpc_spec.rb
Normal file
@@ -0,0 +1,49 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
describe WPScan::Finders::Passwords::XMLRPC do
|
||||
subject(:finder) { described_class.new(target) }
|
||||
let(:target) { WPScan::Model::XMLRPC.new(url) }
|
||||
let(:url) { 'http://ex.lo/xmlrpc.php' }
|
||||
|
||||
RESPONSE_403_BODY = '<?xml version="1.0" encoding="UTF-8"?>
|
||||
<methodResponse>
|
||||
<fault>
|
||||
<value>
|
||||
<struct>
|
||||
<member>
|
||||
<name>faultCode</name>
|
||||
<value><int>403</int></value>
|
||||
</member>
|
||||
<member>
|
||||
<name>faultString</name>
|
||||
<value><string>Incorrect username or password.</string></value>
|
||||
</member>
|
||||
</struct>
|
||||
</value>
|
||||
</fault>
|
||||
</methodResponse>'
|
||||
|
||||
describe '#attack' do
|
||||
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])
|
||||
end
|
||||
|
||||
let(:users) { %w[admin].map { |username| WPScan::Model::User.new(username) } }
|
||||
|
||||
context 'when status = 200' do
|
||||
let(:status) { 200 }
|
||||
|
||||
its('progress_bar.log') { should be_empty }
|
||||
end
|
||||
|
||||
context 'when status = 403' do
|
||||
let(:status) { 403 }
|
||||
|
||||
its('progress_bar.log') { should be_empty }
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -19,7 +19,7 @@ describe WPScan::Finders::Users::AuthorIdBruteForcing do
|
||||
end
|
||||
end
|
||||
|
||||
describe '#potential_username' do
|
||||
describe '#username_from_response' do
|
||||
[
|
||||
'4.1.1', '4.1.1-permalink',
|
||||
'3.0', '3.0-permalink',
|
||||
@@ -32,6 +32,19 @@ describe WPScan::Finders::Users::AuthorIdBruteForcing do
|
||||
expect(finder.username_from_response(res)).to eql 'admin'
|
||||
end
|
||||
end
|
||||
|
||||
context 'when a lot of unrelated links' do
|
||||
it 'should not take a while to process the page' do
|
||||
body = Array.new(300) { |i| "<a href='#{url}#{i}.html'>Some Link</a>" }.join("\n")
|
||||
body << '<a href="https://wp.lab/author/test/">Link</a>'
|
||||
|
||||
time_start = Time.now
|
||||
expect(finder.username_from_response(Typhoeus::Response.new(body: body))).to eql 'test'
|
||||
time_end = Time.now
|
||||
|
||||
expect(time_end - time_start).to be < 1
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '#display_name_from_body' do
|
||||
|
||||
@@ -16,12 +16,31 @@ describe WPScan::Finders::Users::AuthorPosts do
|
||||
|
||||
results = finder.potential_usernames(res)
|
||||
|
||||
expect(results).to eql([
|
||||
['admin', 'Author Pattern', 100],
|
||||
['admin display_name', 'Display Name', 30],
|
||||
['editor', 'Author Pattern', 100],
|
||||
['editor', 'Display Name', 30]
|
||||
])
|
||||
expect(results).to eql [
|
||||
['admin', 'Author Pattern', 100],
|
||||
['admin display_name', 'Display Name', 30],
|
||||
['editor', 'Author Pattern', 100],
|
||||
['editor', 'Display Name', 30]
|
||||
]
|
||||
end
|
||||
|
||||
context 'when a lot of unrelated uris' do
|
||||
it 'should not take a while to process the page' do
|
||||
body = Array.new(300) { |i| "<a href='#{url}#{i}.html'>Some Link</a>" }.join("\n")
|
||||
body << "<a href='#{url}author/admin/'>Other Link</a>"
|
||||
body << "<a href='#{url}?author=2'>user display name</a>"
|
||||
|
||||
time_start = Time.now
|
||||
results = finder.potential_usernames(Typhoeus::Response.new(body: body))
|
||||
time_end = Time.now
|
||||
|
||||
expect(results).to eql [
|
||||
['admin', 'Author Pattern', 100],
|
||||
['user display name', 'Display Name', 30]
|
||||
]
|
||||
|
||||
expect(time_end - time_start).to be < 1
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -224,11 +224,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
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@ describe WPScan::Model::WpItem do
|
||||
end
|
||||
|
||||
it 'encodes the path' do
|
||||
expect(wp_item.url('#t#')).to eql "#{item_url}%23t%23"
|
||||
expect(wp_item.url('#t#')).to eql "#{item_url}#t%23"
|
||||
expect(wp_item.url('t .txt')).to eql "#{item_url}t%20.txt"
|
||||
end
|
||||
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
|
||||
|
||||
32530
spec/fixtures/db/dynamic_finders.yml
vendored
32530
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" : {
|
||||
|
||||
4268
spec/fixtures/dynamic_finders/expected.yml
vendored
4268
spec/fixtures/dynamic_finders/expected.yml
vendored
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,94 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Woo Pelecard v1.0.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-07-07 07:09+0200\n"
|
||||
"PO-Revision-Date: 2014-07-07 07:09+0200\n"
|
||||
"Last-Translator: Tzvi Rabinovitch <tzvi.ra@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"Language: he_IL\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-Generator: Poedit 1.5.4\n"
|
||||
"X-Poedit-SourceCharset: UTF-8\n"
|
||||
"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;"
|
||||
"_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
|
||||
"X-Poedit-Basepath: .\n"
|
||||
"X-Textdomain-Support: yes\n"
|
||||
"X-Poedit-SearchPath-0: ..\n"
|
||||
|
||||
#: ../10bit-easycard-paybuttons-options.php:18
|
||||
msgid "Settings saved."
|
||||
msgstr "שמרתי את ההגדרות."
|
||||
|
||||
#: ../10bit-easycard-paybuttons-options.php:23
|
||||
msgid "10Bit EasyCard PayButtons Settings"
|
||||
msgstr "כפתורי תשלום איזיקארד"
|
||||
|
||||
#: ../10bit-easycard-paybuttons-options.php:37
|
||||
msgid "Client ID"
|
||||
msgstr "מזהה לקוח"
|
||||
|
||||
# @ TenBit_woo_pelecard
|
||||
#: ../10bit-easycard-paybuttons-options.php:45
|
||||
msgid "Password"
|
||||
msgstr "סיסמה"
|
||||
|
||||
#: ../10bit-easycard-paybuttons-options.php:53
|
||||
msgid "Maximum Payments"
|
||||
msgstr "מספר תשלמים מקסימלי"
|
||||
|
||||
#: ../10bit-easycard-paybuttons-options.php:64
|
||||
msgid "Save Changes"
|
||||
msgstr "שמור שינויים"
|
||||
|
||||
#: ../10bit-easycard-paybuttons-options.php:70
|
||||
msgid "Usage :"
|
||||
msgstr "שימוש"
|
||||
|
||||
#: ../10bit-easycard-paybuttons-options.php:72
|
||||
msgid "Add the folloing short code inside a post or a page :"
|
||||
msgstr "הוסיפו את השורטקוד הבא לדף או לעמוד באתר"
|
||||
|
||||
#: ../10bit-easycard-paybuttons-options.php:76
|
||||
msgid "value : The amount to pay"
|
||||
msgstr "value : הסכום לתשלום"
|
||||
|
||||
#: ../10bit-easycard-paybuttons-options.php:78
|
||||
msgid "item_name : the name of the sold item"
|
||||
msgstr "item_name : שם המוצר למכירה"
|
||||
|
||||
#: ../10bit-easycard-paybuttons-options.php:80
|
||||
msgid "button_class : CSS class for styling"
|
||||
msgstr "button_class : קלאס CSS לעיצוב"
|
||||
|
||||
#: ../10bit-easycard-paybuttons-options.php:82
|
||||
msgid "button_text : Text to show on the button"
|
||||
msgstr "button_text : הטקסט שיופיע על הכפתור"
|
||||
|
||||
#: ../10bit-paybuttons-easycard.php:29
|
||||
msgid "EasyCard Pay Buttons"
|
||||
msgstr "כפתורי תשלום איזיקארד"
|
||||
|
||||
# @ TenBit_woo_pelecard
|
||||
#~ msgid "License Key"
|
||||
#~ msgstr "מפתח"
|
||||
|
||||
#~ msgid "Valid"
|
||||
#~ msgstr "תקין"
|
||||
|
||||
#~ msgid "Invalid"
|
||||
#~ msgstr "לא תקין"
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "Leave blank for not sending a copy"
|
||||
#~ msgstr "השאר ריק במידה ואינך מעוניים בהעתק"
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "10Bit iCount Settings"
|
||||
#~ msgstr "הגדרות icount"
|
||||
|
||||
#~ msgid "Easycard"
|
||||
#~ msgstr "איזיקארד"
|
||||
@@ -0,0 +1,132 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Woo Pelecard v1.0.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-07-09 01:31+0200\n"
|
||||
"PO-Revision-Date: 2014-07-09 01:32+0200\n"
|
||||
"Last-Translator: Tzvi Rabinovitch <tzvi.ra@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"Language: he_IL\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-Generator: Poedit 1.5.4\n"
|
||||
"X-Poedit-SourceCharset: UTF-8\n"
|
||||
"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;"
|
||||
"_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
|
||||
"X-Poedit-Basepath: .\n"
|
||||
"X-Textdomain-Support: yes\n"
|
||||
"X-Poedit-SearchPath-0: ..\n"
|
||||
|
||||
# @ TenBit_woo_pelecard
|
||||
#: ../10bit-paybuttons-pelecard.php:28
|
||||
msgid "pelecard Pay Buttons"
|
||||
msgstr "כפתורי תשלום פלאכארד"
|
||||
|
||||
#: ../10bit-pelecard-paybuttons-options.php:68
|
||||
msgid "Settings saved."
|
||||
msgstr "שמרתי את ההגדרות."
|
||||
|
||||
#: ../10bit-pelecard-paybuttons-options.php:73
|
||||
msgid "10Bit pelecard PayButtons Settings"
|
||||
msgstr "כפתורי תשלום פלאכארד"
|
||||
|
||||
# @ TenBit_woo_pelecard
|
||||
#: ../10bit-pelecard-paybuttons-options.php:87
|
||||
msgid "Terminal Number"
|
||||
msgstr "מספר מסוף סליקה"
|
||||
|
||||
# @ TenBit_woo_pelecard
|
||||
#: ../10bit-pelecard-paybuttons-options.php:95
|
||||
msgid "Username"
|
||||
msgstr "שם משתמש"
|
||||
|
||||
# @ TenBit_woo_pelecard
|
||||
#: ../10bit-pelecard-paybuttons-options.php:103
|
||||
msgid "Password"
|
||||
msgstr "סיסמה"
|
||||
|
||||
#: ../10bit-pelecard-paybuttons-options.php:111
|
||||
msgid "Maximum Payments"
|
||||
msgstr "מספר תשלמים מקסימלי"
|
||||
|
||||
#: ../10bit-pelecard-paybuttons-options.php:119
|
||||
msgid "Currency"
|
||||
msgstr "מטבע"
|
||||
|
||||
#: ../10bit-pelecard-paybuttons-options.php:123
|
||||
msgid "ILS"
|
||||
msgstr "ש\"ח"
|
||||
|
||||
#: ../10bit-pelecard-paybuttons-options.php:124
|
||||
msgid "USD"
|
||||
msgstr "דולר"
|
||||
|
||||
#: ../10bit-pelecard-paybuttons-options.php:130
|
||||
msgid "Success ( thank you ) page URL"
|
||||
msgstr "כתובת הצלחה ( דף תודה )"
|
||||
|
||||
#: ../10bit-pelecard-paybuttons-options.php:138
|
||||
msgid "Error page URL"
|
||||
msgstr "כתובת כשלון"
|
||||
|
||||
#: ../10bit-pelecard-paybuttons-options.php:146
|
||||
msgid "Path to custom logo"
|
||||
msgstr "קישור ללוגו "
|
||||
|
||||
#: ../10bit-pelecard-paybuttons-options.php:154
|
||||
msgid "Path to small custom logo"
|
||||
msgstr "קישור ללוגו קטן "
|
||||
|
||||
#: ../10bit-pelecard-paybuttons-options.php:162
|
||||
msgid "Hide PCI DSS logo"
|
||||
msgstr "הסתר את הלוגו של PCI DSS"
|
||||
|
||||
#: ../10bit-pelecard-paybuttons-options.php:170
|
||||
msgid "Hide Pelecard logo"
|
||||
msgstr "הסתר את לוגו פלאכארד"
|
||||
|
||||
#: ../10bit-pelecard-paybuttons-options.php:178
|
||||
msgid "Path To custom Style sheet(CSS)"
|
||||
msgstr "כתובת כשלון"
|
||||
|
||||
#: ../10bit-pelecard-paybuttons-options.php:183
|
||||
msgid "must be a secured URL ( HTTPS )"
|
||||
msgstr "חייב להיות מכתובת מאובטחת (HTTPS )"
|
||||
|
||||
#: ../10bit-pelecard-paybuttons-options.php:189
|
||||
msgid "Background color"
|
||||
msgstr "צבע רקע"
|
||||
|
||||
#: ../10bit-pelecard-paybuttons-options.php:195
|
||||
msgid "Use hexadecimal color without the #"
|
||||
msgstr "ערך הקסדצימלי ללא #"
|
||||
|
||||
#: ../10bit-pelecard-paybuttons-options.php:217
|
||||
msgid "Save Changes"
|
||||
msgstr "שמור שינויים"
|
||||
|
||||
#: ../10bit-pelecard-paybuttons-options.php:223
|
||||
msgid "Usage :"
|
||||
msgstr "שימוש"
|
||||
|
||||
#: ../10bit-pelecard-paybuttons-options.php:225
|
||||
msgid "Add the following short code inside a post or a page :"
|
||||
msgstr "הוסיפו את השורטקוד הבא לדף או לעמוד באתר"
|
||||
|
||||
#: ../10bit-pelecard-paybuttons-options.php:229
|
||||
msgid "value : The amount to pay"
|
||||
msgstr "value : הסכום לתשלום"
|
||||
|
||||
#: ../10bit-pelecard-paybuttons-options.php:231
|
||||
msgid "item_name : the name of the sold item"
|
||||
msgstr "item_name : שם המוצר למכירה"
|
||||
|
||||
#: ../10bit-pelecard-paybuttons-options.php:233
|
||||
msgid "button_class : CSS class for styling"
|
||||
msgstr "button_class : קלאס CSS לעיצוב"
|
||||
|
||||
#: ../10bit-pelecard-paybuttons-options.php:235
|
||||
msgid "button_text : Text to show on the button"
|
||||
msgstr "button_text : הטקסט שיופיע על הכפתור"
|
||||
@@ -0,0 +1,24 @@
|
||||
# Italian translation for ab-human-time
|
||||
# Copyright (C) 2014 AB Human Time
|
||||
# This file is distributed under the same license as the AB Human Time package.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: AB Human Time 0.1\n"
|
||||
"POT-Creation-Date: 2014-02-26 20:13+0100\n"
|
||||
"PO-Revision-Date: 2014-02-26 21:25+0100\n"
|
||||
"Last-Translator: endrix.develop <endrix.develop@gmail.com>\n"
|
||||
"Language-Team: <endrix.develop@gmail.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 1.6.4\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"Language: it_IT\n"
|
||||
|
||||
#: ../ab-human-time.php:21
|
||||
msgid "Published "
|
||||
msgstr "Pubblicato "
|
||||
|
||||
#: ../ab-human-time.php:23
|
||||
msgid " ago"
|
||||
msgstr " fa"
|
||||
@@ -0,0 +1,49 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: xq-xe-xt-xy 1.0\n"
|
||||
"POT-Creation-Date: 2018-07-11 09:44+0300\n"
|
||||
"PO-Revision-Date: 2018-07-11 09:44+0300\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Marko Maksym\n"
|
||||
"Language: uk_UA\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 2.0.6\n"
|
||||
"X-Poedit-Basepath: ../includes\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
||||
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
"X-Poedit-KeywordsList: __;_e\n"
|
||||
"X-Poedit-SearchPath-0: .\n"
|
||||
|
||||
#: admin/class-admin-main.php:66
|
||||
msgid "Title of the page"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-admin-main.php:66
|
||||
msgid "Link Name"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-admin-main.php:69
|
||||
msgid "Submenu title"
|
||||
msgstr ""
|
||||
|
||||
#: admin/class-admin-main.php:69
|
||||
msgid "Submenu item"
|
||||
msgstr ""
|
||||
|
||||
#: admin/templates/index.php:8
|
||||
msgid "Settings Page"
|
||||
msgstr ""
|
||||
|
||||
#: admin/templates/main_module_menu.php:10
|
||||
msgid "Main page"
|
||||
msgstr ""
|
||||
|
||||
#: admin/templates/main_module_menu.php:13 admin/templates/page1.php:8
|
||||
msgid "Page 1"
|
||||
msgstr ""
|
||||
|
||||
#: admin/templates/main_module_menu.php:16 admin/templates/page2.php:8
|
||||
msgid "Page 2"
|
||||
msgstr ""
|
||||
@@ -0,0 +1,112 @@
|
||||
# Copyright (C) 2016 Kailey Lampert
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# Kailey Lampert <trepmal@gmail.com>, 2016.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: 1.7\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-09-08 17:48-0700\n"
|
||||
"PO-Revision-Date: 2016-09-08 17:48-0700\n"
|
||||
"Last-Translator: Kailey Lampert <trepmal@gmail.com>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=CHARSET\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: active-plugins.php:62
|
||||
msgid "Acitve Plugins is for multisite use only."
|
||||
msgstr ""
|
||||
|
||||
#: active-plugins.php:72 active-plugins.php:83
|
||||
msgid "Active Plugins Across Network"
|
||||
msgstr ""
|
||||
|
||||
#: active-plugins.php:72
|
||||
msgid "Active Plugins"
|
||||
msgstr ""
|
||||
|
||||
#: active-plugins.php:86
|
||||
#, php-format
|
||||
msgid "<a href=\"%s\">Network-Activated Plugins</a>"
|
||||
msgstr ""
|
||||
|
||||
#: active-plugins.php:87
|
||||
#, php-format
|
||||
msgid "<a href=\"%s\">MU Plugins</a>"
|
||||
msgstr ""
|
||||
|
||||
#: active-plugins.php:90
|
||||
#, php-format
|
||||
msgid "List does not include: %s"
|
||||
msgstr ""
|
||||
|
||||
#: active-plugins.php:146
|
||||
msgid ""
|
||||
"Totals <span class=\"description\">each active plugin and how many users</"
|
||||
"span>"
|
||||
msgstr ""
|
||||
|
||||
#: active-plugins.php:176 active-plugins.php:213
|
||||
#, php-format
|
||||
msgid "v%s"
|
||||
msgstr ""
|
||||
|
||||
#: active-plugins.php:180 active-plugins.php:214
|
||||
#, php-format
|
||||
msgid "%1$s %2$s"
|
||||
msgstr ""
|
||||
|
||||
#: active-plugins.php:182
|
||||
#, php-format
|
||||
msgid "%s (Uninstalled)"
|
||||
msgstr ""
|
||||
|
||||
#: active-plugins.php:187
|
||||
#, php-format
|
||||
msgid " (tagged: %s)"
|
||||
msgstr ""
|
||||
|
||||
#: active-plugins.php:197
|
||||
msgid "Select all"
|
||||
msgstr ""
|
||||
|
||||
#: active-plugins.php:198
|
||||
msgid "Deselect all"
|
||||
msgstr ""
|
||||
|
||||
#: active-plugins.php:199
|
||||
msgid "Toggle"
|
||||
msgstr ""
|
||||
|
||||
#: active-plugins.php:209
|
||||
msgid "Plugins with zero (0) users:"
|
||||
msgstr ""
|
||||
|
||||
#: active-plugins.php:217
|
||||
msgid "none"
|
||||
msgstr ""
|
||||
|
||||
#: active-plugins.php:224
|
||||
msgid "Show sites with no active plugins"
|
||||
msgstr ""
|
||||
|
||||
#: active-plugins.php:235
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
|
||||
#: active-plugins.php:236
|
||||
msgid "View"
|
||||
msgstr ""
|
||||
|
||||
#: active-plugins.php:237
|
||||
msgid "Dashboard"
|
||||
msgstr ""
|
||||
|
||||
#: active-plugins.php:238
|
||||
msgid "Plugins"
|
||||
msgstr ""
|
||||
|
||||
#: active-plugins.php:249
|
||||
msgid "(network-activated)"
|
||||
msgstr ""
|
||||
@@ -0,0 +1,428 @@
|
||||
# Copyright (C) 2012
|
||||
# This file is distributed under the same license as the package.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Advanced Category Column\n"
|
||||
"Report-Msgid-Bugs-To: http://wordpress.org/tag/advanced-category-column\n"
|
||||
"POT-Creation-Date: 2016-02-17 11:35+0200\n"
|
||||
"PO-Revision-Date: 2016-02-17 11:36+0200\n"
|
||||
"Last-Translator: Stefan Crämer <translate@atelier-fuenf.de>\n"
|
||||
"Language-Team: Waldemar Stoffel <stoffel@atelier-fuenf.de>\n"
|
||||
"Language: es_ES\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Poedit-SourceCharset: UTF-8\n"
|
||||
"X-Generator: Poedit 1.8.1\n"
|
||||
"X-Poedit-Basepath: ..\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"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Poedit-SearchPath-0: .\n"
|
||||
|
||||
#: advanced-cc.php:112
|
||||
msgid "FAQ"
|
||||
msgstr "FAQ"
|
||||
|
||||
#: advanced-cc.php:113
|
||||
msgid "Donate"
|
||||
msgstr "Donar"
|
||||
|
||||
#: advanced-cc.php:123 class-lib/A5_OptionPageClass.php:31
|
||||
#: class-lib/ACC_AdminClass.php:35
|
||||
msgid "Settings"
|
||||
msgstr "Ajustes"
|
||||
|
||||
#: class-lib/A5_ImageClass.php:48
|
||||
msgid "Permalink to"
|
||||
msgstr "enlace permanente a"
|
||||
|
||||
#: class-lib/A5_OptionPageClass.php:145
|
||||
msgid "Click to toggle"
|
||||
msgstr ""
|
||||
|
||||
#: class-lib/A5_OptionPageClass.php:382
|
||||
msgid "Not set"
|
||||
msgstr ""
|
||||
|
||||
#: class-lib/A5_WidgetClass.php:37
|
||||
msgid "Homepage"
|
||||
msgstr "Página de Inicio"
|
||||
|
||||
#: class-lib/A5_WidgetClass.php:38
|
||||
msgid "Frontpage (e.g. a static page as homepage)"
|
||||
msgstr ""
|
||||
"Página Inicial (por ejemplo, una página estática como página de inicio)"
|
||||
|
||||
#: class-lib/A5_WidgetClass.php:39
|
||||
msgid ""Page" pages"
|
||||
msgstr ""Pagína" páginas"
|
||||
|
||||
#: class-lib/A5_WidgetClass.php:40
|
||||
msgid "Category pages"
|
||||
msgstr "Categoría de páginas"
|
||||
|
||||
#: class-lib/A5_WidgetClass.php:41
|
||||
msgid "Single post pages"
|
||||
msgstr "Páginas de post simples"
|
||||
|
||||
#: class-lib/A5_WidgetClass.php:42
|
||||
msgid "Archive pages"
|
||||
msgstr "Páginas de Archivo"
|
||||
|
||||
#: class-lib/A5_WidgetClass.php:43
|
||||
#, fuzzy
|
||||
msgid "Post type archives"
|
||||
msgstr "Páginas de post simples"
|
||||
|
||||
#: class-lib/A5_WidgetClass.php:44
|
||||
msgid "Tag pages"
|
||||
msgstr "Páginas de Etiquetas"
|
||||
|
||||
#: class-lib/A5_WidgetClass.php:45
|
||||
msgid "Attachments"
|
||||
msgstr "Adjuntos"
|
||||
|
||||
#: class-lib/A5_WidgetClass.php:46
|
||||
msgid "Custom Taxonomy pages (only available, if having a plugin)"
|
||||
msgstr ""
|
||||
"Páginas de Taxonomía Personalizada (sólo está disponible si tiene un plugin)"
|
||||
|
||||
#: class-lib/A5_WidgetClass.php:47
|
||||
msgid "Author pages"
|
||||
msgstr "Páginas del autor"
|
||||
|
||||
#: class-lib/A5_WidgetClass.php:48
|
||||
msgid "Search Results"
|
||||
msgstr "Buscar Resultados"
|
||||
|
||||
#: class-lib/A5_WidgetClass.php:49
|
||||
msgid ""Not Found""
|
||||
msgstr ""No Encontrado""
|
||||
|
||||
#: class-lib/A5_WidgetClass.php:52
|
||||
#, fuzzy
|
||||
msgid "Login Page (only available, if having a plugin)"
|
||||
msgstr ""
|
||||
"Páginas de Taxonomía Personalizada (sólo está disponible si tiene un plugin)"
|
||||
|
||||
#: class-lib/A5_WidgetClass.php:54
|
||||
msgid "Check all"
|
||||
msgstr "Seleccionar todo"
|
||||
|
||||
#: class-lib/A5_WidgetClass.php:56
|
||||
msgid ""
|
||||
"Check, where you want to show the widget. By default, it is showing on the "
|
||||
"homepage and the category pages:"
|
||||
msgstr ""
|
||||
"Seleccione, dónde desea mostrar el widget. Por defecto, se muestra en la "
|
||||
"página principal y en las páginas de la categoría:"
|
||||
|
||||
#: class-lib/A5_WidgetClass.php:92
|
||||
msgid "Under image"
|
||||
msgstr ""
|
||||
|
||||
#: class-lib/A5_WidgetClass.php:92
|
||||
msgid "Left of image"
|
||||
msgstr ""
|
||||
|
||||
#: class-lib/A5_WidgetClass.php:92
|
||||
msgid "Right of image"
|
||||
msgstr ""
|
||||
|
||||
#: class-lib/A5_WidgetClass.php:92
|
||||
msgid "Don't show excerpt"
|
||||
msgstr ""
|
||||
|
||||
#: class-lib/A5_WidgetClass.php:94
|
||||
msgid ""
|
||||
"Choose, whether or not to display the excerpt and whether it comes under the "
|
||||
"thumbnail or next to it."
|
||||
msgstr ""
|
||||
|
||||
#: class-lib/A5_WidgetClass.php:104
|
||||
msgid "Weight of the Post Title:"
|
||||
msgstr "Peso del título del Post:"
|
||||
|
||||
#: class-lib/A5_WidgetClass.php:108
|
||||
msgid "Left"
|
||||
msgstr ""
|
||||
|
||||
#: class-lib/A5_WidgetClass.php:108
|
||||
msgid "Right"
|
||||
msgstr ""
|
||||
|
||||
#: class-lib/A5_WidgetClass.php:108
|
||||
msgid "Center"
|
||||
msgstr ""
|
||||
|
||||
#: class-lib/A5_WidgetClass.php:108
|
||||
msgid "Justify"
|
||||
msgstr ""
|
||||
|
||||
#: class-lib/A5_WidgetClass.php:110
|
||||
msgid "How do you want to align the Post Title?"
|
||||
msgstr ""
|
||||
|
||||
#: class-lib/A5_WidgetClass.php:121
|
||||
msgid ""
|
||||
"Check to have an additional 'read more' link at the end of the "
|
||||
"excerpt."
|
||||
msgstr ""
|
||||
|
||||
#: class-lib/A5_WidgetClass.php:122
|
||||
#, php-format
|
||||
msgid ""
|
||||
"Write here some text for the 'read more' link. By default, it is %s:"
|
||||
msgstr ""
|
||||
|
||||
#: class-lib/A5_WidgetClass.php:123
|
||||
msgid ""
|
||||
"If you want to style the 'read more' link, you can enter a class "
|
||||
"here."
|
||||
msgstr ""
|
||||
|
||||
#: class-lib/ACC_AdminClass.php:63
|
||||
msgid ""
|
||||
"http://wasistlos.waldemarstoffel.com/plugins-fur-wordpress/advanced-category-"
|
||||
"column-plugin"
|
||||
msgstr ""
|
||||
"http://wasistlos.waldemarstoffel.com/plugins-fur-wordpress/advanced-category-"
|
||||
"column-plugin"
|
||||
|
||||
#: class-lib/ACC_AdminClass.php:63
|
||||
msgid "Plugin Support"
|
||||
msgstr ""
|
||||
|
||||
#: class-lib/ACC_AdminClass.php:65
|
||||
msgid ""
|
||||
"Style the links of the widget. If you leave this empty, your theme will "
|
||||
"style the hyperlinks."
|
||||
msgstr ""
|
||||
"El estilo de los enlaces del widget. Si deja el campo vacío, el tema será el "
|
||||
"mismo estilo de los hipervínculos."
|
||||
|
||||
#: class-lib/ACC_AdminClass.php:67
|
||||
msgid "Just input something like,"
|
||||
msgstr "Sólo algo de entrada como,"
|
||||
|
||||
#: class-lib/ACC_AdminClass.php:71
|
||||
msgid "to get fat, blue, underlined links."
|
||||
msgstr "Los enlaces serán, azul subrayado."
|
||||
|
||||
#: class-lib/ACC_AdminClass.php:73
|
||||
msgid ""
|
||||
"You most probably have to use "!important" at the end of each line, "
|
||||
"to make it work."
|
||||
msgstr ""
|
||||
"Lo más probable es usar "!important" al final de cada línea, para "
|
||||
"hacer que funcione."
|
||||
|
||||
#: class-lib/ACC_AdminClass.php:86
|
||||
msgid "Debug Info"
|
||||
msgstr ""
|
||||
|
||||
#: class-lib/ACC_AdminClass.php:105
|
||||
msgid "Styling of the links"
|
||||
msgstr "Estilo de los enlaces"
|
||||
|
||||
#: class-lib/ACC_AdminClass.php:107
|
||||
msgid "Link style:"
|
||||
msgstr "Estílo enlace:"
|
||||
|
||||
#: class-lib/ACC_AdminClass.php:109
|
||||
msgid "Hover style:"
|
||||
msgstr "Estilo hover:"
|
||||
|
||||
#: class-lib/ACC_AdminClass.php:111
|
||||
msgid "Widget container:"
|
||||
msgstr ""
|
||||
|
||||
#: class-lib/ACC_AdminClass.php:111
|
||||
msgid ""
|
||||
"You can enter your own style for the widgets here. This will overwrite the "
|
||||
"styles of your theme."
|
||||
msgstr ""
|
||||
|
||||
#: class-lib/ACC_AdminClass.php:111
|
||||
msgid ""
|
||||
"If you leave this empty, you can still style every instance of the widget "
|
||||
"individually."
|
||||
msgstr ""
|
||||
|
||||
#: class-lib/ACC_AdminClass.php:113
|
||||
#, fuzzy
|
||||
msgid "Compress Style Sheet:"
|
||||
msgstr "Estílo enlace:"
|
||||
|
||||
#: class-lib/ACC_AdminClass.php:113
|
||||
msgid "Click here to compress the style sheet."
|
||||
msgstr ""
|
||||
|
||||
#: class-lib/ACC_AdminClass.php:115
|
||||
msgid "Debug:"
|
||||
msgstr ""
|
||||
|
||||
#: class-lib/ACC_AdminClass.php:115
|
||||
msgid ""
|
||||
"If you can't reach the dynamical style sheet, you'll have to display "
|
||||
"the styles inline. By clicking here you can do so."
|
||||
msgstr ""
|
||||
|
||||
#: class-lib/ACC_AdminClass.php:119
|
||||
msgid "entries"
|
||||
msgstr ""
|
||||
|
||||
#: class-lib/ACC_AdminClass.php:119
|
||||
msgid "entry"
|
||||
msgstr ""
|
||||
|
||||
#: class-lib/ACC_AdminClass.php:121
|
||||
#, php-format
|
||||
msgid "Empty cache (%d %s):"
|
||||
msgstr ""
|
||||
|
||||
#: class-lib/ACC_AdminClass.php:121
|
||||
msgid "You can empty the plugin's cache here, if necessary."
|
||||
msgstr ""
|
||||
|
||||
#: class-lib/ACC_AdminClass.php:129
|
||||
msgid "Just put some css code here."
|
||||
msgstr "Sólo hay que poner algo de código CSS aquí."
|
||||
|
||||
#: class-lib/ACC_AdminClass.php:189
|
||||
msgid "Cache emptied."
|
||||
msgstr ""
|
||||
|
||||
#: class-lib/ACC_WidgetClass.php:18
|
||||
msgid ""
|
||||
"Configure the output and looks of the widget. Then display thumbnails and "
|
||||
"excerpts of posts in your sidebars and define, on what kind of pages they "
|
||||
"will show."
|
||||
msgstr ""
|
||||
"Configure la salida y la apariencia del widget. Entonces se mostrarán las "
|
||||
"miniaturas y extractos de los mensajes en las barras laterales y se definirá "
|
||||
"en qué tipo de páginas se mostrarán."
|
||||
|
||||
#: class-lib/ACC_WidgetClass.php:108
|
||||
msgid "Title:"
|
||||
msgstr "Título:"
|
||||
|
||||
#: class-lib/ACC_WidgetClass.php:109
|
||||
#, php-format
|
||||
msgid ""
|
||||
"To exclude certain categories or to show just a special category, simply "
|
||||
"write their ID's separated by comma (e.g. %s-5, 2, 4%s will show "
|
||||
"categories 2 and 4 and will exclude category 5):"
|
||||
msgstr ""
|
||||
"Para excluir ciertas categorías o para mostrar sólo una categoría especial, "
|
||||
"basta con escribir su ID separado por coma (por ejemplo,%s-5, 2, 4%s "
|
||||
"mostrará las categorías 2 y 4, y se excluye la categoría 5):"
|
||||
|
||||
#: class-lib/ACC_WidgetClass.php:110
|
||||
msgid "Check to show the categories in which the post is filed."
|
||||
msgstr "Seleccione para mostrar las categorías en que se presenta el mensaje."
|
||||
|
||||
#: class-lib/ACC_WidgetClass.php:111
|
||||
msgid ""
|
||||
"Give some text that you want in front of the post's categtories (i.e "
|
||||
"'filed under':"
|
||||
msgstr ""
|
||||
"De algún texto que usted quiere al frente de la categoría de mensajes (ej. "
|
||||
"'llenado debajo':"
|
||||
|
||||
#: class-lib/ACC_WidgetClass.php:112
|
||||
msgid "How many posts will be displayed in the sidebar:"
|
||||
msgstr "Cuántos post se mostrarán en la barra lateral:"
|
||||
|
||||
#: class-lib/ACC_WidgetClass.php:113
|
||||
msgid "Offset (how many posts are spared out in the beginning):"
|
||||
msgstr "Offset (cuántos post están a salvo en el inicio):"
|
||||
|
||||
#: class-lib/ACC_WidgetClass.php:114
|
||||
msgid "Check to have the offset only on your homepage."
|
||||
msgstr ""
|
||||
"Verificación para que el desplazamiento sólo sea en la página principal."
|
||||
|
||||
#: class-lib/ACC_WidgetClass.php:115
|
||||
msgid "Width of the thumbnail (in px):"
|
||||
msgstr "Ancho de las miniaturas (en px)"
|
||||
|
||||
#: class-lib/ACC_WidgetClass.php:116
|
||||
#, php-format
|
||||
msgid ""
|
||||
"If wanting a border around the image, write the style here. %s would make it "
|
||||
"a black border, 1px wide."
|
||||
msgstr ""
|
||||
|
||||
#: class-lib/ACC_WidgetClass.php:118
|
||||
msgid "In case there is no excerpt defined, how many sentences are displayed:"
|
||||
msgstr ""
|
||||
"En caso de que no haya extracto definido, como cuantas frases se muestran:"
|
||||
|
||||
#: class-lib/ACC_WidgetClass.php:119
|
||||
msgid "Check to display words instead of sentences."
|
||||
msgstr "Seleccione para mostrar palabras en lugar de oraciones."
|
||||
|
||||
#: class-lib/ACC_WidgetClass.php:120
|
||||
msgid "Check to have each sentense in a new line."
|
||||
msgstr "Seleccione para tener cada sentencia en una línea nueva."
|
||||
|
||||
#: class-lib/ACC_WidgetClass.php:122
|
||||
msgid ""
|
||||
"Check to return the excerpt unfiltered (might avoid interferences with other "
|
||||
"plugins)."
|
||||
msgstr ""
|
||||
"Seleccione para retornar el extracto sin filtrar (puede evitar "
|
||||
"interferencias con otros plugins)."
|
||||
|
||||
#: class-lib/ACC_WidgetClass.php:123
|
||||
msgid ""
|
||||
"If you want a line between the posts, this is the height in px (if not "
|
||||
"wanting a line, leave emtpy):"
|
||||
msgstr ""
|
||||
"Si usted quiere una línea entre los posts, esta es la altura en píxeles (si "
|
||||
"no quisiera una línea, deje en blanco)"
|
||||
|
||||
#: class-lib/ACC_WidgetClass.php:124
|
||||
msgid "The color of the line (e.g. #cccccc):"
|
||||
msgstr "El color de la línea (e.g. #cccccc):"
|
||||
|
||||
#: class-lib/ACC_WidgetClass.php:126
|
||||
#, fuzzy, php-format
|
||||
msgid ""
|
||||
"Here you can finally style the widget. Simply type something like%sto get "
|
||||
"just a gray outline and a padding of 10 px. If you leave that section empty, "
|
||||
"your theme will style the widget."
|
||||
msgstr ""
|
||||
"Aquí usted puede finalmente ver el estilo del widget. Simplemente escriba "
|
||||
"algo como%1$s%2$sborder-left: 1px dashed;%2$sborder-color: #000000;%3$s"
|
||||
"%2$spara obtener una línea de puntos negro de la izquierda. Si deja la "
|
||||
"sección vacía, su tema le dará estilo al widget."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "The Advanced Category Column does, what the Category Column Plugin does; "
|
||||
#~ "it creates a widget, which you can drag to your sidebar and it will show "
|
||||
#~ "excerpts of the posts of other categories than showed in the center-"
|
||||
#~ "column. It just has more options than the the Category Column Plugin. It "
|
||||
#~ "is tested with WP up to version 3.5 and it might work with versions down "
|
||||
#~ "to 2.9, but will never be explicitly supported for those. The 'Advanced' "
|
||||
#~ "means, that you have a couple of more options than in the 'Category "
|
||||
#~ "Column Plugin'."
|
||||
#~ msgstr ""
|
||||
#~ "La Columna Categoría Avanzada hace, lo que hace el Plugin de Columna de "
|
||||
#~ "Categoría, se crea un widget, que se puede arrastrar a la barra lateral y "
|
||||
#~ "se mostrarán extractos de los mensajes de otras categorías que se "
|
||||
#~ "mostraron en la columna del centro. Simplemente tiene más opciones que el "
|
||||
#~ "Plugin de Columna de Categoría. Se probó con WP hasta la versión 3.5 y "
|
||||
#~ "que podría funcionar con las versiones hasta la 2.9, pero nunca se probó "
|
||||
#~ "explícitamente en aquellos. Los menús 'Avanzados' significan, que tiene "
|
||||
#~ "un par de opciones más que el 'Plugin de Columna de Categoría'."
|
||||
|
||||
#~ msgid "Waldemar Stoffel"
|
||||
#~ msgstr "Waldemar Stoffel"
|
||||
|
||||
#~ msgid "http://www.waldemarstoffel.com"
|
||||
#~ msgstr "http://www.waldemarstoffel.com"
|
||||
@@ -0,0 +1,54 @@
|
||||
# Copyright (C) 2020 Mainul Hassan Main
|
||||
# This file is distributed under the GPLv3.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Advanced WP Table 1.0.1\n"
|
||||
"Report-Msgid-Bugs-To: "
|
||||
"https://wordpress.org/support/plugin/advanced-wp-table\n"
|
||||
"POT-Creation-Date: 2020-03-15 09:43:34+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: grunt-wp-i18n 0.5.4\n"
|
||||
"X-Poedit-KeywordsList: "
|
||||
"__;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_"
|
||||
"attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n"
|
||||
"Language: en\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Poedit-Country: United States\n"
|
||||
"X-Poedit-SourceCharset: UTF-8\n"
|
||||
"X-Poedit-Basepath: ../\n"
|
||||
"X-Poedit-SearchPath-0: .\n"
|
||||
"X-Poedit-Bookmarks: \n"
|
||||
"X-Textdomain-Support: yes\n"
|
||||
|
||||
#. Plugin Name of the plugin/theme
|
||||
msgid "Advanced WP Table"
|
||||
msgstr ""
|
||||
|
||||
#: advanced-wp-table.php:254
|
||||
msgid "Advanced WP Table plugin requires WordPress version 5.0 or greater."
|
||||
msgstr ""
|
||||
|
||||
#: includes/settings.php:25 includes/settings.php:26
|
||||
msgid "Tables"
|
||||
msgstr ""
|
||||
|
||||
#. Plugin URI of the plugin/theme
|
||||
msgid "https://wordpress.org/plugins/advanced-wp-table"
|
||||
msgstr ""
|
||||
|
||||
#. Description of the plugin/theme
|
||||
msgid "Create responsive tables using Gutenberg."
|
||||
msgstr ""
|
||||
|
||||
#. Author of the plugin/theme
|
||||
msgid "Mainul Hassan Main"
|
||||
msgstr ""
|
||||
|
||||
#. Author URI of the plugin/theme
|
||||
msgid "https://mainulhassan.info"
|
||||
msgstr ""
|
||||
@@ -0,0 +1,2 @@
|
||||
February 20, 2020 – Version 1.0
|
||||
- Version 1.0 Initial Release
|
||||
@@ -0,0 +1,53 @@
|
||||
# Copyright (C) 2013 Allow Javascript in Text Widgets
|
||||
# This file is distributed under the same license as the Allow Javascript in Text Widgets package.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Allow Javascript in Text Widgets 0.3\n"
|
||||
"Report-Msgid-Bugs-To: http://wordpress.org/tag/allow-javascript-in-text-"
|
||||
"widgets\n"
|
||||
"POT-Creation-Date: 2013-12-17 09:48:40+00:00\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"PO-Revision-Date: 2013-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
||||
#: allow-javascript-in-text-widgets.php:20
|
||||
msgid "Arbitrary text or HTML"
|
||||
msgstr ""
|
||||
|
||||
#: allow-javascript-in-text-widgets.php:22
|
||||
msgid "Text"
|
||||
msgstr ""
|
||||
|
||||
#: allow-javascript-in-text-widgets.php:49
|
||||
msgid "Title:"
|
||||
msgstr ""
|
||||
|
||||
#: allow-javascript-in-text-widgets.php:54
|
||||
msgid "Automatically add paragraphs"
|
||||
msgstr ""
|
||||
|
||||
#. Plugin Name of the plugin/theme
|
||||
msgid "Allow Javascript in Text Widgets"
|
||||
msgstr ""
|
||||
|
||||
#. Plugin URI of the plugin/theme
|
||||
msgid "http://philipjohn.co.uk/#pj-better-multisite-text-widget"
|
||||
msgstr ""
|
||||
|
||||
#. Description of the plugin/theme
|
||||
msgid ""
|
||||
"Replaces the default text widget with one that allows Javascript so you can "
|
||||
"do basic things like add Google Ads to your sidebar without using other "
|
||||
"plugins."
|
||||
msgstr ""
|
||||
|
||||
#. Author of the plugin/theme
|
||||
msgid "Philip John"
|
||||
msgstr ""
|
||||
|
||||
#. Author URI of the plugin/theme
|
||||
msgid "http://philipjohn.co.uk"
|
||||
msgstr ""
|
||||
10
spec/fixtures/dynamic_finders/plugin_version/anycomment-analytics/change_log/CHANGELOG.md
vendored
Normal file
10
spec/fixtures/dynamic_finders/plugin_version/anycomment-analytics/change_log/CHANGELOG.md
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
# Changelog
|
||||
|
||||
## 0.2 - 30.03.2019
|
||||
|
||||
- Added option to control where generic report would be sent and to define interval of such email
|
||||
- Added generic report with multiple summary information send directly to email
|
||||
|
||||
## 0.1 – 11.02.2019
|
||||
|
||||
First release.
|
||||
7
spec/fixtures/dynamic_finders/plugin_version/apcu-manager/change_log/CHANGELOG.md
vendored
Normal file
7
spec/fixtures/dynamic_finders/plugin_version/apcu-manager/change_log/CHANGELOG.md
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
# Changelog
|
||||
All notable changes to **APCu Manager** are documented in this *changelog*.
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and **APCu Manager** adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [1.0.0] - 2020-01-09
|
||||
### Initial release
|
||||
@@ -0,0 +1,81 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Archive Disabler 1.0\n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/chrisguitarguy/Archive-Disabler/issues\n"
|
||||
"POT-Creation-Date: 2012-03-11 15:35-0600\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>"
|
||||
"Language: \n"
|
||||
|
||||
#: inc/options.php:67
|
||||
msgid "Archive Disabler Options"
|
||||
msgstr ""
|
||||
|
||||
#: inc/options.php:72
|
||||
msgid "Date Archives"
|
||||
msgstr ""
|
||||
|
||||
#: inc/options.php:73
|
||||
msgid "Author Archives"
|
||||
msgstr ""
|
||||
|
||||
#: inc/options.php:74
|
||||
msgid "Taxonomy Archives"
|
||||
msgstr ""
|
||||
|
||||
#: inc/options.php:77
|
||||
msgid "Post Type Archives"
|
||||
msgstr ""
|
||||
|
||||
#: inc/options.php:79
|
||||
msgid "Disabled archives should..."
|
||||
msgstr ""
|
||||
|
||||
#: inc/options.php:92
|
||||
msgid "Choose which archives you would like to disable."
|
||||
msgstr ""
|
||||
|
||||
#: inc/options.php:107
|
||||
msgid "Disable Date Archives"
|
||||
msgstr ""
|
||||
|
||||
#: inc/options.php:121
|
||||
msgid "Disable Author Archives"
|
||||
msgstr ""
|
||||
|
||||
#: inc/options.php:154
|
||||
msgid "Redirect to the home page"
|
||||
msgstr ""
|
||||
|
||||
#: inc/options.php:155
|
||||
msgid "Throw a 404 Not Found Error"
|
||||
msgstr ""
|
||||
|
||||
#: inc/options.php:210
|
||||
msgid "Archive Disabler"
|
||||
msgstr ""
|
||||
|
||||
#: inc/options.php:225
|
||||
msgid "Archive Disabler allows you to \"disable\" the various WordPress archive pages. To do so, check the archives you wish to have disabled below."
|
||||
msgstr ""
|
||||
|
||||
#: inc/options.php:231
|
||||
msgid "Depending on your options, the disabled archives will redirect to the home page or simply 404. Redirecting archives, especially if they were previously enabled, is recommended."
|
||||
msgstr ""
|
||||
|
||||
#: inc/options.php:237
|
||||
#, php-format
|
||||
msgid "Learn more about the author of Archive Disabler, %s. Problems? Report bugs here: %s"
|
||||
msgstr ""
|
||||
|
||||
#: inc/options.php:256
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
#: inc/options.php:333
|
||||
#, php-format
|
||||
msgid "Disable %s Archives"
|
||||
msgstr ""
|
||||
@@ -0,0 +1,57 @@
|
||||
# Copyright (C) 2010 Assign Missing Categories
|
||||
# This file is distributed under the same license as the Assign Missing Categories package.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Assign Missing Categories 1.2\n"
|
||||
"Report-Msgid-Bugs-To: http://wordpress.org/tag/assign-missing-categories\n"
|
||||
"POT-Creation-Date: 2011-07-29 20:58:37+00:00\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"PO-Revision-Date: 2010-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
||||
#: assign-missing-categories.php:54
|
||||
msgid "Categories assigned."
|
||||
msgstr ""
|
||||
|
||||
#. #-#-#-#-# plugin.pot (Assign Missing Categories 1.2) #-#-#-#-#
|
||||
#. Plugin Name of the plugin/theme
|
||||
#: assign-missing-categories.php:60 assign-missing-categories.php:84
|
||||
msgid "Assign Missing Categories"
|
||||
msgstr ""
|
||||
|
||||
#: assign-missing-categories.php:66
|
||||
msgid "Assign the default category »"
|
||||
msgstr ""
|
||||
|
||||
#: assign-missing-categories.php:92
|
||||
msgid "Post %d has no categories assigned."
|
||||
msgstr ""
|
||||
|
||||
#: assign-missing-categories.php:94
|
||||
msgid " Assigned default category.<br />"
|
||||
msgstr ""
|
||||
|
||||
#: assign-missing-categories.php:96
|
||||
msgid "Post %d has a category assigned.<br />"
|
||||
msgstr ""
|
||||
|
||||
#. Plugin URI of the plugin/theme
|
||||
msgid "http://sillybean.net/code/"
|
||||
msgstr ""
|
||||
|
||||
#. Description of the plugin/theme
|
||||
msgid ""
|
||||
"Assigns categories to posts incorrectly stripped of all categories (showing "
|
||||
"unlinked \"Uncategorized\" under Posts)."
|
||||
msgstr ""
|
||||
|
||||
#. Author of the plugin/theme
|
||||
msgid "Stephanie Leary"
|
||||
msgstr ""
|
||||
|
||||
#. Author URI of the plugin/theme
|
||||
msgid "http://sillybean.net/"
|
||||
msgstr ""
|
||||
@@ -0,0 +1,479 @@
|
||||
# Copyright (C) 2020 Mewz
|
||||
# This file is distributed under the same license as the Attribute Stock for WooCommerce plugin.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Attribute Stock for WooCommerce 1.0.0\n"
|
||||
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/attribute-stock-for-woocommerce\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-01-07T12:52:16+00:00\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"X-Generator: WP-CLI 2.4.0\n"
|
||||
"X-Domain: attribute-stock-for-woocommerce\n"
|
||||
|
||||
#. Plugin Name of the plugin
|
||||
msgid "Attribute Stock for WooCommerce"
|
||||
msgstr ""
|
||||
|
||||
#. Plugin URI of the plugin
|
||||
msgid "https://wordpress.org/plugins/attribute-stock-for-woocommerce/"
|
||||
msgstr ""
|
||||
|
||||
#. Description of the plugin
|
||||
msgid "Take control of your product stock with flexible attribute-based stock. Easily track product addons, parts, ingredients, combos, and much more!"
|
||||
msgstr ""
|
||||
|
||||
#. Author of the plugin
|
||||
msgid "Mewz"
|
||||
msgstr ""
|
||||
|
||||
#. Author URI of the plugin
|
||||
msgid "https://mewz.dev/"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/AttributeList.php:45
|
||||
#: src/Actions/Admin/AttributeTermList.php:62
|
||||
msgid "Edit stock"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/AttributeList.php:51
|
||||
#: src/Actions/Admin/AttributeTermList.php:76
|
||||
msgid "List stock items"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/AttributeTermList.php:31
|
||||
#: src/Actions/Admin/AttributeTermList.php:34
|
||||
#: src/Actions/Admin/StockList.php:29
|
||||
#: src/Components/StockReport.php:16
|
||||
#: templates/admin/attributes/edit-associated.php:25
|
||||
msgid "Stock"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/AttributeTermList.php:62
|
||||
msgid "Edit attribute-level stock"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/PluginSupport.php:17
|
||||
#: src/Actions/Admin/PluginSupport.php:54
|
||||
#: src/Actions/Admin/PluginSupport.php:56
|
||||
msgid "Documentation"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/PluginSupport.php:20
|
||||
msgid "Unlock PRO"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/PluginSupport.php:41
|
||||
#: src/Actions/Admin/PluginSupport.php:43
|
||||
msgid "Help & Support"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/PluginSupport.php:44
|
||||
msgid "Need assistance setting up your attribute stock? Found a bug and want to report it? Just feel like chatting? Get in touch!"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/PluginSupport.php:46
|
||||
msgid "Priority support"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/PluginSupport.php:47
|
||||
msgid "Community forum"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/PluginSupport.php:57
|
||||
msgid "Want to learn more about Attribute Stock for WooCommerce? Check out the official online documentation."
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/PluginSupport.php:59
|
||||
msgid "Online documentation"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/PluginSupport.php:66
|
||||
#: src/Actions/Admin/PluginSupport.php:68
|
||||
msgid "Manage License"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/PluginSupport.php:69
|
||||
msgid "View your PRO license, migrate a license, update payment information or cancel your subscription."
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/PluginSupport.php:71
|
||||
msgid "Member dashboard"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/ReportStock.php:22
|
||||
msgid "Attribute Stock"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/ReportStockPro.php:19
|
||||
#: src/Actions/Admin/StockList.php:28
|
||||
#: templates/admin/attributes/edit-associated.php:24
|
||||
#: templates/admin/stock/panel-inventory.php:7
|
||||
msgid "SKU"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/ReportStockPro.php:21
|
||||
#: src/Actions/Admin/StockList.php:27
|
||||
msgid "Actions"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/ReportStockPro.php:34
|
||||
msgid "Edit attribute stock"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockBulkActions.php:26
|
||||
msgid "Enable"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockBulkActions.php:30
|
||||
msgid "Disable"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockBulkActions.php:73
|
||||
msgid "%d attribute stock enabled."
|
||||
msgid_plural "%d attribute stocks enabled."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/Actions/Admin/StockBulkActions.php:75
|
||||
msgid "%d attribute stock disabled."
|
||||
msgid_plural "%d attribute stocks disabled."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/Actions/Admin/StockBulkActions.php:81
|
||||
msgid "No disabled attribute stocks to enable."
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockBulkActions.php:83
|
||||
msgid "No enabled attribute stocks to disable."
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockBulkActions.php:93
|
||||
msgid "%d attribute stock updated."
|
||||
msgid_plural "%d attribute stocks updated."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/Actions/Admin/StockBulkActions.php:94
|
||||
msgid "%d attribute stock not updated, somebody is editing it."
|
||||
msgid_plural "%d attribute stocks not updated, somebody is editing them."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/Actions/Admin/StockBulkActions.php:95
|
||||
msgid "%d attribute stock permanently deleted."
|
||||
msgid_plural "%d attribute stocks permanently deleted."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/Actions/Admin/StockBulkActions.php:96
|
||||
msgid "%d attribute stock moved to the Trash."
|
||||
msgid_plural "%d attribute stocks moved to the Trash."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/Actions/Admin/StockBulkActions.php:97
|
||||
msgid "%d attribute stock restored from the Trash."
|
||||
msgid_plural "%d attribute stocks restored from the Trash."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/Actions/Admin/StockEdit.php:45
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockEdit.php:46
|
||||
msgid "Stock details"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockEdit.php:64
|
||||
msgid "Inventory"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockEdit.php:65
|
||||
msgid "Attributes"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockEdit.php:66
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockEdit.php:122
|
||||
#: src/Actions/Admin/StockEdit.php:125
|
||||
#: src/Actions/Admin/StockEdit.php:127
|
||||
#: src/Actions/Admin/StockEdit.php:135
|
||||
msgid "Attribute stock updated."
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockEdit.php:123
|
||||
msgid "Attribute stock field updated."
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockEdit.php:124
|
||||
msgid "Attribute stock field deleted."
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockEdit.php:126
|
||||
msgid "Revision restored."
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockEdit.php:128
|
||||
msgid "Attribute stock saved."
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockEdit.php:129
|
||||
msgid "Attribute stock submitted."
|
||||
msgstr ""
|
||||
|
||||
#. translators: %s: date
|
||||
#: src/Actions/Admin/StockEdit.php:132
|
||||
msgid "Attribute stock scheduled for: %s."
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockEdit.php:151
|
||||
#: src/Actions/Admin/StockEdit.php:177
|
||||
msgid "Back to attribute stock"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockEdit.php:155
|
||||
msgid "Back to \"%s\" attribute term"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockEdit.php:157
|
||||
msgid "Back to attribute term"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockEdit.php:162
|
||||
msgid "Back to \"%s\" attribute terms"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockEdit.php:164
|
||||
msgid "Back to attribute terms"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockEdit.php:169
|
||||
msgid "Back to \"%s\" attribute"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockEdit.php:171
|
||||
msgid "Back to attribute"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockList.php:30
|
||||
#: templates/admin/stock/panel-inventory.php:29
|
||||
msgid "Notes"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockList.php:31
|
||||
#: templates/admin/stock/metabox-status.php:21
|
||||
msgid "Created"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockList.php:105
|
||||
#: src/Actions/Admin/StockListFilters.php:22
|
||||
#: templates/admin/attributes/edit-associated.php:39
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockListActions.php:40
|
||||
msgid "Duplicate"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockListActions.php:91
|
||||
msgid "Sorry, this attribute stock item does not exist. Perhaps it was deleted?"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockListActions.php:95
|
||||
msgid "Sorry, you are not allowed to do that."
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockListFilters.php:21
|
||||
#: templates/admin/stock/metabox-status.php:10
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/Admin/StockListFilters.php:112
|
||||
msgid "\"Any\""
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/StockNotifications.php:45
|
||||
msgid "Attribute out of stock"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/StockNotifications.php:46
|
||||
#: src/Actions/StockNotificationsPro.php:18
|
||||
msgid "%s is out of stock."
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/StockNotifications.php:62
|
||||
msgid "Attribute low in stock"
|
||||
msgstr ""
|
||||
|
||||
#: src/Actions/StockNotifications.php:63
|
||||
#: src/Actions/StockNotificationsPro.php:27
|
||||
msgid "%s is low in stock. There is %d left."
|
||||
msgid_plural "%s is low in stock. There are %d left."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/Components/StockReport.php:15
|
||||
#: templates/admin/attributes/edit-associated.php:23
|
||||
msgid "Title"
|
||||
msgstr ""
|
||||
|
||||
#: src/Components/StockReport.php:90
|
||||
msgid "No low in stock attributes found."
|
||||
msgstr ""
|
||||
|
||||
#: src/Components/StockReport.php:94
|
||||
msgid "No out of stock attributes found."
|
||||
msgstr ""
|
||||
|
||||
#: src/Components/StockReport.php:98
|
||||
msgid "No most stocked attributes found."
|
||||
msgstr ""
|
||||
|
||||
#: src/Plugin/Loader.php:34
|
||||
#: src/Plugin/LoaderPro.php:32
|
||||
msgid "WooCommerce attribute stock items."
|
||||
msgstr ""
|
||||
|
||||
#: src/Plugin/Loader.php:36
|
||||
#: src/Plugin/LoaderPro.php:34
|
||||
msgctxt "post type general name"
|
||||
msgid "Attribute Stock"
|
||||
msgstr ""
|
||||
|
||||
#: src/Plugin/Loader.php:37
|
||||
#: src/Plugin/LoaderPro.php:35
|
||||
msgctxt "post type singular name"
|
||||
msgid "Attribute Stock"
|
||||
msgstr ""
|
||||
|
||||
#: src/Plugin/Loader.php:38
|
||||
#: src/Plugin/LoaderPro.php:36
|
||||
msgctxt "mewz_attribute_stock"
|
||||
msgid "Add New"
|
||||
msgstr ""
|
||||
|
||||
#: templates/admin/attributes/add-fields.php:13
|
||||
#: templates/admin/attributes/edit-associated.php:60
|
||||
#: templates/admin/attributes/edit-fields.php:26
|
||||
msgid "Unlock Pro"
|
||||
msgstr ""
|
||||
|
||||
#: templates/admin/attributes/add-fields.php:18
|
||||
#: templates/admin/attributes/edit-fields.php:32
|
||||
msgid "Enable stock management at the attribute level."
|
||||
msgstr ""
|
||||
|
||||
#: templates/admin/attributes/add-fields.php:20
|
||||
#: templates/admin/attributes/edit-fields.php:34
|
||||
msgid "Enable stock management at the attribute term level."
|
||||
msgstr ""
|
||||
|
||||
#: templates/admin/attributes/add-fields.php:33
|
||||
#: templates/admin/attributes/edit-fields.php:51
|
||||
msgid "Current stock quantity of this attribute."
|
||||
msgstr ""
|
||||
|
||||
#: templates/admin/attributes/add-fields.php:35
|
||||
#: templates/admin/attributes/edit-fields.php:53
|
||||
msgid "Current stock quantity of this attribute term."
|
||||
msgstr ""
|
||||
|
||||
#: templates/admin/attributes/edit-associated.php:16
|
||||
msgid "Associated stock"
|
||||
msgstr ""
|
||||
|
||||
#: templates/admin/attributes/edit-fields.php:24
|
||||
msgid "Configure"
|
||||
msgstr ""
|
||||
|
||||
#: templates/admin/stock/metabox-status.php:34
|
||||
msgid "Update Stock"
|
||||
msgstr ""
|
||||
|
||||
#: templates/admin/stock/metabox-status.php:34
|
||||
msgid "Create Stock"
|
||||
msgstr ""
|
||||
|
||||
#: templates/admin/stock/panel-inventory.php:10
|
||||
msgid "Unique identifier for stock keeping. Optional."
|
||||
msgstr ""
|
||||
|
||||
#: templates/admin/stock/panel-inventory.php:16
|
||||
msgid "Stock quantity"
|
||||
msgstr ""
|
||||
|
||||
#: templates/admin/stock/panel-inventory.php:23
|
||||
msgid "Current stock quantity of this attribute stock item."
|
||||
msgstr ""
|
||||
|
||||
#: templates/admin/stock/panel-inventory.php:33
|
||||
msgid "Internal notes about this attribute stock item."
|
||||
msgstr ""
|
||||
|
||||
#: templates/admin/stock/panel-settings.php:14
|
||||
msgid "All product types"
|
||||
msgstr ""
|
||||
|
||||
#: templates/admin/stock/panel-settings.php:15
|
||||
msgid "Product type(s) to match against. All other product types will be ignored by this attribute stock. Leave blank to match all valid product types."
|
||||
msgstr ""
|
||||
|
||||
#: templates/admin/stock/panel-settings.php:29
|
||||
msgid "When stock reaches this amount or less, you will be notified by email (if enabled)."
|
||||
msgstr ""
|
||||
|
||||
#: templates/admin/stock/panel-settings.php:38
|
||||
msgid "Limits available stock quantity of associated products."
|
||||
msgstr ""
|
||||
|
||||
#: templates/admin/stock/panel-settings.php:38
|
||||
msgid "Learn more"
|
||||
msgstr ""
|
||||
|
||||
#: assets/dist/admin/stock-edit.js:12
|
||||
msgid "Add match"
|
||||
msgstr ""
|
||||
|
||||
#: assets/dist/admin/stock-edit.js:12
|
||||
msgid "Drag to re-order"
|
||||
msgstr ""
|
||||
|
||||
#: assets/dist/admin/stock-edit.js:12
|
||||
msgid "Remove match set"
|
||||
msgstr ""
|
||||
|
||||
#: assets/dist/admin/stock-edit.js:12
|
||||
msgid "Attribute..."
|
||||
msgstr ""
|
||||
|
||||
#: assets/dist/admin/stock-edit.js:12
|
||||
msgid "Any %s"
|
||||
msgstr ""
|
||||
|
||||
#: assets/dist/admin/stock-edit.js:12
|
||||
msgid "Term..."
|
||||
msgstr ""
|
||||
|
||||
#: assets/dist/admin/stock-edit.js:12
|
||||
msgid "Remove attribute"
|
||||
msgstr ""
|
||||
|
||||
#: assets/dist/admin/stock-edit.js:12
|
||||
msgid "Add attribute"
|
||||
msgstr ""
|
||||
|
||||
#: assets/dist/admin/stock-edit.js:12
|
||||
msgid "Quantity multiplier"
|
||||
msgstr ""
|
||||
|
||||
#: assets/dist/admin/stock-edit.js:12
|
||||
msgid "Set how much stock is reduced when a matching product is purchased. Decimal values are also allowed."
|
||||
msgstr ""
|
||||
302
spec/fixtures/dynamic_finders/plugin_version/author-images/translation_file/lang/author-images.pot
vendored
Normal file
302
spec/fixtures/dynamic_finders/plugin_version/author-images/translation_file/lang/author-images.pot
vendored
Normal file
@@ -0,0 +1,302 @@
|
||||
# Translation of the WordPress plugin Author Image(s) v3.6 by Scott Reilly.
|
||||
# Copyright (C) 2011 Scott Reilly
|
||||
# This file is distributed under the same license as the Author Image(s) plugin.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Author Image(s) 3.6\n"
|
||||
"Report-Msgid-Bugs-To: http://wordpress.org/tag/author-images\n"
|
||||
"POT-Creation-Date: 2012-01-04 05:55:04+00:00\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"PO-Revision-Date: 2010-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
||||
#: author-images.php:125 author-images.php:126
|
||||
msgid "Author Images"
|
||||
msgstr ""
|
||||
|
||||
#: author-images.php:130
|
||||
msgid "Show author name as well?"
|
||||
msgstr ""
|
||||
|
||||
#: author-images.php:131
|
||||
msgid ""
|
||||
"Should the author's name be shown in addition to the author's image? By "
|
||||
"default this is their configured display name."
|
||||
msgstr ""
|
||||
|
||||
#: author-images.php:133
|
||||
msgid "Force use of author's full name when displaying name?"
|
||||
msgstr ""
|
||||
|
||||
#: author-images.php:134
|
||||
msgid ""
|
||||
"If showing the user's name, force display of their full name instead of "
|
||||
"their configured display name (which may be a nickname or first name)? "
|
||||
"<em>NOTE: \"Show author name as well?\" must be checked for this to take "
|
||||
"effect.)</em>"
|
||||
msgstr ""
|
||||
|
||||
#: author-images.php:136
|
||||
msgid "Show author name if no image is found?"
|
||||
msgstr ""
|
||||
|
||||
#: author-images.php:137
|
||||
msgid "Should the author's name be shown if the author's image can't be found?"
|
||||
msgstr ""
|
||||
|
||||
#: author-images.php:140
|
||||
msgid "Image linking"
|
||||
msgstr ""
|
||||
|
||||
#: author-images.php:141
|
||||
msgid ""
|
||||
"How should the author's image be linked?<br />posts : link to the archive of "
|
||||
"the author's posts<br />site : link to the author's website (if defined for "
|
||||
"the author)<br />none : don't link the author image"
|
||||
msgstr ""
|
||||
|
||||
#: author-images.php:143
|
||||
msgid "Image width"
|
||||
msgstr ""
|
||||
|
||||
#: author-images.php:144
|
||||
msgid ""
|
||||
"Specify this to force the browser to scale the width of the image to this "
|
||||
"size. If blank, then the image's original width will be left intact (or "
|
||||
"scaled in proportion to a specified height)."
|
||||
msgstr ""
|
||||
|
||||
#: author-images.php:146
|
||||
msgid "Image height"
|
||||
msgstr ""
|
||||
|
||||
#: author-images.php:147
|
||||
msgid ""
|
||||
"Specify this to force the browser to scale the height of the image to this "
|
||||
"size. If blank, then the image's original height will be left intact (or "
|
||||
"scaled in proportion to a specified width)."
|
||||
msgstr ""
|
||||
|
||||
#: author-images.php:149
|
||||
msgid "Supported image extensions"
|
||||
msgstr ""
|
||||
|
||||
#: author-images.php:150
|
||||
msgid ""
|
||||
"Space-separated list of possible image extensions for image. More efficient "
|
||||
"if you only include extensions you'll actually use."
|
||||
msgstr ""
|
||||
|
||||
#: author-images.php:152
|
||||
msgid "Image directory"
|
||||
msgstr ""
|
||||
|
||||
#: author-images.php:153
|
||||
msgid ""
|
||||
"Directory, relative to the wp-content/ directory of your site, containing "
|
||||
"the author images."
|
||||
msgstr ""
|
||||
|
||||
#: author-images.php:155
|
||||
msgid "Use Gravatar image if possible?"
|
||||
msgstr ""
|
||||
|
||||
#: author-images.php:156
|
||||
msgid ""
|
||||
"If the plugin is unable to find an image for the author, should it try to "
|
||||
"find a Gravatar for the author?"
|
||||
msgstr ""
|
||||
|
||||
#: author-images.php:158
|
||||
msgid "Blank image"
|
||||
msgstr ""
|
||||
|
||||
#: author-images.php:159
|
||||
msgid ""
|
||||
"Image to use if absolutely no author-specific image could be found. This is "
|
||||
"the final fallback."
|
||||
msgstr ""
|
||||
|
||||
#: author-images.php:161
|
||||
msgid "Custom field name for overriding author image"
|
||||
msgstr ""
|
||||
|
||||
#: author-images.php:162
|
||||
msgid ""
|
||||
"If this custom field is specified for a post, its value will be given "
|
||||
"preference as the potential author image, should the image file exist."
|
||||
msgstr ""
|
||||
|
||||
#: author-images.php:275
|
||||
msgid "Template Functions"
|
||||
msgstr ""
|
||||
|
||||
#. #-#-#-#-# author-images.pot (Author Image(s) 3.6) #-#-#-#-#
|
||||
#. Plugin Name of the plugin/theme
|
||||
#: author-images.widget.php:33
|
||||
msgid "Author Image(s)"
|
||||
msgstr ""
|
||||
|
||||
#: author-images.widget.php:34
|
||||
msgid "Display image (if present) and/or name for all authors on the blog."
|
||||
msgstr ""
|
||||
|
||||
#: author-images.widget.php:43
|
||||
msgid "Authors"
|
||||
msgstr ""
|
||||
|
||||
#: author-images.widget.php:44
|
||||
msgid "Title"
|
||||
msgstr ""
|
||||
|
||||
#: author-images.widget.php:46
|
||||
msgid "Exclude admin?"
|
||||
msgstr ""
|
||||
|
||||
#: author-images.widget.php:47
|
||||
msgid "Prevent admin accounts from being listed?"
|
||||
msgstr ""
|
||||
|
||||
#: author-images.widget.php:49
|
||||
msgid "Ignore authors who have't published a post?"
|
||||
msgstr ""
|
||||
|
||||
#: author-images.widget.php:50
|
||||
msgid "Omits showing image for authors who have not published a post."
|
||||
msgstr ""
|
||||
|
||||
#: author-images.widget.php:52
|
||||
msgid "Show user's name?"
|
||||
msgstr ""
|
||||
|
||||
#: author-images.widget.php:53
|
||||
msgid ""
|
||||
"Also show the user's name? By default this is their configured display name."
|
||||
msgstr ""
|
||||
|
||||
#: author-images.widget.php:55
|
||||
msgid "Show user's full name?"
|
||||
msgstr ""
|
||||
|
||||
#: author-images.widget.php:56
|
||||
msgid ""
|
||||
"If showing the user's name, force display of their full name instead of "
|
||||
"their configured display name (which may be a nickname or first name)? "
|
||||
"<em>NOTE: \"Show user's name?\" must be checked for this to take effect.)</"
|
||||
"em>"
|
||||
msgstr ""
|
||||
|
||||
#: author-images.widget.php:58
|
||||
msgid "Show user's name if no image is found?"
|
||||
msgstr ""
|
||||
|
||||
#: author-images.widget.php:59
|
||||
msgid ""
|
||||
"Should the author's name be shown if the author doesn't have an image? If "
|
||||
"not checked, then authors without an image are omitted from the listing."
|
||||
msgstr ""
|
||||
|
||||
#: author-images.widget.php:61
|
||||
msgid "Use Gravatar?"
|
||||
msgstr ""
|
||||
|
||||
#: author-images.widget.php:62
|
||||
msgid "Ask Gravatar for author image if no local image is found?"
|
||||
msgstr ""
|
||||
|
||||
#: c2c-plugin.php:76
|
||||
msgid "Invalid file specified for C2C_Plugin: %s"
|
||||
msgstr ""
|
||||
|
||||
#: c2c-plugin.php:296
|
||||
msgid "See the \"Help\" link to the top-right of the page for more help."
|
||||
msgstr ""
|
||||
|
||||
#: c2c-plugin.php:329
|
||||
msgid "Settings reset."
|
||||
msgstr ""
|
||||
|
||||
#: c2c-plugin.php:340 c2c-plugin.php:348
|
||||
msgid "A value is required for: \"%s\""
|
||||
msgstr ""
|
||||
|
||||
#: c2c-plugin.php:357
|
||||
msgid "Expected integer value for: %s"
|
||||
msgstr ""
|
||||
|
||||
#: c2c-plugin.php:469
|
||||
msgid "More information about %1$s %2$s"
|
||||
msgstr ""
|
||||
|
||||
#: c2c-plugin.php:470
|
||||
msgid "Click for more help on this plugin"
|
||||
msgstr ""
|
||||
|
||||
#: c2c-plugin.php:471
|
||||
msgid " (especially check out the \"Other Notes\" tab, if present)"
|
||||
msgstr ""
|
||||
|
||||
#: c2c-plugin.php:585
|
||||
msgid "More Help"
|
||||
msgstr ""
|
||||
|
||||
#: c2c-plugin.php:597
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
#: c2c-plugin.php:609
|
||||
msgid "Donation for coffee2code plugin: %s"
|
||||
msgstr ""
|
||||
|
||||
#: c2c-plugin.php:610
|
||||
msgid "Coffee fuels my coding."
|
||||
msgstr ""
|
||||
|
||||
#: c2c-plugin.php:848
|
||||
msgid "A plugin by coffee2code"
|
||||
msgstr ""
|
||||
|
||||
#: c2c-plugin.php:857
|
||||
msgid "Save Changes"
|
||||
msgstr ""
|
||||
|
||||
#: c2c-plugin.php:858
|
||||
msgid "Reset Settings"
|
||||
msgstr ""
|
||||
|
||||
#: c2c-plugin.php:864
|
||||
msgid "Scott Reilly, aka coffee2code"
|
||||
msgstr ""
|
||||
|
||||
#: c2c-plugin.php:865
|
||||
msgid "This plugin brought to you by %s."
|
||||
msgstr ""
|
||||
|
||||
#: c2c-plugin.php:866
|
||||
msgid "Please consider a donation"
|
||||
msgstr ""
|
||||
|
||||
#: c2c-plugin.php:867
|
||||
msgid "Did you find this plugin useful?"
|
||||
msgstr ""
|
||||
|
||||
#. Plugin URI of the plugin/theme
|
||||
msgid "http://coffee2code.com/wp-plugins/author-images/"
|
||||
msgstr ""
|
||||
|
||||
#. Description of the plugin/theme
|
||||
msgid ""
|
||||
"Display image (if present) and/or name for the author of a post, or for all "
|
||||
"authors on the blog."
|
||||
msgstr ""
|
||||
|
||||
#. Author of the plugin/theme
|
||||
msgid "Scott Reilly"
|
||||
msgstr ""
|
||||
|
||||
#. Author URI of the plugin/theme
|
||||
msgid "http://coffee2code.com/"
|
||||
msgstr ""
|
||||
25
spec/fixtures/dynamic_finders/plugin_version/autotags/translation_file/AutoTags.pot
vendored
Normal file
25
spec/fixtures/dynamic_finders/plugin_version/autotags/translation_file/AutoTags.pot
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
# AutoTags POT file.
|
||||
# Copyright (C) 2009 blog.jaric.tw
|
||||
# This file is distributed under the GPL license.
|
||||
"Project-Id-Version: AutoTags 1.0\n"
|
||||
"Report-Msgid-Bugs-To: jarickuo@gmail.com\n"
|
||||
"POT-Creation-Date: 2009-07-16 18:00+0100\n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: Jaric <jarickuo@gmail.com>\n"
|
||||
"Language-Team: Jaric <jarickuo@gmail.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: wp-content/plugins/autotags/autoTags.php:24
|
||||
msgid "Fetch tags"
|
||||
msgstr ""
|
||||
|
||||
#: wp-content/plugins/autotags/autoTags.php:25
|
||||
msgid "Fetching tags..."
|
||||
msgstr ""
|
||||
|
||||
#: wp-content/plugins/autotags/autoTags.php:26
|
||||
msgid "powered by"
|
||||
msgstr ""
|
||||
|
||||
@@ -0,0 +1,113 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: AvatarPlus v0.4\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: 2013-02-24 09:53:02+0000\n"
|
||||
"Last-Translator: verantwortlicher <neun12@gmail.com>\n"
|
||||
"Language-Team: \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-Generator: CSL v1.x\n"
|
||||
"X-Poedit-Language: German\n"
|
||||
"X-Poedit-Country: GERMANY\n"
|
||||
"X-Poedit-SourceCharset: utf-8\n"
|
||||
"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;\n"
|
||||
"X-Poedit-Basepath: ../\n"
|
||||
"X-Poedit-Bookmarks: \n"
|
||||
"X-Poedit-SearchPath-0: .\n"
|
||||
"X-Textdomain-Support: yes"
|
||||
|
||||
#. translators: plugin header field 'Name'
|
||||
#: avatarplus.php:0
|
||||
#@ avatarplus
|
||||
msgid "AvatarPlus"
|
||||
msgstr ""
|
||||
|
||||
#. translators: plugin header field 'PluginURI'
|
||||
#. translators: plugin header field 'AuthorURI'
|
||||
#: avatarplus.php:0
|
||||
#@ avatarplus
|
||||
msgid "http://yoda.neun12.de"
|
||||
msgstr ""
|
||||
|
||||
#. translators: plugin header field 'Description'
|
||||
#: avatarplus.php:0
|
||||
#@ avatarplus
|
||||
msgid "Replacing the standard avatar in comments with a Google+, Facebook or Twitter avatar if a user enter a profile url"
|
||||
msgstr "Ersetzt den Standard-Avatar im Kommentarbereich mit einem Google+, Facebook oder Twitter Profilbild falls der Benutzer eine Profil-URL angibt"
|
||||
|
||||
#. translators: plugin header field 'Author'
|
||||
#: avatarplus.php:0
|
||||
#@ avatarplus
|
||||
msgid "Ralf Albert"
|
||||
msgstr ""
|
||||
|
||||
#: avatarplus/backend/backend.php:147
|
||||
#@ avatarplus
|
||||
msgid "AvatarPlus settings"
|
||||
msgstr "AvatarPlus Einstellungen"
|
||||
|
||||
#: avatarplus/backend/backend.php:148
|
||||
#@ avatarplus
|
||||
msgid "Google+ settings"
|
||||
msgstr "Google+ Einstellungen"
|
||||
|
||||
#: avatarplus/backend/backend.php:154
|
||||
#@ avatarplus
|
||||
msgid "Extra field"
|
||||
msgstr "Zusatzfeld"
|
||||
|
||||
#: avatarplus/backend/backend.php:155
|
||||
#@ avatarplus
|
||||
msgid "Cache"
|
||||
msgstr "Cache"
|
||||
|
||||
#: avatarplus/backend/backend.php:156
|
||||
#@ avatarplus
|
||||
msgid "Google+ API key"
|
||||
msgstr "Google+ API Schlüssel"
|
||||
|
||||
#: avatarplus/backend/backend.php:294
|
||||
#@ avatarplus
|
||||
msgid "Save Changes"
|
||||
msgstr "Änderungen übernehmen"
|
||||
|
||||
#: avatarplus/backend/backend.php:328
|
||||
#@ avatarplus
|
||||
msgid "Use extra field in comment form"
|
||||
msgstr "Benutze ein zusätzliches Feld im Kommentarbereich"
|
||||
|
||||
#: avatarplus/backend/backend.php:355
|
||||
#@ avatarplus
|
||||
msgid "Day(s)"
|
||||
msgstr "Tag(e)"
|
||||
|
||||
#: avatarplus/backend/backend.php:356
|
||||
#@ avatarplus
|
||||
msgid "Week(s)"
|
||||
msgstr "Woche(n)"
|
||||
|
||||
#: avatarplus/backend/backend.php:357
|
||||
#@ avatarplus
|
||||
msgid "Month(s)"
|
||||
msgstr "Monat(e)"
|
||||
|
||||
#: avatarplus/backend/backend.php:358
|
||||
#@ avatarplus
|
||||
msgid "Year(s)"
|
||||
msgstr "Jahr(e)"
|
||||
|
||||
#: avatarplus/backend/backend.php:375
|
||||
#@ avatarplus
|
||||
msgid "Your WordPress Cronjobs are disabled. The cache won't be deleted!"
|
||||
msgstr "Deine WordPress Cronjobs sind deaktiviert. Der Cache wird nicht automatisch gelöscht!"
|
||||
|
||||
#. translators: plugin header field 'Version'
|
||||
#: avatarplus.php:0
|
||||
#@ avatarplus
|
||||
msgid "0.4"
|
||||
msgstr ""
|
||||
|
||||
@@ -0,0 +1,143 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: AyeCode Connect 1.0.3\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-02-22 09:23+0000\n"
|
||||
"PO-Revision-Date: 2020-02-22 09:23+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: AyeCode Ltd <contact@ayecode.io>\n"
|
||||
"Language: en_US\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Poedit-KeywordsList: __;__ngettext:1,2;__ngettext_noop:1,2;_c;_e;_ex:1,2c;"
|
||||
"_n:1,2;_n_noop:1,2;_nc:4c,1,2;_nx:4c,1,2;_nx_noop:4c,1,2;_x:1,2c;esc_attr__;"
|
||||
"esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;gettext;"
|
||||
"gettext_noop\n"
|
||||
"X-Poedit-Basepath: ..\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Poedit-SourceCharset: UTF-8\n"
|
||||
"X-Generator: Poedit 1.8.7.1\n"
|
||||
"X-Poedit-SearchPath-0: .\n"
|
||||
|
||||
#: ayecode-connect.php:75
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect-remote-actions.php:411
|
||||
msgid "Download source not valid."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect-settings.php:201
|
||||
msgid "Plugin and theme update notifications must be enabled first"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect-settings.php:261
|
||||
msgid "Something went wrong, try refreshing the page and trying again."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect-settings.php:262
|
||||
msgid "Are you sure you with to disconnect your site?"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect-settings.php:300
|
||||
msgid ""
|
||||
"One click addon installs, live documentation search, support right from your "
|
||||
"WordPress Dashboard"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect-settings.php:308
|
||||
#, php-format
|
||||
msgid "You are connected to AyeCode Connect as user: %s"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect-settings.php:315
|
||||
msgid "Plugin and theme update notifications"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect-settings.php:318
|
||||
#: includes/class-ayecode-connect-settings.php:336
|
||||
#: includes/class-ayecode-connect-settings.php:361
|
||||
msgid "Loading..."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect-settings.php:333
|
||||
msgid "One click addon installs, no more licence keys"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect-settings.php:366
|
||||
msgid "Disconnect site"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect-settings.php:373
|
||||
msgid ""
|
||||
"By clicking the <b>Connect Site</b> button, you agree to our <a "
|
||||
"href='https://ayecode.io/terms-and-conditions/' target='_blank' class='text-"
|
||||
"muted' ><u>Terms of Service</u></a> and to share details with AyeCode Ltd"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect-settings.php:376
|
||||
msgid "Connect Site"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect-settings.php:384
|
||||
msgid ""
|
||||
"It looks like you might be running on localhost, AyeCode Connect will only "
|
||||
"work on a live website."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect-settings.php:395
|
||||
msgid "AycCode Ltd are the creators of:"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect.php:298
|
||||
msgid "Invalid Registration Data"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect.php:302
|
||||
msgid "Invalid Secret"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect.php:559
|
||||
#, php-format
|
||||
msgid "Domain `%1$s` just failed is_usable_domain check as it is empty."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect.php:589
|
||||
#, php-format
|
||||
msgid ""
|
||||
"Domain `%1$s` just failed is_usable_domain check as it is in the forbidden "
|
||||
"array."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect.php:604
|
||||
#, php-format
|
||||
msgid ""
|
||||
"Domain `%1$s` just failed is_usable_domain check as it uses an invalid top "
|
||||
"level domain."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect.php:696
|
||||
#: includes/class-ayecode-connect.php:712
|
||||
#: includes/class-ayecode-connect.php:931
|
||||
msgid "Missing Authorization Header."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect.php:718
|
||||
#: includes/class-ayecode-connect.php:937
|
||||
#: includes/class-ayecode-connect.php:943
|
||||
msgid "Invalid Authorization Header."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect.php:725
|
||||
msgid "Missing blog token."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect.php:730
|
||||
#: includes/class-ayecode-connect.php:951
|
||||
msgid "You are not authorized to do that."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-ayecode-connect.php:1002
|
||||
msgid "Specify an action"
|
||||
msgstr ""
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,74 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Backend Startpage Customizer v0.5\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-11-12 20:05+0100\n"
|
||||
"PO-Revision-Date: 2014-10-06 20:54:51+0000\n"
|
||||
"Last-Translator: Frank Staude <frank@staude.net>\n"
|
||||
"Language-Team: frank@staude.net <frank@staude.net>\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-Generator: Poedit 1.5.4\n"
|
||||
"X-Poedit-Language: \n"
|
||||
"X-Poedit-Country: \n"
|
||||
"X-Poedit-SourceCharset: UTF-8\n"
|
||||
"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;\n"
|
||||
"X-Poedit-Basepath: /Users/staude/Projekte/Wordpress Plugins/wp-content/plugins/backend-startpage-customizer\n"
|
||||
"X-Poedit-Bookmarks: \n"
|
||||
"X-Poedit-SearchPath-0: .\n"
|
||||
"X-Textdomain-Support: yes"
|
||||
|
||||
#: class-backend-startpage-customizer.php:84
|
||||
#@ backend-startpage-customizer
|
||||
msgid "Startpage"
|
||||
msgstr "Startseite"
|
||||
|
||||
#: class-backend-startpage-customizer.php:106
|
||||
#@ backend-startpage-customizer
|
||||
msgid "Select your backend startpage."
|
||||
msgstr "Wählen Sie die Startseite"
|
||||
|
||||
#: class-backend-startpage-customizer.php:137
|
||||
#@ backend-startpage-customizer
|
||||
msgctxt "Userlist Columntitle"
|
||||
msgid "Startpage"
|
||||
msgstr "Startseite"
|
||||
|
||||
#. translators: plugin header field 'Name'
|
||||
#: backend-startpage-customizer.php:0
|
||||
#@ backend-startpage-customizer
|
||||
msgid "Backend Startpage Customizer"
|
||||
msgstr ""
|
||||
|
||||
#. translators: plugin header field 'PluginURI'
|
||||
#: backend-startpage-customizer.php:0
|
||||
#@ backend-startpage-customizer
|
||||
msgid "http://www.staude.net/wordpress/plugins/BackendStartpageCustomizer"
|
||||
msgstr ""
|
||||
|
||||
#. translators: plugin header field 'Description'
|
||||
#: backend-startpage-customizer.php:0
|
||||
#@ backend-startpage-customizer
|
||||
msgid "Redirect the user after login to a predetermined site in the backend."
|
||||
msgstr "Erlaubt für jeden Benutzer festzulegen auf welcher Seite im WordPress Backend er nach der Anmeldung startet."
|
||||
|
||||
#. translators: plugin header field 'Author'
|
||||
#: backend-startpage-customizer.php:0
|
||||
#@ backend-startpage-customizer
|
||||
msgid "Frank Staude"
|
||||
msgstr ""
|
||||
|
||||
#. translators: plugin header field 'AuthorURI'
|
||||
#: backend-startpage-customizer.php:0
|
||||
#@ backend-startpage-customizer
|
||||
msgid "http://www.staude.net/"
|
||||
msgstr ""
|
||||
|
||||
#. translators: plugin header field 'Version'
|
||||
#: backend-startpage-customizer.php:0
|
||||
#@ backend-startpage-customizer
|
||||
msgid "0.5"
|
||||
msgstr ""
|
||||
|
||||
@@ -0,0 +1,232 @@
|
||||
# Copyright (C) 2013 bbPress Digest
|
||||
# This file is distributed under the same license as the bbPress Digest package.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: bbPress Digest 2.1\n"
|
||||
"Report-Msgid-Bugs-To: http://wordpress.org/tag/bbpress-digest\n"
|
||||
"POT-Creation-Date: 2013-12-15 16:55:45+00:00\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"PO-Revision-Date: 2013-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
||||
#: bbpress-digest.php:153
|
||||
msgctxt "plugin actions link"
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
#: bbpress-digest.php:154
|
||||
msgid "Donate"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin.php:49
|
||||
msgctxt "settings section title"
|
||||
msgid "bbPress Digest Settings"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin.php:75
|
||||
msgid "Show one-click subscription"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin.php:82
|
||||
msgid "Show weekly digest option"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin.php:104
|
||||
msgid "bbPress Digest settings for enabling features"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin.php:122
|
||||
msgid "Allow users to include forum in a digest from a single forum page"
|
||||
msgstr ""
|
||||
|
||||
#: inc/admin.php:140
|
||||
msgid ""
|
||||
"Allow users to chose do they want to receive digest once weekly instead of "
|
||||
"once daily"
|
||||
msgstr ""
|
||||
|
||||
#: inc/bbp-profile.php:71 inc/wp-profile.php:43
|
||||
msgid "bbPress Digest Emails"
|
||||
msgstr ""
|
||||
|
||||
#: inc/bbp-profile.php:76 inc/wp-profile.php:51
|
||||
msgctxt "checkbox label"
|
||||
msgid "Yes"
|
||||
msgstr ""
|
||||
|
||||
#: inc/bbp-profile.php:77 inc/wp-profile.php:52
|
||||
msgid ""
|
||||
"Check if you want to receive daily digest with active forum topics for that "
|
||||
"day."
|
||||
msgstr ""
|
||||
|
||||
#: inc/bbp-profile.php:85 inc/wp-profile.php:64
|
||||
msgctxt "radio button label"
|
||||
msgid "Daily"
|
||||
msgstr ""
|
||||
|
||||
#: inc/bbp-profile.php:86 inc/wp-profile.php:65
|
||||
msgctxt "radio button label"
|
||||
msgid "Weekly"
|
||||
msgstr ""
|
||||
|
||||
#: inc/bbp-profile.php:87 inc/wp-profile.php:66
|
||||
msgid "Choose should you receive digest once daily or once weekly."
|
||||
msgstr ""
|
||||
|
||||
#: inc/bbp-profile.php:105 inc/wp-profile.php:84
|
||||
msgid "Choose on which day of a week you want to receive a digest."
|
||||
msgstr ""
|
||||
|
||||
#: inc/bbp-profile.php:113 inc/wp-profile.php:96
|
||||
msgid "Digests should be sent at this time:"
|
||||
msgstr ""
|
||||
|
||||
#: inc/bbp-profile.php:120 inc/wp-profile.php:103
|
||||
msgid ""
|
||||
"Select the hour of the day when you want to receive digest emails. Current "
|
||||
"time is <code>%1$s</code>."
|
||||
msgstr ""
|
||||
|
||||
#: inc/bbp-profile.php:120 inc/wp-profile.php:103
|
||||
msgctxt "current time date format"
|
||||
msgid "Y-m-d G:i:s"
|
||||
msgstr ""
|
||||
|
||||
#: inc/bbp-profile.php:125 inc/wp-profile.php:112
|
||||
msgctxt "radio button label"
|
||||
msgid "All"
|
||||
msgstr ""
|
||||
|
||||
#: inc/bbp-profile.php:126 inc/wp-profile.php:113
|
||||
msgid "Only forums I choose"
|
||||
msgstr ""
|
||||
|
||||
#: inc/bbp-profile.php:127 inc/wp-profile.php:114
|
||||
msgid ""
|
||||
"Choose should digest include topics from all forums or only from selected "
|
||||
"forums."
|
||||
msgstr ""
|
||||
|
||||
#: inc/bbp-profile.php:137 inc/wp-profile.php:124
|
||||
msgid "Choose forums which you want to be included in a digest."
|
||||
msgstr ""
|
||||
|
||||
#: inc/event.php:161
|
||||
msgid "Active topics for week ending %1$s"
|
||||
msgstr ""
|
||||
|
||||
#: inc/event.php:161
|
||||
msgctxt "week span email title date format"
|
||||
msgid "d. F Y."
|
||||
msgstr ""
|
||||
|
||||
#: inc/event.php:164
|
||||
msgid ""
|
||||
"This topics have been active in the last 7 days:\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
|
||||
#: inc/event.php:178
|
||||
msgid "Active topics for %1$s"
|
||||
msgstr ""
|
||||
|
||||
#: inc/event.php:178
|
||||
msgctxt "one day span email title date format"
|
||||
msgid "d. F Y."
|
||||
msgstr ""
|
||||
|
||||
#: inc/event.php:180
|
||||
msgctxt "1. Yesterday 2. Today"
|
||||
msgid "Active topics for %1$s / %2$s"
|
||||
msgstr ""
|
||||
|
||||
#: inc/event.php:180
|
||||
msgctxt "two day span yesterday email title date format"
|
||||
msgid "d. F Y."
|
||||
msgstr ""
|
||||
|
||||
#: inc/event.php:180
|
||||
msgctxt "one day span today email title date format"
|
||||
msgid "d. F Y."
|
||||
msgstr ""
|
||||
|
||||
#: inc/event.php:184
|
||||
msgid ""
|
||||
"This topics have been active in the last 24 hours:\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
|
||||
#: inc/event.php:188
|
||||
msgctxt "1. Topic title 2. Topic URL"
|
||||
msgid "%1$s: %2$s\r\n"
|
||||
msgstr ""
|
||||
|
||||
#: inc/forums-list.php:229
|
||||
msgid "No topics available"
|
||||
msgstr ""
|
||||
|
||||
#: inc/forums-list.php:234
|
||||
msgid "No forums available"
|
||||
msgstr ""
|
||||
|
||||
#: inc/forums-list.php:239
|
||||
msgid "None available"
|
||||
msgstr ""
|
||||
|
||||
#: inc/one-click-handle.php:152 inc/one-click-template.php:54
|
||||
msgid "The request was unsuccessful. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: inc/one-click-template.php:147
|
||||
msgid ""
|
||||
"<a href=\"%1$s\" class=\"%2$s\">Include topics from this forum to the digest "
|
||||
"emails</a> (<a href=\"%3$s\">edit settings</a>)"
|
||||
msgstr ""
|
||||
|
||||
#: inc/one-click-template.php:148
|
||||
msgid ""
|
||||
"Topics from this forum are included in digest emails (<a href=\"%1$s\" class="
|
||||
"\"%2$s\">remove </a> | <a href=\"%3$s\">edit settings</a>)"
|
||||
msgstr ""
|
||||
|
||||
#: inc/wp-profile.php:48
|
||||
msgctxt "settings field label"
|
||||
msgid "Digest emails"
|
||||
msgstr ""
|
||||
|
||||
#: inc/wp-profile.php:60
|
||||
msgid "Daily or weekly"
|
||||
msgstr ""
|
||||
|
||||
#: inc/wp-profile.php:93
|
||||
msgid "Digest time"
|
||||
msgstr ""
|
||||
|
||||
#: inc/wp-profile.php:108
|
||||
msgctxt "settings field label"
|
||||
msgid "Forums"
|
||||
msgstr ""
|
||||
|
||||
#. Plugin Name of the plugin/theme
|
||||
msgid "bbPress Digest"
|
||||
msgstr ""
|
||||
|
||||
#. Plugin URI of the plugin/theme
|
||||
msgid "http://blog.milandinic.com/wordpress/plugins/bbpress-digest/"
|
||||
msgstr ""
|
||||
|
||||
#. Description of the plugin/theme
|
||||
msgid "Send digests with forum's active topics."
|
||||
msgstr ""
|
||||
|
||||
#. Author of the plugin/theme
|
||||
msgid "Milan Dinić"
|
||||
msgstr ""
|
||||
|
||||
#. Author URI of the plugin/theme
|
||||
msgid "http://blog.milandinic.com/"
|
||||
msgstr ""
|
||||
62
spec/fixtures/dynamic_finders/plugin_version/bbredirector/translation_file/languages/default.pot
vendored
Normal file
62
spec/fixtures/dynamic_finders/plugin_version/bbredirector/translation_file/languages/default.pot
vendored
Normal file
@@ -0,0 +1,62 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR Bjorn Wijers <burobjorn at burobjorn dot nl>
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: bbRedirector 1.0\n"
|
||||
"Report-Msgid-Bugs-To: http://wordpress.org/tag/bbRedirector\n"
|
||||
"POT-Creation-Date: 2009-11-24 17:34+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=CHARSET\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: bbRedirector.php:260
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
#: bbRedirector.php:301
|
||||
msgid ""
|
||||
"Whoops! There was a problem with the data you posted. Please go back and try "
|
||||
"again."
|
||||
msgstr ""
|
||||
|
||||
#: bbRedirector.php:320
|
||||
msgid "Allow default redirection:"
|
||||
msgstr ""
|
||||
|
||||
#: bbRedirector.php:325
|
||||
msgid "Default redirect url:"
|
||||
msgstr ""
|
||||
|
||||
#: bbRedirector.php:331
|
||||
msgid "Default HTTP status code :"
|
||||
msgstr ""
|
||||
|
||||
#: bbRedirector.php:337
|
||||
msgid "Metakey name (used to retrieve per-page redirect url):"
|
||||
msgstr ""
|
||||
|
||||
#. Plugin Name of an extension
|
||||
msgid "bbRedirector"
|
||||
msgstr ""
|
||||
|
||||
#. #-#-#-#-# en.pot (bbRedirector 1.0) #-#-#-#-#
|
||||
#. Plugin URI of an extension
|
||||
#. #-#-#-#-# en.pot (bbRedirector 1.0) #-#-#-#-#
|
||||
#. Author URI of an extension
|
||||
msgid "http://www.burobjorn.nl"
|
||||
msgstr ""
|
||||
|
||||
#. Description of an extension
|
||||
msgid "bbRedirector makes it easy to redirect a page to another location."
|
||||
msgstr ""
|
||||
|
||||
#. Author of an extension
|
||||
msgid "Bjorn Wijers <burobjorn at burobjorn dot nl>"
|
||||
msgstr ""
|
||||
33
spec/fixtures/dynamic_finders/plugin_version/bdthemes-prime-slider-lite/change_log/changelog.txt
vendored
Normal file
33
spec/fixtures/dynamic_finders/plugin_version/bdthemes-prime-slider-lite/change_log/changelog.txt
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
## 1.1.0 [16th November 2019]
|
||||
|
||||
### Added
|
||||
|
||||
- WooCommerce Base Slider added
|
||||
- Brand new dashboard added
|
||||
- Upgrade option added in dashboard
|
||||
|
||||
|
||||
### Fixed
|
||||
|
||||
- Image responsive issue fixed
|
||||
- Widget on/off issue fixed
|
||||
- Button link empty error fixed
|
||||
- Video thumb condition fixed for slice skin
|
||||
- Video background responsive issue fixed for meteor skin
|
||||
|
||||
## 1.0.1 [4rd November 2019]
|
||||
|
||||
### Added
|
||||
|
||||
- Added Woocommerce Widget
|
||||
|
||||
### Fixed
|
||||
|
||||
- General widget meteor skin thumbnav video height issue
|
||||
- Isolate widget locate skin scroll down & dotnav number issue
|
||||
- Isolate widget slice skin video play button with thumbnav image show hide
|
||||
- Isolate widget slice skin social icon below background remove
|
||||
- Isolate widget slice skin excerpt height issue
|
||||
|
||||
## 1.0.0
|
||||
- Initial Release
|
||||
86
spec/fixtures/dynamic_finders/plugin_version/beastiepress/translation_file/beastiepress-en_US.po
vendored
Normal file
86
spec/fixtures/dynamic_finders/plugin_version/beastiepress/translation_file/beastiepress-en_US.po
vendored
Normal file
@@ -0,0 +1,86 @@
|
||||
# Translation of the WordPress plugin BeastiePress 1.0 by Nicole Reid.
|
||||
# Copyright (C) 2010 Nicole Reid
|
||||
# This file is distributed under the same license as the BeastiePress package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: BeastiePress 1.0\n"
|
||||
"Report-Msgid-Bugs-To: http://wordpress.org/tag/beastiepress\n"
|
||||
"POT-Creation-Date: 2010-10-25 00:05-0400\n"
|
||||
"PO-Revision-Date: 2010-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: beastiepress.php:128
|
||||
msgid "BeastiePress requires at least WordPress 2.8."
|
||||
msgstr ""
|
||||
|
||||
#: beastiepress.php:191
|
||||
msgid "You do not have sufficient permissions to access this page."
|
||||
msgstr ""
|
||||
|
||||
#: beastiepress.php:198
|
||||
msgid "BeastiePress Settings"
|
||||
msgstr ""
|
||||
|
||||
#: beastiepress.php:205 beastiepress.php:208
|
||||
msgid "Port Linking"
|
||||
msgstr ""
|
||||
|
||||
#: beastiepress.php:212 beastiepress.php:255 beastiepress.php:280
|
||||
#: beastiepress.php:305
|
||||
msgid "Enable"
|
||||
msgstr ""
|
||||
|
||||
#: beastiepress.php:230
|
||||
#, php-format
|
||||
msgid "Use the %s Ports index."
|
||||
msgstr ""
|
||||
|
||||
#: beastiepress.php:240 beastiepress.php:265 beastiepress.php:290
|
||||
#: beastiepress.php:315
|
||||
#, php-format
|
||||
msgid "Match the %s tag."
|
||||
msgstr ""
|
||||
|
||||
#: beastiepress.php:248 beastiepress.php:251
|
||||
msgid "Problem Report Linking"
|
||||
msgstr ""
|
||||
|
||||
#: beastiepress.php:273 beastiepress.php:276
|
||||
msgid "File Tagging"
|
||||
msgstr ""
|
||||
|
||||
#: beastiepress.php:298 beastiepress.php:301
|
||||
msgid "Manual Page Linking"
|
||||
msgstr ""
|
||||
|
||||
#: beastiepress.php:328
|
||||
msgid "Save Changes"
|
||||
msgstr ""
|
||||
|
||||
#. Plugin Name of the plugin/theme
|
||||
msgid "BeastiePress"
|
||||
msgstr ""
|
||||
|
||||
#. Plugin URI of the plugin/theme
|
||||
msgid "http://cooltrainer.org/software/beastiepress/"
|
||||
msgstr ""
|
||||
|
||||
#. Description of the plugin/theme
|
||||
msgid "Adds some FreeBSD-specific shortcodes to WordPress"
|
||||
msgstr ""
|
||||
|
||||
#. Author of the plugin/theme
|
||||
msgid "Nicole Reid"
|
||||
msgstr ""
|
||||
|
||||
#. Author URI of the plugin/theme
|
||||
msgid "http://cooltrainer.org"
|
||||
msgstr ""
|
||||
@@ -0,0 +1,5 @@
|
||||
# Changelog
|
||||
All notable changes to the plugin will be documented in this file.
|
||||
|
||||
## 1.0.0 - 2019-10-10
|
||||
### Initial release
|
||||
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"title": "Best Restaurant Menu by PriceListo",
|
||||
"name": "best-restaurant-menu",
|
||||
"version": "1.0.0",
|
||||
"description": "",
|
||||
"main": "best-restaurant-menu.php",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+ssh://git@bitbucket.org/MahmoudBasiony/best-restaurant-menu.git"
|
||||
},
|
||||
"keywords": [
|
||||
"wordpress",
|
||||
"menu",
|
||||
"restaurant",
|
||||
"food",
|
||||
"services"
|
||||
],
|
||||
"author": "PriceListo",
|
||||
"license": "GPL-3.0-or-later",
|
||||
"homepage": "https://bitbucket.org/MahmoudBasiony/best-restaurant-menu#readme.md",
|
||||
"devDependencies": {
|
||||
"babel-core": "^6.26.0",
|
||||
"babel-preset-env": "^1.6.1",
|
||||
"cleave.js": "^1.5.0",
|
||||
"del": "^3.0.0",
|
||||
"gulp": "^3.9.1",
|
||||
"gulp-babel": "^7.0.1",
|
||||
"gulp-concat": "^2.6.1",
|
||||
"gulp-jshint": "^2.1.0",
|
||||
"gulp-rename": "^1.2.2",
|
||||
"gulp-sass": "^4.0.1",
|
||||
"gulp-uglify": "^3.0.0",
|
||||
"gulp-uglifycss": "^1.0.9",
|
||||
"gulp-util": "^3.0.8",
|
||||
"gulp-wp-pot": "^2.2.0",
|
||||
"jshint": "^2.9.5"
|
||||
},
|
||||
"dependencies": {
|
||||
"font-awesome": "^4.7.0",
|
||||
"select2": "^4.0.10",
|
||||
"sweetalert2": "^8.17.1"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
*** Changelog ***
|
||||
|
||||
= 1.0.1 - 27/12/2019 =
|
||||
|
||||
* Tracking code fix
|
||||
|
||||
= 1.0.0 - 14/11/2019 =
|
||||
|
||||
* Initial release
|
||||
22
spec/fixtures/dynamic_finders/plugin_version/better-file-editor/composer_file/package.json
vendored
Normal file
22
spec/fixtures/dynamic_finders/plugin_version/better-file-editor/composer_file/package.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"name": "better-file-editor",
|
||||
"title": "Better File Editor",
|
||||
"description": "Adds line numbers, syntax highlighting, code folding, and lots more to the theme and plugin editors in the admin panel.",
|
||||
"version": "2.3.1",
|
||||
"homepage": "https://wordpress.org/plugins/better-file-editor/",
|
||||
"author": {
|
||||
"name": "Bryan Petty",
|
||||
"email": "bryan@ibaku.net",
|
||||
"url": "https://profiles.wordpress.org/bpetty/"
|
||||
},
|
||||
"devDependencies": {
|
||||
"grunt": "~0.4.5",
|
||||
"grunt-contrib-clean": "~0.6.0",
|
||||
"grunt-contrib-cssmin": "~0.14.0",
|
||||
"grunt-contrib-jshint": "~0.11.3",
|
||||
"grunt-contrib-nodeunit": "~0.4.1",
|
||||
"grunt-contrib-uglify": "~0.9.2",
|
||||
"grunt-contrib-watch": "~0.6.1",
|
||||
"grunt-sass": "~1.0.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
{
|
||||
"name": "wp-job-manager-blocks-cgb-guten-block",
|
||||
"version": "1.0.0",
|
||||
"main": "Gruntfile.js",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"start": "node scripts/start.js",
|
||||
"build": "node scripts/build.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"autoprefixer": "^7.2.4",
|
||||
"babel-core": "^6.25.0",
|
||||
"babel-eslint": "^8.2.1",
|
||||
"babel-loader": "^7.1.1",
|
||||
"babel-preset-cgb": "^1.7.0",
|
||||
"cgb-dev-utils": "^1.6.0",
|
||||
"chalk": "^2.3.0",
|
||||
"classnames": "^2.2.6",
|
||||
"cross-env": "^5.0.1",
|
||||
"cross-spawn": "^5.1.0",
|
||||
"eslint": "^4.15.0",
|
||||
"eslint-config-wordpress": "^2.0.0",
|
||||
"eslint-plugin-jest": "^21.6.1",
|
||||
"eslint-plugin-jsx-a11y": "^6.0.3",
|
||||
"eslint-plugin-react": "^7.5.1",
|
||||
"eslint-plugin-wordpress": "^0.1.0",
|
||||
"extract-text-webpack-plugin": "^3.0.2",
|
||||
"filesize": "^3.5.11",
|
||||
"fs-extra": "^5.0.0",
|
||||
"gzip-size": "^4.1.0",
|
||||
"inquirer": "^5.0.0",
|
||||
"mem": "^6.0.0",
|
||||
"node-sass": "^4.7.2",
|
||||
"ora": "^1.3.0",
|
||||
"postcss-loader": "^2.0.10",
|
||||
"raw-loader": "^0.5.1",
|
||||
"resolve-pkg": "^1.0.0",
|
||||
"sass-loader": "^6.0.6",
|
||||
"shelljs": "^0.8.0",
|
||||
"style-loader": "^0.23.1",
|
||||
"update-notifier": "^2.3.0",
|
||||
"webpack": "^3.1.0"
|
||||
},
|
||||
"babel": {
|
||||
"presets": [
|
||||
[
|
||||
"env",
|
||||
{
|
||||
"modules": false,
|
||||
"targets": {
|
||||
"browsers": [
|
||||
"last 2 Chrome versions",
|
||||
"last 2 Firefox versions",
|
||||
"last 2 Safari versions",
|
||||
"last 2 iOS versions",
|
||||
"last 1 Android version",
|
||||
"last 1 ChromeAndroid version",
|
||||
"ie 11"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"plugins": [
|
||||
[
|
||||
"transform-object-rest-spread"
|
||||
],
|
||||
[
|
||||
"transform-object-rest-spread",
|
||||
{
|
||||
"useBuiltIns": true
|
||||
}
|
||||
],
|
||||
[
|
||||
"transform-react-jsx",
|
||||
{
|
||||
"pragma": "wp.element.createElement"
|
||||
}
|
||||
],
|
||||
[
|
||||
"transform-runtime",
|
||||
{
|
||||
"helpers": false,
|
||||
"polyfill": false,
|
||||
"regenerator": true
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"devDependencies": {
|
||||
"grunt": "^1.0.4",
|
||||
"grunt-wp-i18n": "^1.0.3",
|
||||
"grunt-wp-readme-to-markdown": "^1.0.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
# Copyright (C) 2019 Bengal Studio
|
||||
# This file is distributed under the GPL2+.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Blocks for WP Job Manager 1.0.0\n"
|
||||
"Report-Msgid-Bugs-To: "
|
||||
"https://wordpress.org/support/plugin/wp-job-manager-blocks\n"
|
||||
"POT-Creation-Date: 2019-11-13 03:47:30+00:00\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"PO-Revision-Date: 2019-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: en\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Poedit-Country: United States\n"
|
||||
"X-Poedit-SourceCharset: UTF-8\n"
|
||||
"X-Poedit-KeywordsList: "
|
||||
"__;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_"
|
||||
"attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n"
|
||||
"X-Poedit-Basepath: ../\n"
|
||||
"X-Poedit-SearchPath-0: .\n"
|
||||
"X-Poedit-Bookmarks: \n"
|
||||
"X-Textdomain-Support: yes\n"
|
||||
"X-Generator: grunt-wp-i18n 1.0.3\n"
|
||||
|
||||
#: blocks-for-wp-job-manager.php:36 blocks-for-wp-job-manager.php:54
|
||||
#. translators: 1: composer command. 2: plugin directory
|
||||
msgid ""
|
||||
"Your installation of the Blocks for WP Job Manager plugin is incomplete. "
|
||||
"Please run %1$s within the %2$s directory."
|
||||
msgstr ""
|
||||
|
||||
#: src/Plugin.php:172
|
||||
#. translators: URL of WP Job Manager plugin
|
||||
msgid ""
|
||||
"The Blocks for WP Job Manager plugin requires <a href=\"%s\">WP Job "
|
||||
"Manager</a> 1.30.0 or greater to be installed and active."
|
||||
msgstr ""
|
||||
|
||||
#: src/Plugin.php:178
|
||||
#. translators: 1: URL of WordPress.org, 2: URL of WP Job Manager plugin
|
||||
msgid ""
|
||||
"The Blocks for WP Job Manager plugin requires both <a "
|
||||
"href=\"%1$s\">WordPress</a> 5.2 or greater and <a href=\"%2$s\">WP Job "
|
||||
"Manager</a> 1.30.0 or greater to be installed and active."
|
||||
msgstr ""
|
||||
|
||||
#: src/Plugin.php:190
|
||||
msgid ""
|
||||
"You have installed a development version of Blocks for WP Job Manager which "
|
||||
"requires files to be built. From the plugin directory, run <code>npm "
|
||||
"install</code> to install dependencies, <code>npm run build</code> to build "
|
||||
"the files."
|
||||
msgstr ""
|
||||
|
||||
#: src/Plugin.php:193
|
||||
#. translators: 1: URL of GitHub Repository build page
|
||||
msgid ""
|
||||
"Or you can download a pre-built version of the plugin by visiting <a "
|
||||
"href=\"%1$s\">the releases page in the repository</a>."
|
||||
msgstr ""
|
||||
|
||||
#. Plugin Name of the plugin/theme
|
||||
msgid "Blocks for WP Job Manager"
|
||||
msgstr ""
|
||||
|
||||
#. Plugin URI of the plugin/theme
|
||||
msgid "https://bengal-studio.com/plugins/wp-job-manager-blocks/"
|
||||
msgstr ""
|
||||
|
||||
#. Description of the plugin/theme
|
||||
msgid "A collection of Gutenberg Blocks for WP Job Manager job board plugin."
|
||||
msgstr ""
|
||||
|
||||
#. Author of the plugin/theme
|
||||
msgid "Bengal Studio"
|
||||
msgstr ""
|
||||
|
||||
#. Author URI of the plugin/theme
|
||||
msgid "https://bengal-studio.com"
|
||||
msgstr ""
|
||||
@@ -0,0 +1,45 @@
|
||||
# Copyright (C) 2020 Maksim Kuzmin
|
||||
# This file is distributed under the same license as the Bible Online Popup plugin.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Bible Online Popup 1.0.0\n"
|
||||
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/bible-online-popup\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-02-07T09:28:44+00:00\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"X-Generator: WP-CLI 2.4.0\n"
|
||||
"X-Domain: BOP\n"
|
||||
|
||||
#. Plugin Name of the plugin
|
||||
msgid "Bible Online Popup"
|
||||
msgstr ""
|
||||
|
||||
#. Description of the plugin
|
||||
msgid "Popup Bible's verses with Bible Online"
|
||||
msgstr ""
|
||||
|
||||
#. Author of the plugin
|
||||
msgid "Maksim Kuzmin"
|
||||
msgstr ""
|
||||
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
msgid "Default translation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Update your preferences here."
|
||||
msgstr ""
|
||||
|
||||
msgid "Make a Bible Popup from selection"
|
||||
msgstr ""
|
||||
|
||||
msgid "Bible Online Popup Settings"
|
||||
msgstr ""
|
||||
|
||||
msgid "Make a link to BibleOnline.ru from Bible's reference"
|
||||
msgstr ""
|
||||
@@ -0,0 +1,58 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Stronger Admin Bar v1.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: 2014-05-18 16:21:49+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \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-Generator: CSL v1.x\n"
|
||||
"X-Poedit-Language: \n"
|
||||
"X-Poedit-Country: \n"
|
||||
"X-Poedit-SourceCharset: utf-8\n"
|
||||
"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;\n"
|
||||
"X-Poedit-Basepath: \n"
|
||||
"X-Poedit-Bookmarks: \n"
|
||||
"X-Poedit-SearchPath-0: .\n"
|
||||
"X-Textdomain-Support: yes"
|
||||
|
||||
#. translators: plugin header field 'Name'
|
||||
#: stronger-admin-bar.php:0
|
||||
#@ stronger_admin_bar
|
||||
msgid "Stronger Admin Bar"
|
||||
msgstr ""
|
||||
|
||||
#. translators: plugin header field 'PluginURI'
|
||||
#: stronger-admin-bar.php:0
|
||||
#@ stronger_admin_bar
|
||||
msgid "http://wordpress.org/plugins/stronger-admin-bar"
|
||||
msgstr ""
|
||||
|
||||
#. translators: plugin header field 'Description'
|
||||
#: stronger-admin-bar.php:0
|
||||
#@ stronger_admin_bar
|
||||
msgid "Adds more space to the adnin bar from top and bottom to make it more useful."
|
||||
msgstr ""
|
||||
|
||||
#. translators: plugin header field 'Author'
|
||||
#: stronger-admin-bar.php:0
|
||||
#@ stronger_admin_bar
|
||||
msgid "silver530"
|
||||
msgstr ""
|
||||
|
||||
#. translators: plugin header field 'AuthorURI'
|
||||
#: stronger-admin-bar.php:0
|
||||
#@ stronger_admin_bar
|
||||
msgid "http://profiles.wordpress.org/silver530"
|
||||
msgstr ""
|
||||
|
||||
#. translators: plugin header field 'Version'
|
||||
#: stronger-admin-bar.php:0
|
||||
#@ stronger_admin_bar
|
||||
msgid "1.0"
|
||||
msgstr ""
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user