Compare commits

..

36 Commits

Author SHA1 Message Date
erwanlr
bd74689079 Bumps version 2019-09-13 08:34:19 +01:00
Erwan
248942bdea Updates Readme (adds link, fixes typo) 2019-09-11 11:29:45 +02:00
erwanlr
d9f203300b Updates deps 2019-09-11 10:19:48 +01:00
erwanlr
aceabc969f Merge branch 'master' into 3.7.0 2019-09-11 10:18:28 +01:00
erwanlr
dedc24d3a7 Adds DFs 2019-09-07 11:55:53 +01:00
erwanlr
6e583e78e8 Gets Sponsor text from db file 2019-09-05 21:47:26 +01:00
erwanlr
c012e83355 Merge branch 'master' into 3.7.0-merged-master 2019-09-05 19:46:16 +01:00
erwanlr
264355d185 Ignores 404 with BodyPattern DF - Ref #1386 2019-09-05 19:41:24 +01:00
erwanlr
fdbfd1ec60 Ref #1386 2019-09-03 12:03:12 +01:00
erwanlr
7a8b27a255 Fixes #1386 2019-09-02 22:09:28 +01:00
erwanlr
ec4bfac98b Adds DFs 2019-09-01 11:38:57 +01:00
erwanlr
c63ffe37c9 Updates deps and Readme 2019-08-30 18:22:25 +01:00
erwanlr
d2f3ce82c9 Fixes specs 2019-08-30 09:28:47 +01:00
erwanlr
3e24a0b0a4 Merge with master 2019-08-30 09:03:31 +01:00
Erwan
1a07e29ff4 Merge pull request #1383 from wpscanteam/dependabot/bundler/webmock-tw-3.7.0
Update webmock requirement from ~> 3.6.0 to ~> 3.7.0
2019-08-28 14:29:22 +02:00
dependabot-preview[bot]
1aa46a8928 Update webmock requirement from ~> 3.6.0 to ~> 3.7.0
Updates the requirements on [webmock](https://github.com/bblimke/webmock) to permit the latest version.
- [Release notes](https://github.com/bblimke/webmock/releases)
- [Changelog](https://github.com/bblimke/webmock/blob/master/CHANGELOG.md)
- [Commits](https://github.com/bblimke/webmock/compare/v3.6.0...v3.7.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-28 09:01:28 +00:00
erwanlr
d9083f8b5f Fixes spec related to latest changes 2019-08-24 15:17:18 +01:00
erwanlr
23d558a6d7 Updates to CMSScanner 0.5.8 2019-08-24 14:49:56 +01:00
erwanlr
665a5b7b12 Adds DFs 2019-08-24 14:06:52 +01:00
erwanlr
1d73418969 Adds DFs 2019-08-17 10:36:18 +01:00
erwanlr
f67b5e4cc4 Updates deps again 2019-08-13 11:55:57 +01:00
erwanlr
ae2515444f Updates deps 2019-08-13 11:03:34 +01:00
erwanlr
463e77f0a5 VulnAPI Implementation 2019-08-13 10:03:01 +01:00
erwanlr
d7b796b1a7 Adds DFs 2019-08-10 12:22:38 +01:00
erwanlr
9b07d53077 Bumps version 2019-08-06 16:10:21 +01:00
erwanlr
8ee9b2bc31 Fixes #1378 2019-08-06 13:01:22 +01:00
erwanlr
c5989477a4 Adds DFs 2019-08-03 10:56:22 +01:00
Erwan
96d8a4e4f8 Merge pull request #1377 from wpscanteam/dependabot/bundler/rubocop-tw-0.74.0
Update rubocop requirement from ~> 0.73.0 to ~> 0.74.0
2019-08-03 10:19:49 +02:00
dependabot-preview[bot]
e865e11731 Update rubocop requirement from ~> 0.73.0 to ~> 0.74.0
Updates the requirements on [rubocop](https://github.com/rubocop-hq/rubocop) to permit the latest version.
- [Release notes](https://github.com/rubocop-hq/rubocop/releases)
- [Changelog](https://github.com/rubocop-hq/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop-hq/rubocop/compare/v0.73.0...v0.74.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-01 05:31:24 +00:00
erwanlr
f0997bfe0d Bumps version 2019-07-31 15:46:59 +01:00
erwanlr
8b67dad456 Fixes regexp perf 2019-07-31 14:54:57 +01:00
erwanlr
53fdac1038 Fixes #1376 2019-07-31 14:53:11 +01:00
erwanlr
534a7602e6 Adds DFs 2019-07-27 18:36:53 +01:00
erwanlr
84422b10c8 Changes db_data to metadata 2019-07-18 18:52:52 +01:00
erwanlr
d05ad0f8f4 Adds an Api Token controller 2019-07-18 17:40:27 +01:00
erwanlr
3f70ddaffa Switching to dev 2019-07-18 17:31:02 +01:00
160 changed files with 16559 additions and 287 deletions

View File

@@ -8,12 +8,12 @@ ClassVars:
Enabled: false
LineLength:
Max: 120
Lint/UriEscapeUnescape:
Enabled: false
MethodLength:
Max: 20
Exclude:
- 'app/controllers/enumeration/cli_options.rb'
Lint/UriEscapeUnescape:
Enabled: false
Metrics/AbcSize:
Max: 25
Metrics/BlockLength:
@@ -29,3 +29,6 @@ Style/Documentation:
Enabled: false
Style/FormatStringToken:
Enabled: false
Style/NumericPredicate:
Exclude:
- 'app/controllers/vuln_api.rb'

View File

@@ -84,33 +84,46 @@ For more options, open a terminal and type ```wpscan --help``` (if you built wps
The DB is located at ~/.wpscan/db
## Load CLI options from file/s
WPScan can load all options (including the --url) from configuration files, the following locations are checked (order: first to last):
- ~/.wpscan/cli_options.json
- ~/.wpscan/cli_options.yml
- pwd/.wpscan/cli_options.json
- pwd/.wpscan/cli_options.yml
- ~/.wpscan/scan.json
- ~/.wpscan/scan.yml
- pwd/.wpscan/scan.json
- pwd/.wpscan/scan.yml
If those files exist, options from them will be loaded and overridden if found twice.
If those files exist, options from the `cli_options` key will be loaded and overridden if found twice.
e.g:
~/.wpscan/cli_options.yml:
~/.wpscan/scan.yml:
```yml
cli_options:
proxy: 'http://127.0.0.1:8080'
verbose: true
```
pwd/.wpscan/cli_options.yml:
pwd/.wpscan/scan.yml:
```yml
cli_options:
proxy: 'socks5://127.0.0.1:9090'
url: 'http://target.tld'
```
Running ```wpscan``` in the current directory (pwd), is the same as ```wpscan -v --proxy socks5://127.0.0.1:9090 --url http://target.tld```
## Save API Token in a file
The feature mentioned above is useful to keep the API Token in a config file and not have to supply it via the CLI each time. To do so, create the ~/.wpscan/scan.yml file containing the below:
```yml
cli_options:
api_token: YOUR_API_TOKEN
```
Enumerating usernames
```shell

View File

@@ -1,6 +1,7 @@
# frozen_string_literal: true
require_relative 'controllers/core'
require_relative 'controllers/vuln_api'
require_relative 'controllers/custom_directories'
require_relative 'controllers/wp_version'
require_relative 'controllers/main_theme'

View File

@@ -0,0 +1,30 @@
# frozen_string_literal: true
module WPScan
module Controller
# Controller to handle the API token
class VulnApi < CMSScanner::Controller::Base
def cli_options
[
OptString.new(['--api-token TOKEN', 'The WPVulnDB API Token to display vulnerability data'])
]
end
def before_scan
return unless ParsedCli.api_token
DB::VulnApi.token = ParsedCli.api_token
api_status = DB::VulnApi.status
raise Error::InvalidApiToken if api_status['error']
raise Error::ApiLimitReached if api_status['requests_remaining'] == 0
raise api_status['http_error'] if api_status['http_error']
end
def after_scan
output('status', status: DB::VulnApi.status, api_requests: WPScan.api_requests)
end
end
end
end

View File

@@ -20,9 +20,9 @@ module WPScan
enumerate(potential_urls(opts), opts.merge(check_full_response: 200)) do |res|
if res.effective_url.end_with?('.zip')
next unless res.headers['Content-Type'] =~ %r{\Aapplication/zip}i
next unless %r{\Aapplication/zip}i.match?(res.headers['Content-Type'])
else
next unless res.body =~ SQL_PATTERN
next unless SQL_PATTERN.match?(res.body)
end
found << Model::DbExport.new(res.request.url, found_by: DIRECT_ACCESS, confidence: 100)

View File

@@ -9,7 +9,7 @@ module WPScan
def aggressive(_opts = {})
path = 'installer-log.txt'
return unless target.head_and_get(path).body =~ /DUPLICATOR INSTALL-LOG/
return unless /DUPLICATOR INSTALL-LOG/.match?(target.head_and_get(path).body)
Model::DuplicatorInstallerLog.new(
target.url(path),

View File

@@ -10,7 +10,7 @@ module WPScan
pattern = %r{#{target.content_dir}/mu\-plugins/}i
target.in_scope_uris(target.homepage_res) do |uri|
next unless uri.path =~ pattern
next unless uri.path&.match?(pattern)
url = target.url('wp-content/mu-plugins/')

View File

@@ -12,7 +12,7 @@ module WPScan
path = 'wp-content/uploads/dump.sql'
res = target.head_and_get(path, [200], get: { headers: { 'Range' => 'bytes=0-3000' } })
return unless res.body =~ SQL_PATTERN
return unless SQL_PATTERN.match?(res.body)
Model::UploadSQLDump.new(
target.url(path),

View File

@@ -13,7 +13,7 @@ module WPScan
def valid_credentials?(response)
response.code == 302 &&
response.headers['Set-Cookie']&.any? { |cookie| cookie =~ /wordpress_logged_in_/i }
[*response.headers['Set-Cookie']]&.any? { |cookie| cookie =~ /wordpress_logged_in_/i }
end
def errored_response?(response)

View File

@@ -52,7 +52,7 @@ module WPScan
number = Regexp.last_match[1]
number if number =~ /[0-9]+/
number if /[0-9]+/.match?(number)
end
# @param [ String ] body

View File

@@ -15,7 +15,7 @@ module WPScan
#
# @return [ Plugin ] The detected plugin in the response, related to the config
def process_response(opts, response, slug, klass, config)
return unless response.body =~ config['pattern']
return unless response.body&.match?(config['pattern'])
Model::Plugin.new(
slug,

View File

@@ -18,7 +18,7 @@ module WPScan
response.html.xpath(config['xpath'] || '//comment()').each do |node|
comment = node.text.to_s.strip
next unless comment =~ config['pattern']
next unless comment&.match?(config['pattern'])
return Model::Plugin.new(
slug,

View File

@@ -22,7 +22,7 @@ module WPScan
found = []
enumerate(target_urls(opts), opts.merge(check_full_response: 400)) do |res|
next unless res.body =~ /no image specified/i
next unless /no image specified/i.match?(res.body)
found << Model::Timthumb.new(res.request.url, opts.merge(found_by: found_by, confidence: 100))
end

View File

@@ -24,7 +24,7 @@ module WPScan
return found if error.empty? # Protection plugin / error disabled
next unless error =~ /The password you entered for the username|Incorrect Password/i
next unless /The password you entered for the username|Incorrect Password/i.match?(error)
found << Model::User.new(username, found_by: found_by, confidence: 100)
end

View File

@@ -15,9 +15,16 @@ module WPScan
@uri = Addressable::URI.parse(blog.url(path_from_blog))
end
# @return [ JSON ]
# Retrieve the metadata from the vuln API if available (and a valid token is given),
# or the local metadata db otherwise
# @return [ Hash ]
def metadata
@metadata ||= db_data.empty? ? DB::Plugin.metadata_at(slug) : db_data
end
# @return [ Hash ]
def db_data
@db_data ||= DB::Plugin.db_data(slug)
@db_data ||= DB::VulnApi.plugin_data(slug)
end
# @param [ Hash ] opts

View File

@@ -21,9 +21,16 @@ module WPScan
parse_style
end
# Retrieve the metadata from the vuln API if available (and a valid token is given),
# or the local metadata db otherwise
# @return [ JSON ]
def metadata
@metadata ||= db_data.empty? ? DB::Theme.metadata_at(slug) : db_data
end
# @return [ Hash ]
def db_data
@db_data ||= DB::Theme.db_data(slug)
@db_data ||= DB::VulnApi.theme_data(slug)
end
# @param [ Hash ] opts

View File

@@ -60,18 +60,18 @@ module WPScan
# @return [ String ]
def latest_version
@latest_version ||= db_data['latest_version'] ? Model::Version.new(db_data['latest_version']) : nil
@latest_version ||= metadata['latest_version'] ? Model::Version.new(metadata['latest_version']) : nil
end
# Not used anywhere ATM
# @return [ Boolean ]
def popular?
@popular ||= db_data['popular']
@popular ||= metadata['popular'] ? true : false
end
# @return [ String ]
def last_updated
@last_updated ||= db_data['last_updated']
@last_updated ||= metadata['last_updated']
end
# @return [ Boolean ]

View File

@@ -35,9 +35,16 @@ module WPScan
@all_numbers.sort! { |a, b| Gem::Version.new(b) <=> Gem::Version.new(a) }
end
# @return [ JSON ]
# Retrieve the metadata from the vuln API if available (and a valid token is given),
# or the local metadata db otherwise
# @return [ Hash ]
def metadata
@metadata ||= db_data.empty? ? DB::Version.metadata_at(number) : db_data
end
# @return [ Hash ]
def db_data
@db_data ||= DB::Version.db_data(number)
@db_data ||= DB::VulnApi.wordpress_data(number)
end
# @return [ Array<Vulnerability> ]
@@ -55,12 +62,12 @@ module WPScan
# @return [ String ]
def release_date
@release_date ||= db_data['release_date'] || 'Unknown'
@release_date ||= metadata['release_date'] || 'Unknown'
end
# @return [ String ]
def status
@status ||= db_data['status'] || 'Unknown'
@status ||= metadata['status'] || 'Unknown'
end
end
end

View File

@@ -8,7 +8,7 @@ _______________________________________________________________
WordPress Security Scanner by the WPScan Team
Version <%= WPScan::VERSION %>
Sponsored by Sucuri - https://sucuri.net
<%= ' ' * ((63 - WPScan::DB::Sponsor.text.length)/2) + WPScan::DB::Sponsor.text %>
@_WPScan_, @ethicalhack3r, @erwan_lr, @_FireFart_
_______________________________________________________________

View File

@@ -0,0 +1,13 @@
<% unless @status.empty? -%>
<% if @status['http_error'] -%>
<%= critical_icon %> WPVulnDB API, <%= @status['http_error'].to_s %>
<% else -%>
<%= info_icon %> WPVulnDB API OK
| Plan: <%= @status['plan'] %>
| Requests Done (during the scan): <%= @api_requests %>
| Requests Remaining: <%= @status['requests_remaining'] %>
<% end -%>
<% else -%>
<%= warning_icon %> No WPVulnDB API Token given, as a result vulnerability data has not been output.
<%= warning_icon %> You can get a free API token with 50 daily requests by registering at https://wpvulndb.com/register.
<% end -%>

View File

@@ -7,5 +7,5 @@
"@erwan_lr",
"@_FireFart_"
],
"sponsored_by": "Sucuri - https://sucuri.net"
"sponsor": <%= WPScan::DB::Sponsor.text.to_json %>
},

View File

@@ -0,0 +1,13 @@
"vuln_api": {
<% unless @status.empty? -%>
<% if @status['http_error'] -%>
"http_error": <%= @status['http_error'].to_s.to_json %>
<% else -%>
"plan": <%= @status['plan'].to_json %>,
"requests_done_during_scan": <%= @api_requests.to_json %>,
"requests_remaining": <%= @status['requests_remaining'].to_json %>
<% end -%>
<% else -%>
"error": "No WPVulnDB API Token given, as a result vulnerability data has not been output.\nYou can get a free API token with 50 daily requests by registering at https://wpvulndb.com/register."
<% end -%>
},

View File

@@ -5,6 +5,7 @@ require 'wpscan'
WPScan::Scan.new do |s|
s.controllers <<
WPScan::Controller::VulnApi.new <<
WPScan::Controller::CustomDirectories.new <<
WPScan::Controller::InterestingFindings.new <<
WPScan::Controller::WpVersion.new <<

View File

@@ -7,6 +7,7 @@ require 'wpscan'
report = MemoryProfiler.report(top: 15) do
WPScan::Scan.new do |s|
s.controllers <<
WPScan::Controller::VulnApi.new <<
WPScan::Controller::CustomDirectories.new <<
WPScan::Controller::InterestingFindings.new <<
WPScan::Controller::WpVersion.new <<

View File

@@ -12,6 +12,7 @@ StackProf.run(mode: :cpu, out: '/tmp/stackprof-cpu.dump', interval: 500) do
# require_relative 'wpscan' doesn't work
WPScan::Scan.new do |s|
s.controllers <<
WPScan::Controller::VulnApi.new <<
WPScan::Controller::CustomDirectories.new <<
WPScan::Controller::InterestingFindings.new <<
WPScan::Controller::WpVersion.new <<

View File

@@ -13,7 +13,8 @@ require 'uri'
require 'time'
require 'readline'
require 'securerandom'
# Monkey Patches/Fixes/Override
require 'wpscan/typhoeus/response' # Adds a from_vuln_api? method
# Custom Libs
require 'wpscan/helper'
require 'wpscan/db'
@@ -38,12 +39,28 @@ module WPScan
APP_DIR = Pathname.new(__FILE__).dirname.join('..', 'app').expand_path
DB_DIR = Pathname.new(Dir.home).join('.wpscan', 'db')
Typhoeus.on_complete do |response|
next if response.cached? || !response.from_vuln_api?
self.api_requests += 1
end
# Override, otherwise it would be returned as 'wp_scan'
#
# @return [ String ]
def self.app_name
'wpscan'
end
# @return [ Integer ]
def self.api_requests
@@api_requests ||= 0
end
# @param [ Integer ] value
def self.api_requests=(value)
@@api_requests = value
end
end
require "#{WPScan::APP_DIR}/app"

View File

@@ -7,7 +7,7 @@ module WPScan
# @return [ String ]
def default_user_agent
"WPScan v#{VERSION} (https://wpscan.org/)"
@default_user_agent ||= "WPScan v#{VERSION} (https://wpscan.org/)"
end
end
end

View File

@@ -7,9 +7,12 @@ require_relative 'db/plugins'
require_relative 'db/themes'
require_relative 'db/plugin'
require_relative 'db/theme'
require_relative 'db/sponsor'
require_relative 'db/wp_version'
require_relative 'db/fingerprints'
require_relative 'db/vuln_api'
require_relative 'db/dynamic_finders/base'
require_relative 'db/dynamic_finders/plugin'
require_relative 'db/dynamic_finders/theme'

View File

@@ -4,9 +4,9 @@ module WPScan
module DB
# Plugin DB
class Plugin < WpItem
# @return [ String ]
def self.db_file
@db_file ||= DB_DIR.join('plugins.json').to_s
# @return [ Hash ]
def self.metadata
@metadata ||= super['plugins'] || {}
end
end
end

View File

@@ -5,8 +5,8 @@ module WPScan
# WP Plugins
class Plugins < WpItems
# @return [ JSON ]
def self.db
Plugin.db
def self.metadata
Plugin.metadata
end
end
end

16
lib/wpscan/db/sponsor.rb Normal file
View File

@@ -0,0 +1,16 @@
# frozen_string_literal: true
module WPScan
module DB
class Sponsor
# @return [ Hash ]
def self.text
@text ||= file_path.exist? ? File.read(file_path).chomp : ''
end
def self.file_path
@file_path ||= DB_DIR.join('sponsor.txt')
end
end
end
end

View File

@@ -4,9 +4,9 @@ module WPScan
module DB
# Theme DB
class Theme < WpItem
# @return [ String ]
def self.db_file
@db_file ||= DB_DIR.join('themes.json').to_s
# @return [ Hash ]
def self.metadata
@metadata ||= super['themes'] || {}
end
end
end

View File

@@ -5,8 +5,8 @@ module WPScan
# WP Themes
class Themes < WpItems
# @return [ JSON ]
def self.db
Theme.db
def self.metadata
Theme.metadata
end
end
end

View File

@@ -7,12 +7,15 @@ module WPScan
class Updater
# /!\ Might want to also update the Enumeration#cli_options when some filenames are changed here
FILES = %w[
plugins.json themes.json wordpresses.json
metadata.json wp_fingerprints.json
timthumbs-v3.txt config_backups.txt db_exports.txt
dynamic_finders.yml wp_fingerprints.json LICENSE
dynamic_finders.yml LICENSE sponsor.txt
].freeze
OLD_FILES = %w[wordpress.db user-agents.txt dynamic_finders_01.yml].freeze
OLD_FILES = %w[
wordpress.db user-agents.txt dynamic_finders_01.yml
wordpresses.json plugins.json themes.json
].freeze
attr_reader :repo_directory
@@ -69,7 +72,7 @@ module WPScan
connecttimeout: 300,
accept_encoding: 'gzip, deflate',
cache_ttl: 0,
headers: { 'User-Agent' => Browser.instance.default_user_agent }
headers: { 'User-Agent' => Browser.instance.default_user_agent, 'Referer' => nil }
}
end

78
lib/wpscan/db/vuln_api.rb Normal file
View File

@@ -0,0 +1,78 @@
# frozen_string_literal: true
module WPScan
module DB
# WPVulnDB API
class VulnApi
NON_ERROR_CODES = [200, 401, 404].freeze
class << self
attr_accessor :token
end
# @return [ Addressable::URI ]
def self.uri
@uri ||= Addressable::URI.parse('https://wpvulndb.com/api/v3/')
end
# @param [ String ] path
# @param [ Hash ] params
#
# @return [ Hash ]
def self.get(path, params = {})
return {} unless token
res = Browser.get(uri.join(path), params.merge(request_params))
return JSON.parse(res.body) if NON_ERROR_CODES.include?(res.code)
raise Error::HTTP, res
rescue Error::HTTP => e
retries ||= 0
if (retries += 1) <= 3
sleep(1)
retry
end
{ 'http_error' => e }
end
# @return [ Hash ]
def self.plugin_data(slug)
get("plugins/#{slug}")&.dig(slug) || {}
end
# @return [ Hash ]
def self.theme_data(slug)
get("themes/#{slug}")&.dig(slug) || {}
end
# @return [ Hash ]
def self.wordpress_data(version_number)
get("wordpresses/#{version_number.tr('.', '')}")&.dig(version_number) || {}
end
# @return [ Hash ]
def self.status
json = get('status', params: { version: WPScan::VERSION }, cache_ttl: 0)
json['requests_remaining'] = 'Unlimited' if json['requests_remaining'] == -1
json
end
# @return [ Hash ]
def self.request_params
{
headers: {
'Host' => uri.host, # Reset in case user provided a --vhost for the target
'Referer' => nil, # Removes referer set by the cmsscanner to the target url
'User-Agent' => Browser.instance.default_user_agent,
'Authorization' => "Token token=#{token}"
}
}
end
end
end
end

View File

@@ -6,14 +6,19 @@ module WPScan
class WpItem
# @param [ String ] identifier The plugin/theme slug or version number
#
# @return [ Hash ] The JSON data from the DB associated to the identifier
def self.db_data(identifier)
db[identifier] || {}
# @return [ Hash ] The JSON data from the metadata associated to the identifier
def self.metadata_at(identifier)
metadata[identifier] || {}
end
# @return [ JSON ]
def self.db
@db ||= read_json_file(db_file)
def self.metadata
@metadata ||= read_json_file(metadata_file)
end
# @return [ String ]
def self.metadata_file
@metadata_file ||= DB_DIR.join('metadata.json').to_s
end
end
end

View File

@@ -6,17 +6,17 @@ module WPScan
class WpItems
# @return [ Array<String> ] The slug of all items
def self.all_slugs
db.keys
metadata.keys
end
# @return [ Array<String> ] The slug of all popular items
def self.popular_slugs
db.select { |_key, item| item['popular'] == true }.keys
metadata.select { |_key, item| item['popular'] == true }.keys
end
# @return [ Array<String> ] The slug of all vulnerable items
def self.vulnerable_slugs
db.reject { |_key, item| item['vulnerabilities'].empty? }.keys
metadata.select { |_key, item| item['vulnerabilities'] == true }.keys
end
end
end

View File

@@ -4,9 +4,9 @@ module WPScan
module DB
# WP Version
class Version < WpItem
# @return [ String ]
def self.db_file
@db_file ||= DB_DIR.join('wordpresses.json').to_s
# @return [ Hash ]
def self.metadata
@metadata ||= super['wordpress'] || {}
end
end
end

View File

@@ -12,5 +12,6 @@ end
require_relative 'errors/enumeration'
require_relative 'errors/http'
require_relative 'errors/update'
require_relative 'errors/vuln_api'
require_relative 'errors/wordpress'
require_relative 'errors/xmlrpc'

View File

@@ -0,0 +1,20 @@
# frozen_string_literal: true
module WPScan
module Error
# Error raised when the token given via --api-token is invalid
class InvalidApiToken < Standard
def to_s
'The API token provided is invalid'
end
end
# Error raised when the number of API requests has been reached
# currently not implemented on the API side
class ApiLimitReached < Standard
def to_s
'Your API limit has been reached'
end
end
end
end

View File

@@ -4,7 +4,7 @@ module WPScan
module Finders
module DynamicFinder
module Version
# Version finder using Body Pattern method. Tipically used when the response is not
# Version finder using Body Pattern method. Typically used when the response is not
# an HTML doc and Xpath can't be used
class BodyPattern < Finders::DynamicFinder::Version::Finder
# @return [ Hash ]
@@ -16,7 +16,7 @@ module WPScan
# @param [ Hash ] opts
# @return [ Version ]
def find(response, _opts = {})
return unless response.body =~ self.class::PATTERN
return unless response.code != 404 && response.body =~ self.class::PATTERN
create_version(
Regexp.last_match[:v],

View File

@@ -14,7 +14,7 @@ end
# @return [ Symbol ]
def classify_slug(slug)
classified = slug.to_s.gsub(/[^a-z\d\-]/i, '-').gsub(/\-{1,}/, '_').camelize.to_s
classified = "D_#{classified}" if classified[0] =~ /\d/
classified = "D_#{classified}" if /\d/.match?(classified[0])
classified.to_sym
end

View File

@@ -29,7 +29,7 @@ module WPScan
end
homepage_res.html.css('meta[name="generator"]').each do |node|
return true if node['content'] =~ /wordpress/i
return true if /wordpress/i.match?(node['content'])
end
return true unless comments_from_page(/wordpress/i, homepage_res).empty?

View File

@@ -0,0 +1,13 @@
# frozen_string_literal: true
module Typhoeus
# Custom Response class
class Response
# @note: Ignores requests done to the /status endpoint of the API
#
# @return [ Boolean ]
def from_vuln_api?
effective_url.start_with?(WPScan::DB::VulnApi.uri.to_s) && !effective_url.include?('/status')
end
end
end

View File

@@ -2,5 +2,5 @@
# Version
module WPScan
VERSION = '3.6.1'
VERSION = '3.7.0'
end

View File

@@ -0,0 +1,93 @@
# frozen_string_literal: true
describe WPScan::Controller::VulnApi do
subject(:controller) { described_class.new }
let(:target_url) { 'http://ex.lo/' }
let(:cli_args) { "--url #{target_url}" }
before do
WPScan::ParsedCli.options = rspec_parsed_options(cli_args)
end
describe '#cli_options' do
its(:cli_options) { should_not be_empty }
its(:cli_options) { should be_a Array }
it 'contains to correct options' do
expect(controller.cli_options.map(&:to_sym)).to eq %i[api_token]
end
end
describe '#before_scan' do
context 'when no --api-token provided' do
its(:before_scan) { should be nil }
end
context 'when --api-token given' do
let(:cli_args) { "#{super()} --api-token token" }
context 'when the token is invalid' do
before { expect(WPScan::DB::VulnApi).to receive(:status).and_return('error' => 'HTTP Token: Access denied.') }
it 'raise an InvalidApiToken error' do
expect { controller.before_scan }.to raise_error(WPScan::Error::InvalidApiToken)
end
end
context 'when the token is valid' do
context 'when the limit has been reached' do
before do
expect(WPScan::DB::VulnApi)
.to receive(:status)
.and_return('success' => true, 'plan' => 'free', 'requests_remaining' => 0)
end
it 'raises an ApiLimitReached error' do
expect { controller.before_scan }.to raise_error(WPScan::Error::ApiLimitReached)
end
end
context 'when a HTTP error, like a timeout' do
before do
expect(WPScan::DB::VulnApi)
.to receive(:status)
.and_return(
'http_error' => WPScan::Error::HTTP.new(
Typhoeus::Response.new(effective_url: 'mock-url', return_code: 28)
)
)
end
it 'raises an HTTP error' do
expect { controller.before_scan }
.to raise_error(WPScan::Error::HTTP, 'HTTP Error: mock-url (Timeout was reached)')
end
end
context 'when the token is valid and no HTTP error' do
before do
expect(WPScan::DB::VulnApi)
.to receive(:status)
.and_return('success' => true, 'plan' => 'free', 'requests_remaining' => requests)
end
context 'when limited requests' do
let(:requests) { 100 }
it 'does not raise an error' do
expect { controller.before_scan }.to_not raise_error
end
context 'when unlimited requests' do
let(:requests) { 'Unlimited' }
it 'does not raise an error' do
expect { controller.before_scan }.to_not raise_error
end
end
end
end
end
end
end
end

View File

@@ -0,0 +1,61 @@
# frozen_string_literal: true
describe WPScan::Finders::Passwords::WpLogin do
subject(:finder) { described_class.new(target) }
let(:target) { WPScan::Target.new(url) }
let(:url) { 'http://ex.lo/' }
describe '#valid_credentials?' do
context 'when a non 302' do
it 'returns false' do
expect(finder.valid_credentials?(Typhoeus::Response.new(code: 200, headers: {}))).to be_falsey
end
end
context 'when a 302' do
let(:response) { Typhoeus::Response.new(code: 302, headers: headers) }
context 'when no cookies set' do
let(:headers) { {} }
it 'returns false' do
expect(finder.valid_credentials?(response)).to be_falsey
end
end
context 'when no logged_in cookie set' do
context 'when only one cookie set' do
let(:headers) { 'Set-Cookie: wordpress_test_cookie=WP+Cookie+check; path=/' }
it 'returns false' do
expect(finder.valid_credentials?(response)).to be_falsey
end
end
context 'when multiple cookies set' do
let(:headers) do
"Set-Cookie: wordpress_test_cookie=WP+Cookie+check; path=/\r\n" \
'Set-Cookie: something=value; path=/'
end
it 'returns false' do
expect(finder.valid_credentials?(response)).to be_falsey
end
end
end
context 'when logged_in cookie set' do
let(:headers) do
"Set-Cookie: wordpress_test_cookie=WP+Cookie+check; path=/\r\r" \
"Set-Cookie: wordpress_xxx=yyy; path=/wp-content/plugins; httponly\r\n" \
"Set-Cookie: wordpress_xxx=yyy; path=/wp-admin; httponly\r\n" \
'Set-Cookie: wordpress_logged_in_xxx=yyy; path=/; httponly'
end
it 'returns false' do
expect(finder.valid_credentials?(response)).to eql true
end
end
end
end
end

View File

@@ -81,24 +81,39 @@ describe WPScan::Model::Plugin do
end
describe '#latest_version, #last_updated, #popular' do
context 'when none' do
let(:slug) { 'vulnerable-not-popular' }
before { allow(plugin).to receive(:db_data).and_return(db_data) }
context 'when no db_data and no metadata' do
let(:slug) { 'not-known' }
let(:db_data) { {} }
its(:latest_version) { should be_nil }
its(:last_updated) { should be_nil }
its(:popular?) { should be false }
end
context 'when values' do
context 'when no db_data but metadata' do
let(:slug) { 'no-vulns-popular' }
let(:db_data) { {} }
its(:latest_version) { should eql WPScan::Model::Version.new('2.0') }
its(:last_updated) { should eql '2015-05-16T00:00:00.000Z' }
its(:popular?) { should be true }
end
context 'when db_data' do
let(:slug) { 'no-vulns-popular' }
let(:db_data) { vuln_api_data_for('plugins/no-vulns-popular') }
its(:latest_version) { should eql WPScan::Model::Version.new('2.1') }
its(:last_updated) { should eql '2015-05-16T00:00:00.000Z-via-api' }
its(:popular?) { should be true }
end
end
describe '#outdated?' do
before { allow(plugin).to receive(:db_data).and_return({}) }
context 'when last_version' do
let(:slug) { 'no-vulns-popular' }
@@ -116,13 +131,13 @@ describe WPScan::Model::Plugin do
.and_return(WPScan::Model::Version.new(version_number))
end
context 'when version < last_version' do
context 'when version < latest_version' do
let(:version_number) { '1.2' }
its(:outdated?) { should eql true }
end
context 'when version >= last_version' do
context 'when version >= latest_version' do
let(:version_number) { '3.0' }
its(:outdated?) { should eql false }
@@ -130,7 +145,7 @@ describe WPScan::Model::Plugin do
end
end
context 'when no last_version' do
context 'when no latest_version' do
let(:slug) { 'vulnerable-not-popular' }
context 'when no version' do
@@ -153,6 +168,8 @@ describe WPScan::Model::Plugin do
end
describe '#vulnerabilities' do
before { allow(plugin).to receive(:db_data).and_return(db_data) }
after do
expect(plugin.vulnerabilities).to eq @expected
expect(plugin.vulnerable?).to eql @expected.empty? ? false : true
@@ -160,6 +177,7 @@ describe WPScan::Model::Plugin do
context 'when plugin not in the DB' do
let(:slug) { 'not-in-db' }
let(:db_data) { {} }
it 'returns an empty array' do
@expected = []
@@ -169,6 +187,7 @@ describe WPScan::Model::Plugin do
context 'when in the DB' do
context 'when no vulnerabilities' do
let(:slug) { 'no-vulns-popular' }
let(:db_data) { vuln_api_data_for('plugins/no-vulns-popular') }
it 'returns an empty array' do
@expected = []
@@ -177,10 +196,12 @@ describe WPScan::Model::Plugin do
context 'when vulnerabilities' do
let(:slug) { 'vulnerable-not-popular' }
let(:db_data) { vuln_api_data_for('plugins/vulnerable-not-popular') }
let(:all_vulns) do
[
WPScan::Vulnerability.new(
'First Vuln',
'First Vuln <= 6.3.10 - LFI',
{ wpvulndb: '1' },
'LFI',
'6.3.10'

View File

@@ -86,8 +86,179 @@ describe WPScan::Model::Theme do
end
end
describe '#latest_version, #last_updated, #popular' do
before do
stub_request(:get, /.*\.css\z/)
allow(theme).to receive(:db_data).and_return(db_data)
end
context 'when no db_data and no metadata' do
let(:slug) { 'not-known' }
let(:db_data) { {} }
its(:latest_version) { should be_nil }
its(:last_updated) { should be_nil }
its(:popular?) { should be false }
end
context 'when no db_data but metadata' do
let(:slug) { 'no-vulns-popular' }
let(:db_data) { {} }
its(:latest_version) { should eql WPScan::Model::Version.new('2.0') }
its(:last_updated) { should eql '2015-05-16T00:00:00.000Z' }
its(:popular?) { should be true }
end
context 'when db_data' do
let(:slug) { 'no-vulns-popular' }
let(:db_data) { vuln_api_data_for('themes/no-vulns-popular') }
its(:latest_version) { should eql WPScan::Model::Version.new('2.2') }
its(:last_updated) { should eql '2015-05-16T00:00:00.000Z-via-api' }
its(:popular?) { should be true }
end
end
describe '#outdated?' do
before do
stub_request(:get, /.*\.css\z/)
allow(theme).to receive(:db_data).and_return({})
end
context 'when last_version' do
let(:slug) { 'no-vulns-popular' }
context 'when no version' do
before { expect(theme).to receive(:version).at_least(1).and_return(nil) }
its(:outdated?) { should eql false }
end
context 'when version' do
before do
expect(theme)
.to receive(:version)
.at_least(1)
.and_return(WPScan::Model::Version.new(version_number))
end
context 'when version < latest_version' do
let(:version_number) { '1.2' }
its(:outdated?) { should eql true }
end
context 'when version >= latest_version' do
let(:version_number) { '3.0' }
its(:outdated?) { should eql false }
end
end
end
context 'when no latest_version' do
let(:slug) { 'vulnerable-not-popular' }
context 'when no version' do
before { expect(theme).to receive(:version).at_least(1).and_return(nil) }
its(:outdated?) { should eql false }
end
context 'when version' do
before do
expect(theme)
.to receive(:version)
.at_least(1)
.and_return(WPScan::Model::Version.new('1.0'))
end
its(:outdated?) { should eql false }
end
end
end
describe '#vulnerabilities' do
xit
before do
stub_request(:get, /.*\.css\z/)
allow(theme).to receive(:db_data).and_return(db_data)
end
after do
expect(theme.vulnerabilities).to eq @expected
expect(theme.vulnerable?).to eql @expected.empty? ? false : true
end
context 'when theme not in the DB' do
let(:slug) { 'not-in-db' }
let(:db_data) { {} }
it 'returns an empty array' do
@expected = []
end
end
context 'when in the DB' do
context 'when no vulnerabilities' do
let(:slug) { 'no-vulns-popular' }
let(:db_data) { vuln_api_data_for('themes/no-vulns-popular') }
it 'returns an empty array' do
@expected = []
end
end
context 'when vulnerabilities' do
let(:slug) { 'vulnerable-not-popular' }
let(:db_data) { vuln_api_data_for('themes/vulnerable-not-popular') }
let(:all_vulns) do
[
WPScan::Vulnerability.new(
'First Vuln',
{ wpvulndb: '1' },
'LFI',
'6.3.10'
),
WPScan::Vulnerability.new('No Fixed In', wpvulndb: '2')
]
end
context 'when no theme version' do
before { expect(theme).to receive(:version).at_least(1).and_return(false) }
it 'returns all the vulnerabilities' do
@expected = all_vulns
end
end
context 'when theme version' do
before do
expect(theme)
.to receive(:version)
.at_least(1)
.and_return(WPScan::Model::Version.new(number))
end
context 'when < to a fixed_in' do
let(:number) { '5.0' }
it 'returns it' do
@expected = all_vulns
end
end
context 'when >= to a fixed_in' do
let(:number) { '6.3.10' }
it 'does not return it ' do
@expected = [all_vulns.last]
end
end
end
end
end
end
describe '#parent_theme' do

View File

@@ -40,11 +40,13 @@ describe WPScan::Model::WpVersion do
describe '#vulnerabilities' do
subject(:version) { described_class.new(number) }
before { allow(version).to receive(:db_data).and_return(db_data) }
context 'when no vulns' do
let(:number) { '4.4' }
let(:db_data) { { 'vulnerabilities' => [] } }
its(:vulnerabilities) { should eql([]) }
its(:vulnerabilities) { should be_empty }
end
context 'when vulnerable' do
@@ -53,23 +55,8 @@ describe WPScan::Model::WpVersion do
expect(version).to be_vulnerable
end
context 'when a signle vuln' do
let(:number) { '3.8' }
it 'returns the expected result' do
@expected = [WPScan::Vulnerability.new(
'WP 3.8 - Vuln 1',
{ url: %w[url-4], osvdb: %w[11], wpvulndb: '3' },
'AUTHBYPASS'
)]
end
end
context 'when multiple vulns' do
let(:number) { '3.8.1' }
it 'returns the expected results' do
@expected = [
let(:all_vulns) do
[
WPScan::Vulnerability.new(
'WP 3.8.1 - Vuln 1',
{ wpvulndb: '1' },
@@ -83,31 +70,67 @@ describe WPScan::Model::WpVersion do
)
]
end
context 'when a signle vuln' do
let(:number) { '3.8.1' }
let(:db_data) { vuln_api_data_for('wordpresses/38') }
it 'returns the expected result' do
@expected = [WPScan::Vulnerability.new(
'WP 3.8 - Vuln 1',
{ url: %w[url-4], wpvulndb: '3' },
'AUTHBYPASS'
)]
end
end
context 'when multiple vulns' do
let(:number) { '3.8.1' }
let(:db_data) { vuln_api_data_for('wordpresses/381') }
it 'returns the expected results' do
@expected = [
WPScan::Vulnerability.new(
'WP 3.8.1 - Vuln 1',
{ wpvulndb: '1' },
'SQLI'
),
WPScan::Vulnerability.new(
'WP 3.8.1 - Vuln 2',
{ url: %w[url-2 url-3], cve: %w[2014-0166], wpvulndb: '2' },
nil,
'3.8.2'
)
]
end
end
end
end
describe '#release_date' do
describe '#metadata, #release_date, #status' do
subject(:version) { described_class.new('3.8.1') }
before { allow(version).to receive(:db_data).and_return(db_data) }
context 'when no db_data' do
let(:db_data) { {} }
its(:release_date) { should eql '2014-01-23' }
context 'when the version is not in the DB' do
subject(:version) { described_class.new('3.8.2') }
its(:release_date) { should eql 'Unknown' }
end
end
describe '#status' do
subject(:version) { described_class.new('3.8.1') }
its(:status) { should eql 'outdated' }
context 'when the version is not in the DB' do
context 'when the version is not in the metadata' do
subject(:version) { described_class.new('3.8.2') }
its(:release_date) { should eql 'Unknown' }
its(:status) { should eql 'Unknown' }
end
end
context 'when db_data' do
let(:db_data) { vuln_api_data_for('wordpresses/381') }
its(:release_date) { should eql '2014-01-23-via-api' }
its(:status) { should eql 'outdated-via-api' }
end
end
end

View File

@@ -9,6 +9,7 @@ describe 'App::Views' do
# in the expected output.
%i[JSON CliNoColour].each do |formatter|
context "when #{formatter}" do
it_behaves_like 'App::Views::VulnApi'
it_behaves_like 'App::Views::WpVersion'
it_behaves_like 'App::Views::MainTheme'
it_behaves_like 'App::Views::Enumeration'

File diff suppressed because it is too large Load Diff

56
spec/fixtures/db/metadata.json vendored Normal file
View File

@@ -0,0 +1,56 @@
{
"wordpress": {
"4.0": {
"release_date": "2014-09-04",
"status": "latest"
},
"3.8.1": {
"release_date": "2014-01-23",
"status": "outdated"
},
"3.8": {
"release_date": "2013-12-12",
"status": "insecure"
}
},
"plugins": {
"no-vulns-popular": {
"vulnerabilities": false,
"popular": true,
"latest_version": "2.0",
"last_updated": "2015-05-16T00:00:00.000Z"
},
"vulnerable-not-popular": {
"latest_version": null,
"last_updated": null,
"popular": false,
"vulnerabilities": true
}
},
"themes": {
"no-vulns-popular": {
"popular": true,
"latest_version": "2.0",
"last_updated": "2015-05-16T00:00:00.000Z",
"vulnerabilities": false
},
"vulnerable-not-popular": {
"latest_version": null,
"last_updated": null,
"popular": false,
"vulnerabilities": true
},
"dignitas-themes": {
"popular": true,
"latest_version": null,
"last_updated": null,
"vulnerabilities" : true
},
"yaaburnee-themes": {
"popular": false,
"latest_version": null,
"last_updated": null,
"vulnerabilities" : true
}
}
}

View File

@@ -1,25 +0,0 @@
{
"no-vulns-popular": {
"vulnerabilities": [],
"popular": true,
"latest_version": "2.0",
"last_updated": "2015-05-16T00:00:00.000Z"
},
"vulnerable-not-popular": {
"latest_version": null,
"last_updated": null,
"popular": false,
"vulnerabilities" : [
{
"title" : "First Vuln",
"fixed_in" : "6.3.10",
"id" : 1,
"vuln_type": "LFI"
},
{
"title": "No Fixed In",
"id": 2
}
]
}
}

1
spec/fixtures/db/sponsor.txt vendored Normal file
View File

@@ -0,0 +1 @@
Sponsored By Kittens

View File

@@ -1,48 +0,0 @@
{
"no-vulns-popular": {
"popular": true,
"latest_version": "2.0",
"last_updated": "2015-05-16T00:00:00.000Z",
"vulnerabilities": []
},
"dignitas-themes": {
"popular": true,
"latest_version": null,
"last_updated": null,
"vulnerabilities" : [
{
"created_at" : "2015-03-05T19:25:59.000Z",
"updated_at" : "2015-03-05T19:37:47.000Z",
"references": {
"url" : [
"http://research.evex.pw/?vuln=6",
"http://packetstormsecurity.com/files/130652/"
]
},
"title" : "Dignitas 1.1.9 - Privilage Escalation",
"id" : 7825,
"vuln_type" : "AUTHBYPASS"
}
]
},
"yaaburnee-themes": {
"popular": false,
"latest_version": null,
"last_updated": null,
"vulnerabilities" : [
{
"created_at" : "2015-03-05T19:25:44.000Z",
"updated_at" : "2015-03-05T19:41:14.000Z",
"references": {
"url" : [
"http://research.evex.pw/?vuln=6",
"http://packetstormsecurity.com/files/130652/"
]
},
"title" : "Ya'aburnee 1.0.7 - Privilage Escalation",
"id" : 7824,
"vuln_type" : "AUTHBYPASS"
}
]
}
}

View File

@@ -0,0 +1,6 @@
{
"vulnerabilities": [],
"popular": true,
"latest_version": "2.1",
"last_updated": "2015-05-16T00:00:00.000Z-via-api"
}

View File

@@ -0,0 +1,17 @@
{
"latest_version": null,
"last_updated": null,
"popular": false,
"vulnerabilities" : [
{
"title" : "First Vuln \u003c= 6.3.10 - LFI",
"fixed_in" : "6.3.10",
"id" : 1,
"vuln_type": "LFI"
},
{
"title": "No Fixed In",
"id": 2
}
]
}

View File

@@ -0,0 +1,22 @@
{
"popular": true,
"latest_version": null,
"last_updated": null,
"vulnerabilities" : [
{
"created_at" : "2015-03-05T19:25:59.000Z",
"updated_at" : "2015-03-05T19:37:47.000Z",
"references": {
"url" : [
"http://research.evex.pw/?vuln=6"
],
"packetstorm": [
"130652"
]
},
"title" : "Dignitas 1.1.9 - Privilage Escalation",
"id" : 7825,
"vuln_type" : "AUTHBYPASS"
}
]
}

View File

@@ -0,0 +1,6 @@
{
"popular": true,
"latest_version": "2.2",
"last_updated": "2015-05-16T00:00:00.000Z-via-api",
"vulnerabilities": []
}

View File

@@ -0,0 +1,17 @@
{
"latest_version": null,
"last_updated": null,
"popular": false,
"vulnerabilities" : [
{
"title" : "First Vuln",
"fixed_in" : "6.3.10",
"id" : 1,
"vuln_type": "LFI"
},
{
"title": "No Fixed In",
"id": 2
}
]
}

View File

@@ -0,0 +1,22 @@
{
"popular": false,
"latest_version": null,
"last_updated": null,
"vulnerabilities" : [
{
"created_at" : "2015-03-05T19:25:44.000Z",
"updated_at" : "2015-03-05T19:41:14.000Z",
"references": {
"url" : [
"http://research.evex.pw/?vuln=6",
],
"packetstorm": [
"130652"
]
},
"title" : "Ya'aburnee 1.0.7 - Privilage Escalation",
"id" : 7824,
"vuln_type" : "AUTHBYPASS"
}
]
}

View File

@@ -0,0 +1,17 @@
{
"release_date" : "2013-12-12",
"status": "insecure",
"vulnerabilities" : [
{
"references": {
"url" : ["url-4"],
"osvdb" : ["11"]
},
"created_at" : "2014-08-01T10:58:19.000Z",
"updated_at" : "2014-09-16T15:45:26.000Z",
"title" : "WP 3.8 - Vuln 1",
"id" : 3,
"vuln_type" : "AUTHBYPASS"
}
]
}

View File

@@ -0,0 +1,27 @@
{
"release_date" : "2014-01-23-via-api",
"status": "outdated-via-api",
"vulnerabilities" : [
{
"created_at" : "2014-08-01T10:58:19.000Z",
"updated_at" : "2014-09-16T13:52:17.000Z",
"title" : "WP 3.8.1 - Vuln 1",
"id" : 1,
"vuln_type" : "SQLI",
"published_date" : null,
"fixed_in" : null
},
{
"references" : {
"cve" : ["2014-0166"],
"osvdb" : ["10"],
"url" : ["url-2","url-3"]
},
"fixed_in" : "3.8.2",
"created_at" : "2014-08-01T10:58:19.000Z",
"updated_at" : "2014-09-16T13:53:11.000Z",
"id" : 2,
"title" : "WP 3.8.1 - Vuln 2"
}
]
}

View File

@@ -0,0 +1,4 @@
{
"release_date" : "2014-09-04",
"status": "latest"
}

View File

@@ -1,50 +0,0 @@
{
"4.0": {
"release_date" : "2014-09-04",
"status": "latest"
},
"3.8.1": {
"release_date" : "2014-01-23",
"status": "outdated",
"vulnerabilities" : [
{
"created_at" : "2014-08-01T10:58:19.000Z",
"updated_at" : "2014-09-16T13:52:17.000Z",
"title" : "WP 3.8.1 - Vuln 1",
"id" : 1,
"vuln_type" : "SQLI",
"published_date" : null,
"fixed_in" : null
},
{
"references" : {
"cve" : ["2014-0166"],
"osvdb" : ["10"],
"url" : ["url-2","url-3"]
},
"fixed_in" : "3.8.2",
"created_at" : "2014-08-01T10:58:19.000Z",
"updated_at" : "2014-09-16T13:53:11.000Z",
"id" : 2,
"title" : "WP 3.8.1 - Vuln 2"
}
]
},
"3.8": {
"release_date" : "2013-12-12",
"status": "insecure",
"vulnerabilities" : [
{
"references": {
"url" : ["url-4"],
"osvdb" : ["11"]
},
"created_at" : "2014-08-01T10:58:19.000Z",
"updated_at" : "2014-09-16T15:45:26.000Z",
"title" : "WP 3.8 - Vuln 1",
"id" : 3,
"vuln_type" : "AUTHBYPASS"
}
]
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,58 @@
# Copyright (C) 2019 Jörn Lund
# This file is distributed under the same license as the ACF Duplicate Repeater plugin.
msgid ""
msgstr ""
"Project-Id-Version: ACF Duplicate Repeater 2.0.0\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/acf-duplicate-repeater\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"POT-Creation-Date: 2019-08-22T14:32:38+00:00\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"X-Generator: WP-CLI 2.2.0\n"
"X-Domain: acf-duplicate-repeater\n"
#. Plugin Name of the plugin
msgid "ACF Duplicate Repeater"
msgstr ""
#. Plugin URI of the plugin
msgid "https://github.com/mcguffin/acf-duplicate-repeater"
msgstr ""
#. Description of the plugin
msgid "Duplicate Repeater and Layout Fields in ACF Pro"
msgstr ""
#. Author of the plugin
msgid "Jörn Lund"
msgstr ""
#. Author URI of the plugin
msgid "https://github.com/mcguffin"
msgstr ""
#. Translators: ACF-Pro URL
#: include/ACFDuplicateRepeater/Core/Core.php:69
msgid "The ACF Duplicate Repeater plugin only provides support for <a href=\"%s\">ACF Pro 5.7</a> and up."
msgstr ""
#. Translators: Plugins page URL
#: include/ACFDuplicateRepeater/Core/Core.php:78
msgid "Please upgrade ACF Pro to the latest Version on the <a href=\"%s\">plugins page</a>."
msgstr ""
#. Translators: Plugins page URL
#: include/ACFDuplicateRepeater/Core/Core.php:87
msgid "You can disable and uninstall the plugin on the <a href=\"%2$s\">plugins page</a>."
msgstr ""
#: include/ACFDuplicateRepeater/Core/Core.php:123
msgid "Duplicate Entry"
msgstr ""
#: include/ACFDuplicateRepeater/Core/Core.php:127
msgid "Duplicate Layout"
msgstr ""

View File

@@ -0,0 +1,4 @@
# Changelog ##
## 1.0.0 - 26 Aug 2019
* Initial release

View File

@@ -0,0 +1,4 @@
# Changelog ##
## 1.0.0 - 16 Aug 2019
* Initial release

View File

@@ -0,0 +1,153 @@
# Copyright (C) 2019 mcguffin
# This file is distributed under the same license as the ACF QuickEdit Fields plugin.
msgid ""
msgstr ""
"Project-Id-Version: ACF QuickEdit Fields 3.0.0\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/acf-quick-edit-fields\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"POT-Creation-Date: 2019-09-03T06:48:12+00:00\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"X-Generator: WP-CLI 2.2.0\n"
"X-Domain: acf-quickedit-fields\n"
#. Plugin Name of the plugin
msgid "ACF QuickEdit Fields"
msgstr ""
#. Plugin URI of the plugin
msgid "https://github.com/mcguffin/acf-quickedit-fields"
msgstr ""
#. Description of the plugin
msgid "Show Advanced Custom Fields in post list table. Edit field values in Quick Edit and / or Bulk edit."
msgstr ""
#. Author of the plugin
msgid "mcguffin"
msgstr ""
#. Author URI of the plugin
msgid "https://github.com/mcguffin"
msgstr ""
#: include/ACFQuickEdit/Admin/FieldGroup.php:52
msgid "Column View"
msgstr ""
#: include/ACFQuickEdit/Admin/FieldGroup.php:56
msgid "Show a column in the posts list table"
msgstr ""
#: include/ACFQuickEdit/Admin/FieldGroup.php:78
msgid "Show Column"
msgstr ""
#: include/ACFQuickEdit/Admin/FieldGroup.php:83
msgid "Show column in list tables"
msgstr ""
#: include/ACFQuickEdit/Admin/FieldGroup.php:91
msgid "Sortable Column"
msgstr ""
#: include/ACFQuickEdit/Admin/FieldGroup.php:96
msgid "Make this column sortable"
msgstr ""
#: include/ACFQuickEdit/Admin/FieldGroup.php:106
#: include/ACFQuickEdit/Admin/FieldGroup.php:110
msgid "Column Weight"
msgstr ""
#: include/ACFQuickEdit/Admin/FieldGroup.php:107
msgid "Columns with a higher weight will be pushed to the right. The leftmost WordPress column has a weight of <em>0</em>, the next one <em>100</em> and so on. Leave empty to place a column to the rightmost position."
msgstr ""
#: include/ACFQuickEdit/Admin/FieldGroup.php:144
msgid "Editing"
msgstr ""
#: include/ACFQuickEdit/Admin/FieldGroup.php:169
msgid "QuickEdit"
msgstr ""
#: include/ACFQuickEdit/Admin/FieldGroup.php:174
#: include/ACFQuickEdit/Admin/FieldGroup.php:191
msgid "Enabled"
msgstr ""
#: include/ACFQuickEdit/Admin/FieldGroup.php:175
#: include/ACFQuickEdit/Admin/FieldGroup.php:192
msgid "Disabled"
msgstr ""
#: include/ACFQuickEdit/Admin/FieldGroup.php:186
msgid "Bulk Edit"
msgstr ""
#. Translators: 1: ACF Pro URL, 2: plugins page url
#: include/ACFQuickEdit/Admin/Admin.php:178
msgid "The <strong>ACF QuickEdit Fields</strong> plugin requires <a href=\"%1$s\">ACF version 5.6 or later</a>. You can disable and uninstall it on the <a href=\"%2$s\">plugins page</a>."
msgstr ""
#: include/ACFQuickEdit/Fields/LinkField.php:58
msgid "Select Link"
msgstr ""
#: include/ACFQuickEdit/Fields/LinkField.php:59
msgid "Remove Link"
msgstr ""
#: include/ACFQuickEdit/Fields/PasswordField.php:22
#: include/ACFQuickEdit/Fields/NumberField.php:24
#: include/ACFQuickEdit/Fields/ChoiceField.php:57
#: include/ACFQuickEdit/Fields/TaxonomyField.php:42
#: include/ACFQuickEdit/Fields/PageLinkField.php:22
#: include/ACFQuickEdit/Fields/DateTimePickerField.php:18
msgid "(No value)"
msgstr ""
#: include/ACFQuickEdit/Fields/FileField.php:46
msgid "Select File"
msgstr ""
#: include/ACFQuickEdit/Fields/FileField.php:47
msgid "Remove File"
msgstr ""
#: include/ACFQuickEdit/Fields/TaxonomyField.php:98
#: include/ACFQuickEdit/Fields/TaxonomyField.php:114
msgid " No Selection "
msgstr ""
#: include/ACFQuickEdit/Fields/Field.php:267
msgid "Do not change"
msgstr ""
#: include/ACFQuickEdit/Fields/RelationshipField.php:73
msgid "Private"
msgstr ""
#: include/ACFQuickEdit/Fields/PostObjectField.php:55
msgid "(no title)"
msgstr ""
#: include/ACFQuickEdit/Fields/CheckboxField.php:57
msgid "Add Choice"
msgstr ""
#: include/ACFQuickEdit/Fields/SelectField.php:31
msgid "— Select —"
msgstr ""
#: include/ACFQuickEdit/Ajax/AjaxHandler.php:156
msgid "Nonce invalid"
msgstr ""
#: include/ACFQuickEdit/Ajax/AjaxHandler.php:161
msgid "Insufficient Permission"
msgstr ""

View File

@@ -0,0 +1,593 @@
# Copyright (C) 2019 Arya Themes
# This file is distributed under the same license as the Arya License Manager plugin.
msgid ""
msgstr ""
"Project-Id-Version: Arya License Manager 1.0.0\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/arya-license-manager\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"POT-Creation-Date: 2019-08-27T01:28:03+00:00\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"X-Generator: WP-CLI 2.3.0\n"
"X-Domain: arya-license-manager\n"
#. Plugin Name of the plugin
msgid "Arya License Manager"
msgstr ""
#. Plugin URI of the plugin
msgid "https://gitlab.com/arya-license-manager"
msgstr ""
#. Description of the plugin
msgid "Arya License Manager integrates with WooCommerce to simplify the creation and management of software licenses."
msgstr ""
#. Author of the plugin
msgid "Arya Themes"
msgstr ""
#. Author URI of the plugin
msgid "https://www.aryathemes.com"
msgstr ""
#: compatibility.php:33
msgid "Arya License Manager requires WooCommerce 3.6.0 or greater."
msgstr ""
#: src/Admin/Admin.php:95
msgid "Licenses Management"
msgstr ""
#: src/Admin/Admin.php:96
#: src/Admin/Settings.php:61
#: src/Admin/Settings.php:83
#: src/Admin/Settings.php:181
#: src/Storefront/Account.php:81
#: src/Storefront/Query.php:69
#: templates/emails/email-licenses.php:8
#: templates/emails/plain/email-licenses.php:10
#: templates/myaccount/order-licenses.php:8
msgid "Licenses"
msgstr ""
#: src/Admin/Analytics/Licenses.php:48
#: src/Admin/License.php:187
#: src/Admin/Product/Simple.php:63
#: src/Admin/Product/Simple.php:64
#: src/Admin/Product/Variable.php:65
#: src/Storefront/Licenses.php:73
#: src/Storefront/Licenses.php:102
#: src/Storefront/Licenses.php:113
#: src/Storefront/Order.php:292
#: src/Storefront/Query.php:72
#: templates/emails/email-licenses.php:17
#: templates/myaccount/order-licenses.php:15
#: templates/myaccount/order-licenses.php:43
msgid "License"
msgstr ""
#: src/Admin/Analytics/Licenses.php:49
#: src/Storefront/Order.php:304
msgid "Type"
msgstr ""
#: src/Admin/Analytics/Licenses.php:50
#: src/Storefront/License.php:107
#: templates/emails/email-licenses.php:16
#: templates/myaccount/order-licenses.php:14
#: templates/myaccount/order-licenses.php:42
msgid "Product"
msgstr ""
#: src/Admin/Analytics/Licenses.php:51
#: src/Admin/License.php:130
#: templates/myaccount/license.php:26
msgid "Activations"
msgstr ""
#: src/Admin/Analytics/Licenses.php:52
#: src/Admin/License.php:191
#: src/Storefront/Order.php:295
msgid "Status"
msgstr ""
#: src/Admin/Analytics/Licenses.php:53
#: src/Admin/License.php:203
#: src/Storefront/License.php:111
msgid "Service start date"
msgstr ""
#: src/Admin/Analytics/Licenses.php:54
#: src/Admin/License.php:207
#: src/Storefront/License.php:115
msgid "Service end date"
msgstr ""
#: src/Admin/Analytics/Licenses.php:55
msgid "Order"
msgstr ""
#: src/Admin/Analytics/Licenses.php:155
msgid "No licenses found."
msgstr ""
#: src/Admin/Analytics/Licenses.php:226
#: src/Storefront/License.php:103
msgid "unlimited"
msgstr ""
#. translators: %s of %s: number of activations
#: src/Admin/Analytics/Licenses.php:229
#: src/Storefront/License.php:103
msgid "%1$s of %2$s"
msgstr ""
#. translators: %s ago: human-readable time
#: src/Admin/Analytics/Licenses.php:264
msgctxt "%s = human-readable time"
msgid "%s ago"
msgstr ""
#: src/Admin/Analytics/Licenses.php:303
msgid "Regenerate download permissions"
msgstr ""
#: src/Admin/Emails/Expired.php:24
msgid "Expired license"
msgstr ""
#: src/Admin/Emails/Expired.php:25
msgid "Expired license emails are sent when a license has been deactivated by manager."
msgstr ""
#: src/Admin/Emails/Expired.php:54
msgid "[{site_title}]: License {license} has expired"
msgstr ""
#: src/Admin/Emails/Expired.php:64
msgid "Expired license: <code>{license}</code>"
msgstr ""
#: src/Admin/Emails/Expired.php:120
#: src/Admin/Emails/Suspended.php:124
msgid "Enable/Disable"
msgstr ""
#: src/Admin/Emails/Expired.php:122
#: src/Admin/Emails/Suspended.php:126
msgid "Enable this email notification"
msgstr ""
#: src/Admin/Emails/Expired.php:126
#: src/Admin/Emails/Suspended.php:130
msgid "Recipient(s)"
msgstr ""
#. translators: Defaults to %s: Recipients for this email
#: src/Admin/Emails/Expired.php:128
#: src/Admin/Emails/Suspended.php:132
msgid "Enter recipients (comma separated) for this email. Defaults to %s."
msgstr ""
#: src/Admin/Emails/Expired.php:134
#: src/Admin/Emails/Suspended.php:138
msgid "Subject"
msgstr ""
#. translators: Available placeholders: %s: Available placeholders
#: src/Admin/Emails/Expired.php:136
#: src/Admin/Emails/Expired.php:145
#: src/Admin/Emails/Suspended.php:140
#: src/Admin/Emails/Suspended.php:149
msgid "Available placeholders: %s"
msgstr ""
#: src/Admin/Emails/Expired.php:142
#: src/Admin/Emails/Suspended.php:146
msgid "Email heading"
msgstr ""
#: src/Admin/Emails/Expired.php:150
#: src/Admin/Emails/Suspended.php:154
msgid "Email type"
msgstr ""
#: src/Admin/Emails/Expired.php:152
#: src/Admin/Emails/Suspended.php:156
msgid "Choose which format of email to send."
msgstr ""
#: src/Admin/Emails/Suspended.php:24
msgid "Suspended license"
msgstr ""
#: src/Admin/Emails/Suspended.php:25
msgid "Suspended license emails are sent when a license has been deactivated by manager."
msgstr ""
#: src/Admin/Emails/Suspended.php:54
msgid "[{site_title}]: License {license} has been suspended"
msgstr ""
#: src/Admin/Emails/Suspended.php:64
msgid "License suspended: {license}"
msgstr ""
#: src/Admin/Integration.php:80
#: src/Admin/Integration.php:101
msgctxt "WooCommerce header breadcrumbs"
msgid "Licenses"
msgstr ""
#: src/Admin/Integration.php:89
msgctxt "WooCommerce header breadcrumbs"
msgid "License details"
msgstr ""
#: src/Admin/License.php:83
#: templates/myaccount/license.php:14
msgid "License not available."
msgstr ""
#: src/Admin/License.php:89
msgid "License details"
msgstr ""
#: src/Admin/License.php:128
msgid "Information"
msgstr ""
#: src/Admin/License.php:133
#: src/Admin/License.php:243
#: src/Storefront/License.php:145
#: src/Storefront/Licenses.php:74
#: src/Storefront/Licenses.php:103
#: src/Storefront/Licenses.php:114
#: templates/myaccount/order-licenses.php:16
#: templates/myaccount/order-licenses.php:44
msgid "Actions"
msgstr ""
#: src/Admin/License.php:147
#: src/Storefront/Cart.php:116
#: src/Storefront/Order.php:332
msgid "Unlimited activations"
msgstr ""
#. translators: %d activation: number of activations
#: src/Admin/License.php:149
#: src/Storefront/Cart.php:118
#: src/Storefront/Order.php:334
msgid "%d activation"
msgid_plural "%d activations"
msgstr[0] ""
msgstr[1] ""
#: src/Admin/License.php:195
#: src/Admin/Product.php:121
#: src/Admin/Product/Variable.php:121
#: src/Storefront/License.php:119
msgid "License type"
msgstr ""
#: src/Admin/License.php:199
msgid "Product HM"
msgstr ""
#: src/Admin/License.php:211
#: src/Storefront/License.php:123
msgid "Allowed activations"
msgstr ""
#: src/Admin/License.php:215
msgid "Order / Customer"
msgstr ""
#: src/Admin/License.php:241
#: src/Storefront/License.php:143
msgid "Activation"
msgstr ""
#: src/Admin/License.php:242
#: src/Storefront/License.php:144
#: src/Storefront/Order.php:307
msgid "Activation date"
msgstr ""
#: src/Admin/License.php:258
#: src/Storefront/License.php:206
msgid "Associate"
msgstr ""
#: src/Admin/License.php:262
#: src/License/Traits/LicenseTrait.php:98
#: src/Storefront/License.php:208
msgid "WordPress"
msgstr ""
#: src/Admin/License.php:263
#: src/License/Traits/LicenseTrait.php:101
#: src/Storefront/License.php:209
msgid "Web Application"
msgstr ""
#: src/Admin/License.php:271
#: src/Storefront/License.php:214
msgid "Website URL"
msgstr ""
#: src/Admin/License.php:278
#: src/Storefront/License.php:217
msgid "The IP address of the provided website is automatically assigned."
msgstr ""
#: src/Admin/License.php:286
msgid "Associate license"
msgstr ""
#: src/Admin/License.php:307
#: src/Storefront/License.php:154
msgid "This license has not been associated to a website."
msgstr ""
#: src/Admin/License.php:325
#: src/Storefront/License.php:172
msgid "Revoke"
msgstr ""
#: src/Admin/License.php:352
msgid "Activate"
msgstr ""
#: src/Admin/License.php:353
msgid "Deactivate"
msgstr ""
#: src/Admin/License.php:354
msgid "Renew"
msgstr ""
#: src/Admin/License.php:361
msgid "Choose an action..."
msgstr ""
#: src/Admin/License.php:369
msgid "Update"
msgstr ""
#: src/Admin/License.php:389
#: src/Storefront/Account.php:217
msgid "It was not possible to associate the license."
msgstr ""
#: src/Admin/Licenses.php:61
msgid "License Management"
msgstr ""
#: src/Admin/Licenses.php:86
msgid "Number of licenses per page:"
msgstr ""
#: src/Admin/Order.php:60
#: src/Storefront/Order.php:113
msgid "Regenerate download permissions for licenses"
msgstr ""
#: src/Admin/Product.php:70
msgid "Software License"
msgstr ""
#: src/Admin/Product.php:99
#: src/Admin/Product/Variable.php:90
msgid "Expiry time"
msgstr ""
#: src/Admin/Product.php:110
#: src/Admin/Product/Variable.php:97
msgid "Expire interval"
msgstr ""
#: src/Admin/Product.php:113
#: src/Admin/Product/Variable.php:100
msgid "Years"
msgstr ""
#: src/Admin/Product.php:114
#: src/Admin/Product/Variable.php:101
msgid "Months"
msgstr ""
#: src/Admin/Product.php:115
#: src/Admin/Product/Variable.php:102
msgid "Days"
msgstr ""
#: src/Admin/Product.php:124
#: src/Admin/Product/Variable.php:124
msgid "On-demand software"
msgstr ""
#: src/Admin/Product.php:125
#: src/Admin/Product/Variable.php:125
#: src/License/Traits/LicenseTrait.php:48
msgid "Perpetual"
msgstr ""
#: src/Admin/Product.php:135
#: src/Admin/Product/Variable.php:109
#: src/Storefront/Cart.php:93
msgid "Activation limit"
msgstr ""
#: src/Admin/Product.php:136
#: src/Admin/Product/Variable.php:111
msgid "Leave blank for unlimited activations."
msgstr ""
#: src/Admin/Product.php:139
#: src/Admin/Product/Variable.php:114
msgid "Unlimited"
msgstr ""
#: src/Admin/Product/License.php:63
msgid "Software license"
msgstr ""
#: src/Admin/Product/Variable.php:64
msgid "Enable this option if the product is associated to a license."
msgstr ""
#: src/Admin/Request.php:82
#: src/Admin/Request.php:132
#: src/Admin/Request.php:178
msgid "It is not possible to perform an action since the order has not been completed."
msgstr ""
#: src/Admin/Settings.php:84
msgid "The following options are used to configure licenses format."
msgstr ""
#: src/Admin/Settings.php:89
msgid "Length"
msgstr ""
#: src/Admin/Settings.php:90
msgid "Number of characters to generate a new license. Licenses shall have a minimum length of 10 characters."
msgstr ""
#: src/Admin/Settings.php:102
msgid "Chunks"
msgstr ""
#: src/Admin/Settings.php:103
msgid "Split a license into chunks."
msgstr ""
#: src/Admin/Settings.php:115
msgid "Prefix"
msgstr ""
#: src/Admin/Settings.php:116
msgid "Add the prefix to the generated license."
msgstr ""
#: src/Admin/Settings.php:124
msgid "Suffix"
msgstr ""
#: src/Admin/Settings.php:125
msgid "Add the suffix to the generated license."
msgstr ""
#: src/Admin/Settings.php:142
msgid "Account page"
msgstr ""
#: src/Admin/Settings.php:147
msgid "Pagination"
msgstr ""
#: src/Admin/Settings.php:148
msgid "Limits the number of licenses to display on \"My Account\" page."
msgstr ""
#: src/Admin/Settings.php:182
msgid "Endpoint for the \"Licenses\" page."
msgstr ""
#: src/Admin/Settings.php:189
msgid "View license"
msgstr ""
#: src/Admin/Settings.php:190
msgid "Endpoint for the \"View license\" page."
msgstr ""
#: src/License/Traits/LicenseTrait.php:51
msgid "On demand software"
msgstr ""
#: src/License/Traits/LicenseTrait.php:68
msgid "Valid"
msgstr ""
#: src/License/Traits/LicenseTrait.php:69
msgid "Expired"
msgstr ""
#: src/License/Traits/LicenseTrait.php:70
msgid "Suspended"
msgstr ""
#: src/License/Traits/LicenseTrait.php:71
msgid "Inactive"
msgstr ""
#: src/License/Traits/LicenseTrait.php:84
#: src/Storefront/Cart.php:120
msgid "Unknown"
msgstr ""
#: src/Storefront/Account.php:96
msgid "You do not have permission to view the license information."
msgstr ""
#: src/Storefront/Cart.php:99
#: src/Storefront/Order.php:298
msgid "Activation period"
msgstr ""
#: src/Storefront/License.php:224
msgid "Accept"
msgstr ""
#: src/Storefront/Licenses.php:72
#: src/Storefront/Licenses.php:101
#: src/Storefront/Licenses.php:112
msgid "Software"
msgstr ""
#: src/Storefront/Licenses.php:96
#: templates/myaccount/order-licenses.php:37
msgid "Manage"
msgstr ""
#: src/Storefront/Licenses.php:145
msgid "«"
msgstr ""
#: src/Storefront/Licenses.php:146
msgid "»"
msgstr ""
#: src/Storefront/Order.php:301
msgid "Activations limit"
msgstr ""
#: src/Storefront/Order.php:310
msgid "Expiry date"
msgstr ""
#: src/Storefront/Product.php:79
msgid "Add to cart"
msgstr ""
#: templates/myaccount/license.php:10
msgid "Invalid license."
msgstr ""
#: templates/myaccount/license.php:22
msgid "Details"
msgstr ""
#: templates/myaccount/licenses.php:12
msgid "Go shop"
msgstr ""
#: templates/myaccount/licenses.php:14
msgid "There are no active licenses."
msgstr ""

View File

@@ -0,0 +1,336 @@
msgid ""
msgstr ""
"Project-Id-Version: asMember 1.0\n"
"POT-Creation-Date: 2019-06-25 12:18+0200\n"
"PO-Revision-Date: 2019-06-25 12:46+0200\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: de_DE\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.2.3\n"
"X-Poedit-Basepath: .\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Poedit-KeywordsList: __\n"
"X-Poedit-SearchPath-0: .\n"
#: admin/admin.php:62
msgid "Visibility"
msgstr ""
#: admin/admin.php:64
msgid "public"
msgstr ""
#: admin/admin.php:65
msgid "Only Members"
msgstr "Nur für Mitglieder"
#: admin/admin.php:95
msgid "Hello"
msgstr ""
#: admin/admin.php:111 admin/admin.php:112
msgid "Options"
msgstr ""
#: admin/options.php:143
msgid "Seite w&auml;hlen"
msgstr ""
#: public/members.php:119 public/user-account.php:226
msgid "Profile"
msgstr ""
#: public/members.php:126 public/members.php:248
msgid "Interests"
msgstr "Interessen"
#: public/members.php:133
msgid "Ads"
msgstr ""
#: public/members.php:153 public/user-account.php:194
#: public/user-account.php:319
msgid "About me"
msgstr "Über mich"
#: public/members.php:163
msgid "Contact"
msgstr "Kontakt"
#: public/members.php:198 public/user-account.php:377
msgid "I search"
msgstr "Ich suche"
#: public/members.php:208 public/user-account.php:372
msgid "I offer"
msgstr "Ich biete"
#: public/members.php:256 public/user-account.php:335
msgid "favorite quote"
msgstr ""
#: public/members.php:270 public/user-account.php:345
msgid "favorite music"
msgstr ""
#: public/members.php:280 public/user-account.php:355
msgid "favorite film"
msgstr "Lieblingsfilm"
#: public/members.php:291 public/user-account.php:350
msgid "favorite book"
msgstr "Lieblingsbuch"
#: public/user-account.php:131 public/user-account.php:256
msgid "Address"
msgstr "Anrede"
#: public/user-account.php:133 public/user-account.php:258
#: public/user-register.php:604
msgid "Sir"
msgstr "Herr"
#: public/user-account.php:134 public/user-account.php:259
#: public/user-register.php:603
msgid "Madame"
msgstr ""
#: public/user-account.php:139 public/user-account.php:140
#: public/user-account.php:264 public/user-account.php:265
#: public/user-register.php:609
msgid "Title"
msgstr ""
#: public/user-account.php:144 public/user-account.php:145
#: public/user-account.php:269 public/user-account.php:270
#: public/user-register.php:615
msgid "Firstname"
msgstr ""
#: public/user-account.php:150 public/user-account.php:151
#: public/user-account.php:275 public/user-account.php:276
#: public/user-register.php:621
msgid "Lastname"
msgstr ""
#: public/user-account.php:162 public/user-account.php:163
#: public/user-account.php:287 public/user-account.php:288
#: public/user-register.php:631
msgid "Street"
msgstr "Straße"
#: public/user-account.php:168 public/user-account.php:169
#: public/user-account.php:293 public/user-account.php:294
#: public/user-register.php:636
msgid "Zipcode"
msgstr "PLZ"
#: public/user-account.php:174 public/user-account.php:175
#: public/user-account.php:299 public/user-account.php:300
#: public/user-register.php:642
msgid "City"
msgstr "Ort"
#: public/user-account.php:182 public/user-account.php:307
msgid "Birthday"
msgstr "Geburtstag"
#: public/user-account.php:208 public/user-account.php:422
msgid "Save"
msgstr "Speichern"
#: public/user-account.php:231
msgid "Detail"
msgstr ""
#: public/user-account.php:235
msgid "Offer/Search"
msgstr ""
#: public/user-account.php:239 public/user-account.php:394
msgid "Avatar"
msgstr ""
#: public/user-account.php:340
msgid "interests"
msgstr ""
#: public/user-account.php:400 public/user-account.php:404
msgid "Upload Avatar"
msgstr ""
#: public/user-dashboard.php:24
msgid "Welcome"
msgstr ""
#: public/user-dashboard.php:33
msgid "not logged in"
msgstr ""
#: public/user-login.php:32
msgid "Benutzer/Email"
msgstr ""
#: public/user-login.php:33
msgid "Passwort"
msgstr ""
#: public/user-login.php:34
msgid "Eingeloggt bleiben"
msgstr ""
#: public/user-login.php:35 public/user-login.php:61
msgid "Login"
msgstr ""
#: public/user-login.php:47 public/user-login.php:48
msgid "Username oder Email"
msgstr "Benutzer oder EMail"
#: public/user-login.php:51 public/user-login.php:52
#: public/user-register.php:117 public/user-register.php:684
#: public/user-register.php:685
msgid "Password"
msgstr "Passwort"
#: public/user-login.php:56
msgid "Be Logged in"
msgstr "Sie sind eingeloggt"
#: public/user-login.php:74
msgid "Reset password"
msgstr "Passwort vergessen"
#: public/user-login.php:80 public/user-register.php:128
#: public/user-register.php:742
msgid "Register"
msgstr ""
#: public/user-login.php:121
msgid "<strong>ERROR</strong>: Invalid username or incorrect password."
msgstr ""
#: public/user-register.php:27
msgid "You are logged in"
msgstr "Sie sind bereits eingeloggt."
#: public/user-register.php:27
msgid "Next"
msgstr ""
#: public/user-register.php:34
msgid "Register disabled"
msgstr ""
#: public/user-register.php:56
msgid "Your membership has been successfully activated"
msgstr ""
#: public/user-register.php:59 public/user-register.php:106
#: public/user-register.php:186
msgid "Activation was not successful"
msgstr ""
#: public/user-register.php:116
msgid "Username"
msgstr ""
#: public/user-register.php:127
msgid "Lost password"
msgstr "Passwort vergessen"
#: public/user-register.php:174
msgid "A membership application for this email has already been created."
msgstr "Ein Mitgliedsantrag zu dieser Email wurde bereits angelegt."
#: public/user-register.php:294 public/user-register.php:515
msgid "Please enter a valid email address!"
msgstr "Bitte geben Sie eine gültige EMail ein!"
#: public/user-register.php:405
msgid ""
"Your account has been successfully created. You will receive an email with a "
"confirmation link to activate your account."
msgstr ""
#: public/user-register.php:437 public/user-register.php:449
#: public/user-register.php:461 public/user-register.php:471
#: public/user-register.php:481 public/user-register.php:491
#: public/user-register.php:507
msgid "Please fill in this field!"
msgstr "Bitte füllen Sie dieses Feld aus!"
#: public/user-register.php:529 public/user-register.php:538
msgid "Please enter a password with at least 8 characters!"
msgstr ""
#: public/user-register.php:547
msgid "The passwords must be identical."
msgstr ""
#: public/user-register.php:557
msgid "Please confirm the terms and conditions."
msgstr ""
#: public/user-register.php:566
msgid "Please confirm the privacy policy"
msgstr ""
#: public/user-register.php:601
msgid "address"
msgstr ""
#: public/user-register.php:616
msgid "Your firstname"
msgstr ""
#: public/user-register.php:622
msgid "Your lastname"
msgstr ""
#: public/user-register.php:632
msgid "Your street"
msgstr "Ihre Straße"
#: public/user-register.php:637
msgid "Your zipcode"
msgstr "Ihre PLZ"
#: public/user-register.php:643
msgid "Your City"
msgstr ""
#: public/user-register.php:647
msgid "Phone"
msgstr "Telefon"
#: public/user-register.php:648
msgid "Your phone"
msgstr "Ihre Telefonnummer"
#: public/user-register.php:670
msgid "Name"
msgstr "Name"
#: public/user-register.php:671
msgid "Your name"
msgstr "Ihr Name"
#: public/user-register.php:679
msgid "EMail"
msgstr "EMail"
#: public/user-register.php:680
msgid "Your Email"
msgstr "Ihre Email"
#: public/user-register.php:689 public/user-register.php:690
msgid "Repeat password"
msgstr "Passwort wiederholen"
#: public/user-register.php:704
msgid "Membership"
msgstr "Mitgliedschaft"

View File

@@ -0,0 +1,258 @@
# Copyright (C) 2019 Carlos G. Cerro cgcerro@gmail.com
# This file is distributed under the same license as the AvaiBook plugin.
msgid ""
msgstr ""
"Project-Id-Version: AvaiBook 1.0.0\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/avaibook\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"POT-Creation-Date: 2019-06-25T12:50:01+02:00\n"
"PO-Revision-Date: 2019-06-28 09:34+0200\n"
"X-Generator: Poedit 2.2.3\n"
"X-Domain: avaibook\n"
"Last-Translator: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"Language: pt_PT\n"
#. Plugin Name of the plugin
msgid "AvaiBook"
msgstr "AvaiBook"
#. Plugin URI of the plugin
msgid "http://wordpress.org/plugins/avaibook/"
msgstr "http://wordpress.org/plugins/avaibook/"
#. Description of the plugin
msgid "Show Avaibook booking form in your wordpress"
msgstr "Mostre o formulário de reserva Avaibook no seu Wordpress"
#. Author of the plugin
msgid "Carlos G. Cerro cgcerro@gmail.com"
msgstr ""
#: avaibook.php:239
msgid "Show Avaibook book form 1"
msgstr "Mostrar formulário AvaiBook 1"
#: avaibook.php:260
msgid "Show Avaibook book form 2"
msgstr "Mostrar formulário AvaiBook 2"
#: avaibook.php:282
msgid "Show Avaibook book form 3"
msgstr "Mostrar formulário AvaiBook 3"
#: includes/admin.php:3
msgid "Form 1"
msgstr "Formulário 1"
#: includes/admin.php:3
msgid "Form 2"
msgstr "Formulário 2"
#: includes/admin.php:3
msgid "Form 3"
msgstr "Formulário 3"
#: includes/admin.php:15
msgid ""
"You can define three types of form. Each one can have a different "
"configuration or presentation."
msgstr ""
"É possível definir três tipos diferentes de formulários. Cada um com uma "
"configuração ou apresentação diferente."
#: includes/admin.php:33
msgid "Rental Id is mandatory with \"single\" rental type."
msgstr ""
"A identificação do alojamento é obrigatória no tipo de motor \"simples\"."
#: includes/admin.php:37
msgid "Owner Id is mandatory with \"multiple\" rental type."
msgstr ""
"A identificação do alojamento é obrigatória no tipo de motor \"múltiplo\"."
#: includes/admin.php:41
msgid "Configuration saved."
msgstr "Configuração gravada."
#: includes/admin.php:47
msgid "Form"
msgstr "Formulário"
#: includes/admin.php:54
msgid "AvaiBook configuration"
msgstr "Configuração AvaiBook"
#: includes/admin.php:56
msgid ""
"Choose the type of Booking Engine you wish to link, and fill in the "
"requested parameters (those marked with * are mandatory and you will find "
"their value in your private area of AvaiBook)"
msgstr ""
"Escolha o tipo de motor de reservas que pretende utilizar. Preencha os "
"campos obrigatórios (aqueles marcados com * são obrigatórios e encontrará o "
"valor em sua área privada AvaiBook)"
#: includes/admin.php:61
msgid "Booking Engine type"
msgstr "Tipo de motor AvaiBook"
#: includes/admin.php:64
msgid "Single"
msgstr "Simples"
#: includes/admin.php:65
msgid "Multiple"
msgstr "Múltiplo"
#: includes/admin.php:67
msgid ""
"Choose the type of booking engine you want to use. To a single accommodation "
"or to all your accommodations"
msgstr ""
"Escolha o tipo de motor de reservas que pretende utilizar. Para um único "
"alojamento ou para todos os alojamentos"
#: includes/admin.php:73
msgid "Rental Id"
msgstr "ID de Alojamento"
#: includes/admin.php:75
msgid "This is the AvaiBook accommodation Id"
msgstr "Este é o identificador do alojamento"
#: includes/admin.php:79
msgid "Reference"
msgstr "Referência"
#: includes/admin.php:81 includes/admin.php:99
msgid ""
"(optional) the generated reserves will have this reference so that you can "
"distinguish them"
msgstr ""
"(opcional) as reservas geradas terão esta referência anotada para que possa "
"distingui-las"
#: includes/admin.php:92
msgid "This is your customer id in AvaiBook"
msgstr "Este é o seu ID de cliente no AvaiBook"
#: includes/admin.php:105
msgid "Show rental units"
msgstr "Mostrar unidades habitacionais"
#: includes/admin.php:106
msgid "Show zones"
msgstr "Mostrar zonas"
#: includes/admin.php:107
msgid "Show people"
msgstr "Mostrar pessoas"
#: includes/admin.php:108
msgid "Behavior in the booking engine"
msgstr "Comportamento no motor de reservas"
#: includes/admin.php:116
msgid "Display options"
msgstr "Opções de apresentação"
#: includes/admin.php:118
msgid ""
"Choose how you want your widget to be and what colors you want it to have. "
"If you do not mark any of the options below your widget will only be a "
"button."
msgstr ""
"Escolha como quer que seja o seu widget e que cores quer que ele tenha. Se "
"não marcar nenhuma das opções, o widget será apenas um botão."
#: includes/admin.php:121
msgid "title"
msgstr "título"
#: includes/admin.php:122
msgid "This text title will be showed in your form"
msgstr "Este título será exibido no seu formulário"
#: includes/admin.php:127
msgid "Request dates"
msgstr "Pedir datas"
#: includes/admin.php:128
msgid "show dates request's fields"
msgstr "exibir campos de datas"
#: includes/admin.php:135
msgid "Request guest number"
msgstr "Pedir número de clientes"
#: includes/admin.php:136
msgid "show guest's numbers field"
msgstr "mostrar no campo o número de pessoas"
#: includes/admin.php:140
msgid "Colour settings"
msgstr "Configuração de cores"
#: includes/admin.php:141
msgid "Set empty for keep your default style."
msgstr "Mantenha a caixa vazia para deixar o seu estilo por defeito."
#: includes/admin.php:144
msgid "Background colour"
msgstr "Cor de fundo"
#: includes/admin.php:153
msgid "Main colour"
msgstr "Cor principal"
#: includes/admin.php:162
msgid "Text colour"
msgstr "Cor do texto"
#: includes/admin.php:176
msgid "Save changes"
msgstr "Guardar modificações"
#: includes/admin.php:181
msgid "Options"
msgstr "Opções"
#: includes/admin.php:183
msgid "You can use this shortcode"
msgstr "Pode usar o seguinte shortcode"
#: includes/admin.php:185
msgid "Only copy this code, and put it where you want in your post or pages."
msgstr "Basta copiar o código e colá-lo onde quiser nos seus posts ou páginas."
#: includes/admin.php:187
msgid "Or you can use our widget"
msgstr "Ou pode usar o nosso widget"
#: includes/admin.php:189
msgid ""
"Go to <a href=\"%s\">widgets section</a> and drag our widget \"avaibook%s\" "
"where you want."
msgstr ""
"Vá até a seção <a href=\"%s\">widget </a> e arraste o nosso widget \"avaibook"
"%s\" onde quiser."
#: includes/front.php:11
msgid "Arrive date"
msgstr "Data de chegada"
#: includes/front.php:16
msgid "Departure date"
msgstr "Data saída"
#: includes/front.php:24 includes/front.php:25
msgid "Guest Num."
msgstr "Número de pessoas."
#: includes/front.php:29
msgid "search"
msgstr "procurar"

View File

@@ -0,0 +1,139 @@
# Copyright (C) 2019 Contact Form 7 - mountstride CRM - Integration
# This file is distributed under the same license as the Contact Form 7 - mountstride CRM - Integration package.
msgid ""
msgstr ""
"Project-Id-Version: Contact Form 7 - mountstride CRM - Integration 1.0.0\n"
"Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/cf7-to-"
"mountstride\n"
"POT-Creation-Date: 2019-08-01 10:04:10+00:00\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"PO-Revision-Date: 2019-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
#: admin/partials/cf7-form-fields-template.php:40
#: admin/partials/cf7-form-fields-template.php:73
#: admin/partials/mappings.php:236 admin/partials/mappings.php:263
#: admin/partials/mappings.php:287 admin/partials/mappings.php:325
#: admin/partials/mappings.php:358 admin/partials/mappings.php:418
#: admin/partials/mappings.php:474
msgid "N/A"
msgstr ""
#: admin/partials/cf7-form-fields-template.php:91
#: admin/partials/cf7-form-fields-template.php:120
#: admin/partials/mappings.php:341 admin/partials/mappings.php:370
#: admin/partials/mappings.php:448 admin/partials/mappings.php:491
msgid "Delete"
msgstr ""
#: admin/partials/mappings.php:30 admin/partials/settings.php:29
msgid "Please activate Contact Form plugin first."
msgstr ""
#: admin/partials/mappings.php:36 admin/partials/settings.php:35
msgid "Please update latest version for Contact Form plugin first."
msgstr ""
#: admin/partials/mappings.php:148
msgid "CF7 to mountstride CRM Fields Mapping"
msgstr ""
#: admin/partials/mappings.php:149
msgid ""
"Map the required mountstride CRM API fields to your current Contact Form 7 "
"fields"
msgstr ""
#: admin/partials/mappings.php:184
msgid "Enable this form data submitting to mountstride CRM"
msgstr ""
#: admin/partials/mappings.php:188 admin/partials/mappings.php:193
msgid "mountstride CRM General Fields"
msgstr ""
#: admin/partials/mappings.php:194
msgid "CF7 Fields"
msgstr ""
#: admin/partials/mappings.php:195 admin/partials/mappings.php:391
msgid "Action"
msgstr ""
#: admin/partials/mappings.php:376
msgid "Add New Field"
msgstr ""
#: admin/partials/mappings.php:383
msgid "mountstride CRM Master Data Fields"
msgstr ""
#: admin/partials/mappings.php:389
msgid "Extra Field Name"
msgstr ""
#: admin/partials/mappings.php:390
msgid "Value"
msgstr ""
#: admin/partials/mappings.php:498
msgid "Add New Master Data Field"
msgstr ""
#: admin/partials/mappings.php:503
msgid "Save"
msgstr ""
#: admin/partials/settings.php:211
msgid "CF7 to mountstride CRM API Settings"
msgstr ""
#: admin/partials/settings.php:236
msgid "Enable mountstride CRM API"
msgstr ""
#: admin/partials/settings.php:242
msgid "API Endpoint*"
msgstr ""
#: admin/partials/settings.php:248
msgid "Authorization Key*"
msgstr ""
#: admin/partials/settings.php:254
msgid "Token Key*"
msgstr ""
#: admin/partials/settings.php:260
msgid "Enable Log"
msgstr ""
#: admin/partials/settings.php:263
msgid "View debug log"
msgstr ""
#. Plugin Name of the plugin/theme
msgid "Contact Form 7 - mountstride CRM - Integration"
msgstr ""
#. #-#-#-#-# cf7-to-mountstride.pot (Contact Form 7 - mountstride CRM - Integration 1.0.0) #-#-#-#-#
#. Plugin URI of the plugin/theme
#. #-#-#-#-# cf7-to-mountstride.pot (Contact Form 7 - mountstride CRM - Integration 1.0.0) #-#-#-#-#
#. Author URI of the plugin/theme
msgid "https://profiles.wordpress.org/vsourz1td/"
msgstr ""
#. Description of the plugin/theme
msgid ""
"Contact Form 7 mountstride CRM for WordPress is the optimum way to manage "
"leads in easiest way. Its a plug & play tool which allows you to capture "
"and store customers data by integrating the Contact Form and our plugin. No "
"hand-written customization code required."
msgstr ""
#. Author of the plugin/theme
msgid "Vsourz Digital"
msgstr ""

View File

@@ -1011,4 +1011,11 @@ If above timestamp is not current time, this page is cached.</p> -->
<!-- HubSpot WordPress Plugin v7.5.4: embed JS disabled as a portalId has not yet been configured -->
<!-- reachdrip-web-push-notifications -->
<!-- Push Notifications for this site is powered by ReachDrip. Push Notifications for Chrome, Safari, FireFox, Opera. - Plugin version 2.0.1 - https://reachdrip.com/ -->
<!-- scrolltotop -->
<!-- Do you want the same scroll up bar on your WordPress blog? This site uses free scrollToTop plugin v1.1 - https://wordpress.org/plugins/scrolltotop/ -->

View File

@@ -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 ""

View File

@@ -0,0 +1,465 @@
# Copyright (C) 2019 KitThemes
# This file is distributed under the same license as the Customizely plugin.
msgid ""
msgstr ""
"Project-Id-Version: Customizely 1.0.0\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/customizely\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"POT-Creation-Date: 2019-08-03T10:28:57+00:00\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"X-Generator: WP-CLI 2.2.0\n"
"X-Domain: customizely\n"
#. Plugin Name of the plugin
#: includes/class-plugin.php:555
#: views/customizely.php:15
msgid "Customizely"
msgstr ""
#. Plugin URI of the plugin
msgid "https://wordpress.org/plugins/customizely/"
msgstr ""
#. Description of the plugin
msgid "Style WP site with customizer"
msgstr ""
#. Author of the plugin
msgid "KitThemes"
msgstr ""
#. Author URI of the plugin
msgid "https://www.kitthemes.com/"
msgstr ""
#: controls/class-checkbox.php:90
#: controls/class-radio.php:91
#: controls/class-select.php:110
msgid "Choices"
msgstr ""
#: controls/class-checkbox.php:102
#: controls/class-checkbox.php:122
#: controls/class-radio.php:103
#: controls/class-select.php:122
msgid "Value"
msgstr ""
#: controls/class-checkbox.php:108
#: controls/class-radio.php:109
#: controls/class-select.php:128
msgid "Label"
msgstr ""
#: controls/class-checkbox.php:123
msgid "Enter a valid value from `Choices` option."
msgstr ""
#: controls/class-color.php:122
msgid "Enable RGBA"
msgstr ""
#: controls/class-color.php:136
msgid "Color"
msgstr ""
#: controls/class-number.php:188
#: controls/class-range.php:193
msgid "Minimum"
msgstr ""
#: controls/class-number.php:189
#: controls/class-number.php:196
#: controls/class-number.php:203
#: controls/class-number.php:210
#: controls/class-number.php:217
#: controls/class-range.php:194
#: controls/class-range.php:201
#: controls/class-range.php:208
#: controls/class-range.php:215
#: controls/class-range.php:222
#: includes/functions.php:240
msgid "Order priority to load the input."
msgstr ""
#: controls/class-number.php:195
#: controls/class-range.php:200
msgid "Maximum"
msgstr ""
#: controls/class-number.php:202
#: controls/class-range.php:207
msgid "Step"
msgstr ""
#: controls/class-number.php:209
#: controls/class-range.php:214
msgid "No Unit"
msgstr ""
#: controls/class-number.php:216
#: controls/class-range.php:221
msgid "Default Unit"
msgstr ""
#: controls/class-number.php:230
#: controls/class-range.php:235
msgid "Valid CSS Units"
msgstr ""
#: controls/class-number.php:234
#: controls/class-range.php:239
msgid "Unit"
msgstr ""
#: controls/class-number.php:235
#: controls/class-range.php:240
msgid "Enter a valid CSS unit. All valid CSS Units are `px`, `%,` `em`, `rem`, `ex`, `ch`, `vw`, `vh`, `vmin`, `vmax`, `cm`, `mm`, `in`, `pt` and `pc`."
msgstr ""
#: controls/class-number.php:256
msgid "Number"
msgstr ""
#: controls/class-text.php:88
msgid "Text"
msgstr ""
#: controls/class-textarea.php:94
msgid "Textarea"
msgstr ""
#: controls/class-url.php:88
msgid "URL"
msgstr ""
#: includes/class-plugin.php:128
#: includes/class-plugin.php:141
msgid "Something went wrong."
msgstr ""
#: includes/class-plugin.php:205
#: includes/functions.php:89
msgid "General"
msgstr ""
#: includes/class-plugin.php:209
msgid "Panel ID"
msgstr ""
#: includes/class-plugin.php:215
#: includes/functions.php:100
msgid "Title"
msgstr ""
#: includes/class-plugin.php:221
#: includes/functions.php:107
msgid "Description"
msgstr ""
#: includes/class-plugin.php:229
#: includes/functions.php:224
msgid "Advance"
msgstr ""
#: includes/class-plugin.php:233
#: includes/functions.php:239
msgid "Priority"
msgstr ""
#: includes/class-plugin.php:239
#: includes/functions.php:246
msgid "Capability"
msgstr ""
#: includes/class-plugin.php:247
msgid "Panel"
msgstr ""
#: includes/class-plugin.php:253
msgid "Section ID"
msgstr ""
#: includes/class-plugin.php:257
msgid "Hide description"
msgstr ""
#: includes/class-plugin.php:263
msgid "Section"
msgstr ""
#: includes/class-plugin.php:631
msgid "Enter laptop preview mode"
msgstr ""
#: includes/class-plugin.php:636
msgid "Enter mobile landscape preview mode"
msgstr ""
#: includes/class-post-type.php:46
msgctxt "post type general name"
msgid "Options"
msgstr ""
#: includes/class-post-type.php:47
msgctxt "post type singular name"
msgid "Option"
msgstr ""
#: includes/class-post-type.php:48
msgctxt "admin menu"
msgid "Options"
msgstr ""
#: includes/class-post-type.php:49
msgctxt "add new on admin bar"
msgid "Option"
msgstr ""
#: includes/class-post-type.php:50
msgctxt "book"
msgid "Add New"
msgstr ""
#: includes/class-post-type.php:51
msgid "Add New Option"
msgstr ""
#: includes/class-post-type.php:52
msgid "New Option"
msgstr ""
#: includes/class-post-type.php:53
msgid "Edit Option"
msgstr ""
#: includes/class-post-type.php:54
msgid "View Option"
msgstr ""
#: includes/class-post-type.php:55
msgid "All Options"
msgstr ""
#: includes/class-post-type.php:56
msgid "Search Options"
msgstr ""
#: includes/class-post-type.php:57
msgid "Parent Options:"
msgstr ""
#: includes/class-post-type.php:58
msgid "No books found."
msgstr ""
#: includes/class-post-type.php:59
msgid "No books found in Trash."
msgstr ""
#: includes/class-post-type.php:64
msgid "Option post type for saving customizely options."
msgstr ""
#: includes/functions.php:93
msgid "ID"
msgstr ""
#: includes/functions.php:94
msgid "Unique ID for input."
msgstr ""
#: includes/functions.php:101
msgid "Title of this input."
msgstr ""
#: includes/functions.php:108
msgid "Description or help text for this input."
msgstr ""
#: includes/functions.php:116
msgid "Values"
msgstr ""
#: includes/functions.php:120
msgid "Responsive"
msgstr ""
#: includes/functions.php:121
msgid "Turn on or off resposive input."
msgstr ""
#: includes/functions.php:127
msgid "Default"
msgstr ""
#: includes/functions.php:128
msgid "Default value for this input."
msgstr ""
#: includes/functions.php:134
msgid "Default (Laptop)"
msgstr ""
#: includes/functions.php:135
msgid "Default value for this input for only Laptop view."
msgstr ""
#: includes/functions.php:142
msgid "Default (Tablet)"
msgstr ""
#: includes/functions.php:143
msgid "Default value for this input for only Tablet view."
msgstr ""
#: includes/functions.php:150
msgid "Default (Mobile Landscape)"
msgstr ""
#: includes/functions.php:151
msgid "Default value for this input for only Mobile Landscape view."
msgstr ""
#: includes/functions.php:158
msgid "Default (Mobile)"
msgstr ""
#: includes/functions.php:159
msgid "Default value for this input for only Mobile view."
msgstr ""
#: includes/functions.php:168
#: includes/functions.php:179
msgid "CSS"
msgstr ""
#: includes/functions.php:172
msgid "CSS Output"
msgstr ""
#: includes/functions.php:173
msgid "Use as CSS output"
msgstr ""
#: includes/functions.php:192
msgid "Selector"
msgstr ""
#: includes/functions.php:193
msgid "Valid CSS selector. Multiple selector can be separated by \",\"."
msgstr ""
#: includes/functions.php:199
msgid "Property"
msgstr ""
#: includes/functions.php:200
msgid "Valid CSS Property. Accept only single property."
msgstr ""
#: includes/functions.php:206
msgid "Replace"
msgstr ""
#: includes/functions.php:207
msgid "Custom value with extended values. Use `{{value}}` tag to replace value. Example for border: `1px {{value}} #000`"
msgstr ""
#: includes/functions.php:228
msgid "Transport"
msgstr ""
#: includes/functions.php:229
msgid "Options for rendering the live preview of changes in Customizer. Using **Refresh** makes the change visible by reloading the whole preview. Using **Post Message** allows to change without reloading."
msgstr ""
#: includes/functions.php:232
msgid "Refresh"
msgstr ""
#: includes/functions.php:233
msgid "Post Message"
msgstr ""
#: includes/functions.php:247
msgid "Capability required for the input."
msgstr ""
#: includes/functions.php:302
#: includes/functions.php:363
msgid "Not authorized"
msgstr ""
#: includes/functions.php:317
msgid "Untitled"
msgstr ""
#: includes/functions.php:324
#: includes/functions.php:339
msgid "Something wrong!"
msgstr ""
#. translators: Post ID.
#: includes/functions.php:331
msgid "Untitled #%d"
msgstr ""
#: includes/functions.php:346
msgid "Successfully saved!"
msgstr ""
#: includes/functions.php:349
msgid "Nothing changed!"
msgstr ""
#: includes/functions.php:369
msgid "Option ID is empty."
msgstr ""
#: includes/functions.php:378
msgid "Something wrong."
msgstr ""
#: views/addons.php:15
msgid "Addons"
msgstr ""
#: assets/js/builder.js:14077
#: assets/js/builder.js:14081
msgid "Changed will not save. Are you sure to leave?"
msgstr ""
#: assets/js/builder.js:14360
msgid "Error: unable to send request."
msgstr ""
#: assets/js/builder.js:15149
msgid "Containers"
msgstr ""
#: assets/js/builder.js:15160
msgid "Controls"
msgstr ""
#: assets/js/builder.js:15268
msgid "Drop a section here."
msgstr ""
#: assets/js/builder.js:15392
msgid "Drop a panel or section here."
msgstr ""
#: assets/js/builder.js:15512
msgid "Drop a control here."
msgstr ""
#: assets/js/customizely.js:435
#: assets/js/customizely.js:630
#: assets/js/customizely.js:665
msgid "Invalid Unit"
msgstr ""

View File

@@ -0,0 +1,55 @@
# Copyright (C) 2019 Davon Team
# This file is distributed under the same license as the Davons Floating Admin Bar plugin.
msgid ""
msgstr ""
"Project-Id-Version: Davons Floating Admin Bar 1.0.0\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/davon-floating-"
"admin-bar\n"
"Last-Translator: Joel <joel.stuedle@gmail.com>\n"
"Language-Team: German\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"POT-Creation-Date: 2019-05-24T13:03:52+00:00\n"
"PO-Revision-Date: 2019-05-24 13:06+0000\n"
"X-Generator: Loco https://localise.biz/\n"
"X-Domain: davon-floating-admin-bar\n"
"Language: de_DE\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Loco-Version: 2.2.2; wp-5.2.1"
#. Plugin Name of the plugin
msgid "Davons Floating Admin Bar"
msgstr "Davons Floating Admin Bar"
#. Plugin URI of the plugin
#. Author URI of the plugin
msgid "https://joelstuedle.ch/"
msgstr "https://joelstuedle.ch/"
#. Description of the plugin
msgid ""
"The Davons Floating Admin Bar floats at the top of your Website with "
"minimal impact on the websites appearance."
msgstr ""
"Die Davons Floating Admin Bar positioniert sich oberhalb des Viewports mit "
"minimalem Einfluss auf die Erscheinung der Webseite."
#. Author of the plugin
msgid "Davon Team"
msgstr "Davon Team"
#. translators: Compatibility-Check failed Warning
#: davon-floating-admin-bar.php:52
msgctxt "Compatibility-Check failed Warning"
msgid ""
"%1$s requires PHP %2$s (or newer) and WordPress %3$s (or newer) to function "
"properly. Your Site is using PHP %4$s and WordPress %5$s. Please upgrade. "
"The Plugin has been deactivated automatically. Dont hesitate to ask for "
"Help @%6$s."
msgstr ""
"%1$s benötigt PHP %2$s (oder neuer) and WordPress %3$s (oder neuer) um "
"fehlerfrei zu funktionieren. Deine Seite benutzt PHP %4$s und WordPress %5$s."
" Bitte aktualisiere deine Komponenten. Das Plugin wurde automatisch "
"deaktiviert. Bei Fragen und Problemen stehen wir dir gerne zur Verfügung "
"@%6$s."

View File

@@ -0,0 +1,278 @@
# Display Post Types.
# Copyright (C) 2019 vedathemes
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <contact@vedathemes.com>, 2019.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: display-post-types 1.0.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-08-22 22:24+0530\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#: backend/inc/class-block.php:229
msgid "Post Type"
msgstr ""
#: backend/inc/class-block.php:247
msgid "Taxonomy"
msgstr ""
#: backend/inc/class-widget.php:121
msgid "Publish Date"
msgstr ""
#: backend/inc/class-widget.php:122
msgid "Modified Date"
msgstr ""
#: backend/inc/class-widget.php:123 backend/inc/class-widget.php:150
#: backend/inc/class-widget.php:209
msgid "Title"
msgstr ""
#: backend/inc/class-widget.php:124
msgid "Author"
msgstr ""
#: backend/inc/class-widget.php:125
msgid "Comment Count"
msgstr ""
#: backend/inc/class-widget.php:126
msgid "Random"
msgstr ""
#: backend/inc/class-widget.php:130
msgid "Top Left Cropping"
msgstr ""
#: backend/inc/class-widget.php:131
msgid "Top Center Cropping"
msgstr ""
#: backend/inc/class-widget.php:132
msgid "Center Cropping"
msgstr ""
#: backend/inc/class-widget.php:133
msgid "Bottom Left Cropping"
msgstr ""
#: backend/inc/class-widget.php:134
msgid "Bottom Center Cropping"
msgstr ""
#: backend/inc/class-widget.php:138
msgid "No Cropping"
msgstr ""
#: backend/inc/class-widget.php:139
msgid "Landscape (4:3)"
msgstr ""
#: backend/inc/class-widget.php:140
msgid "Landscape (3:2)"
msgstr ""
#: backend/inc/class-widget.php:141
msgid "Portrait (3:4)"
msgstr ""
#: backend/inc/class-widget.php:142
msgid "Portrait (2:3)"
msgstr ""
#: backend/inc/class-widget.php:143
msgid "Widescreen (16:9)"
msgstr ""
#: backend/inc/class-widget.php:144
msgid "Square (1:1)"
msgstr ""
#: backend/inc/class-widget.php:149
msgid "Thumbnail"
msgstr ""
#: backend/inc/class-widget.php:151
msgid "Meta info"
msgstr ""
#: backend/inc/class-widget.php:152
msgid "Category"
msgstr ""
#: backend/inc/class-widget.php:153
msgid "Excerpt"
msgstr ""
#: backend/inc/class-widget.php:159
msgid "Create a display post types widget."
msgstr ""
#: backend/inc/class-widget.php:162
msgid "Display Post Types"
msgstr ""
#: backend/inc/class-widget.php:216
msgid "None"
msgstr ""
#: backend/inc/class-widget.php:217
msgid "Select Post Type"
msgstr ""
#: backend/inc/class-widget.php:222
msgid "Get items to be displayed"
msgstr ""
#: backend/inc/class-widget.php:231
msgid "Get items by Post IDs (optional)"
msgstr ""
#: backend/inc/class-widget.php:232
msgctxt "Placeholder text for post ids"
msgid "Comma separated ids, i.e. 230,300"
msgstr ""
#: backend/inc/class-widget.php:244
msgid "Number of items to display"
msgstr ""
#: backend/inc/class-widget.php:250
msgid "Order By"
msgstr ""
#: backend/inc/class-widget.php:257
msgid "Sort Order"
msgstr ""
#: backend/inc/class-widget.php:259
msgid "Descending"
msgstr ""
#: backend/inc/class-widget.php:260
msgid "Ascending"
msgstr ""
#: backend/inc/class-widget.php:268
msgid "Styling selected items"
msgstr ""
#: backend/inc/class-widget.php:273
msgid "Display Style"
msgstr ""
#: backend/inc/class-widget.php:285
msgid "Image Cropping"
msgstr ""
#: backend/inc/class-widget.php:292
msgid "Image Cropping Position"
msgstr ""
#: backend/inc/class-widget.php:300
msgid "Left Aligned"
msgstr ""
#: backend/inc/class-widget.php:301
msgid "Right Aligned"
msgstr ""
#: backend/inc/class-widget.php:303
msgid "Image Alignment"
msgstr ""
#: backend/inc/class-widget.php:309
msgid "Border Radius (in px)"
msgstr ""
#: backend/inc/class-widget.php:314
msgid "Number of grid columns"
msgstr ""
#: backend/inc/class-widget.php:319
msgid "Thumbnail Placeholder"
msgstr ""
#: backend/inc/class-widget.php:428
msgid "Select Pages"
msgstr ""
#: backend/inc/class-widget.php:458
msgid "Select Terms"
msgstr ""
#: backend/inc/class-widget.php:488
msgid "Items supported by display style"
msgstr ""
#: backend/inc/class-widget.php:518
msgid "Get items by Taxonomy"
msgstr ""
#: backend/inc/functions.php:18
msgid "Posts"
msgstr ""
#: backend/inc/functions.php:19
msgid "Pages"
msgstr ""
#: backend/inc/functions.php:45
msgid "Ignore Taxonomy"
msgstr ""
#: backend/inc/functions.php:46
msgid "Categories"
msgstr ""
#: backend/inc/functions.php:47
msgid "Tags"
msgstr ""
#: backend/inc/functions.php:92
msgid "- Ignore Taxonomy -"
msgstr ""
#: frontend/class-frontend.php:58
msgid "List - Full"
msgstr ""
#: frontend/class-frontend.php:62
msgid "List - Mini"
msgstr ""
#: frontend/class-frontend.php:66
msgid "Grid - Normal"
msgstr ""
#: frontend/class-frontend.php:70
msgid "Grid - Overlay"
msgstr ""
#: frontend/class-frontend.php:74
msgid "Slider - Normal"
msgstr ""
#: frontend/class-frontend.php:383
#, php-format
msgctxt "human-readable time difference"
msgid "%s ago"
msgstr ""
#: frontend/class-frontend.php:510
msgid "Continue Reading"
msgstr ""
#: frontend/class-frontend.php:553
msgid "on"
msgstr ""

View File

@@ -0,0 +1,35 @@
# Copyright (C) 2019 SEO Themes
# This file is distributed under the same license as the Display Terms Shortcode plugin.
msgid ""
msgstr ""
"Project-Id-Version: Display Terms Shortcode 1.0.4\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/display-terms-shortcode\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"POT-Creation-Date: 2019-08-11T10:12:52+00:00\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"X-Generator: WP-CLI 2.1.0\n"
"X-Domain: display-terms-shortcode\n"
#. Plugin Name of the plugin
msgid "Display Terms Shortcode"
msgstr ""
#. Plugin URI of the plugin
msgid "https://github.com/seothemes/display-terms-shortcode/"
msgstr ""
#. Description of the plugin
msgid "Display a list of terms using the [display-terms] shortcode."
msgstr ""
#. Author of the plugin
msgid "SEO Themes"
msgstr ""
#. Author URI of the plugin
msgid "https://seothemes.com/"
msgstr ""

View File

@@ -0,0 +1,2 @@
= 1.0.0 =
* First release (ported from EWWW Image Optimizer)

View File

@@ -0,0 +1,111 @@
# Copyright (C) 2019 Brainstorm Force
# This file is distributed under the same license as the EDD Advanced Discounts package.
msgid ""
msgstr ""
"Project-Id-Version: EDD Advanced Discounts 1.0.0\n"
"Report-Msgid-Bugs-To: "
"https://wordpress.org/support/plugin/edd-advanced-discounts\n"
"POT-Creation-Date: 2019-08-27 16:40:46+00:00\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"PO-Revision-Date: 2019-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: en\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Poedit-Country: United States\n"
"X-Poedit-SourceCharset: UTF-8\n"
"X-Poedit-KeywordsList: "
"__;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_"
"attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n"
"X-Poedit-Basepath: ../\n"
"X-Poedit-SearchPath-0: .\n"
"X-Poedit-Bookmarks: \n"
"X-Textdomain-Support: yes\n"
"X-Generator: grunt-wp-i18n 1.0.3\n"
#: classes/class-ade-edd-discount-functions.php:64
msgid "Maximum order of %s not met."
msgstr ""
#: classes/class-ade-edd-discount-functions.php:106
#: classes/class-ade-edd-discount-functions.php:127
msgid "The product requirements for this discount are not met."
msgstr ""
#: classes/class-ade-edd-discount-options.php:54
#: classes/class-ade-edd-discount-options.php:126
msgid "Product Requirements"
msgstr ""
#: classes/class-ade-edd-discount-options.php:66
#: classes/class-ade-edd-discount-options.php:140
msgid "Select one or more products"
msgstr ""
#: classes/class-ade-edd-discount-options.php:75
#: classes/class-ade-edd-discount-options.php:149
msgid "Cart must contain all selected products"
msgstr ""
#: classes/class-ade-edd-discount-options.php:76
#: classes/class-ade-edd-discount-options.php:150
msgid "Cart needs one or more of the selected products"
msgstr ""
#: classes/class-ade-edd-discount-options.php:82
#: classes/class-ade-edd-discount-options.php:156
msgid "Apply discount to entire purchase."
msgstr ""
#: classes/class-ade-edd-discount-options.php:86
#: classes/class-ade-edd-discount-options.php:160
msgid "Apply discount only to selected products."
msgstr ""
#: classes/class-ade-edd-discount-options.php:90
#: classes/class-ade-edd-discount-options.php:165
msgid ""
"Select products relevant to this discount. If left blank, this discount can "
"be used on any product."
msgstr ""
#: classes/class-ade-edd-discount-options.php:96
#: classes/class-ade-edd-discount-options.php:171
msgid "Maximum Amount"
msgstr ""
#: classes/class-ade-edd-discount-options.php:100
#: classes/class-ade-edd-discount-options.php:175
msgid ""
"The maximum amount below which this discount can be used. Leave blank for "
"no maximum."
msgstr ""
#: classes/class-ade-edd-loader.php:68
msgid "plugin requires"
msgstr ""
#: classes/class-ade-edd-loader.php:68
msgid " plugin installed & activated."
msgstr ""
#. Plugin Name of the plugin/theme
msgid "EDD Advanced Discounts"
msgstr ""
#. Description of the plugin/theme
msgid ""
"Customize EDD discounts easily that will bring more sales and profit to "
"your store. Offer discounts on selected product variations and set a "
"maximum limit for cart total."
msgstr ""
#. Author of the plugin/theme
msgid "Brainstorm Force"
msgstr ""
#. Author URI of the plugin/theme
msgid "https://brainstormforce.com"
msgstr ""

View File

@@ -0,0 +1,9 @@
{
"sitepress-multilingual-cms": "4.0.4",
"wpml-translation-management": "2.6.4",
"wpml-string-translation": "2.8.4",
"wpml-media-translation": "2.3.4",
"wpml-sticky-links": "1.4.4",
"wpml-cms-nav": "1.4.3",
"gravityforms-multilingual": "1.3.16"
}

View File

@@ -0,0 +1,48 @@
{
"name": "imagewalk",
"version": "1.0.0",
"private": true,
"scripts": {
"all": "npm run admin && npm run core && npm run main && npm run uploader",
"admin": "PKG=admin npm run do-${MODE:-build}",
"core": "PKG=core npm run do-${MODE:-build}",
"main": "PKG=main npm run do-${MODE:-build}",
"uploader": "PKG=uploader npm run do-${MODE:-build}",
"do-build": "browserify -e assets/js/src/$PKG | uglifyjs -c -m -o assets/js/dist/$PKG.min.js",
"postdo-build": "PKGCSS=assets/scss/$PKG.scss; if [ -f \"$PKGCSS\" ]; then node-sass $PKGCSS assets/css/$PKG.css --output-style expanded; fi",
"do-watch": "watchify -e assets/js/src/$PKG -o assets/js/dist/$PKG.js --delay 1500",
"do-release": "npm run all && node do-release.js"
},
"dependencies": {
"@wordpress/hooks": "^2.4.0",
"cropperjs": "^1.5.5",
"lodash.debounce": "^4.0.8",
"lodash.memoize": "^4.1.2",
"lodash.template": "^4.5.0",
"lodash.throttle": "^4.1.1",
"pica": "^5.1.0",
"qss": "^2.0.3"
},
"devDependencies": {
"@babel/core": "^7.5.5",
"@babel/preset-env": "^7.5.5",
"@wordpress/browserslist-config": "^2.5.0",
"archiver": "^3.0.3",
"babelify": "^10.0.0",
"browserify": "^16.3.0",
"browserify-shim": "^3.8.14",
"node-sass": "^4.12.0",
"uglify-js": "^3.6.0",
"watchify": "^3.11.1"
},
"browserify": {
"transform": [
"babelify",
"browserify-shim"
]
},
"browserify-shim": {
"imagewalk": "global:imagewalk",
"imagewalk-data": "global:imagewalk_data"
}
}

View File

@@ -0,0 +1,14 @@
{
"name": "instashop",
"title": "InstaShop",
"version": "1.4.1",
"homepage": "https://instashopapp.com/",
"main": "Gruntfile.js",
"devDependencies": {
"grunt": "~0.4.5",
"grunt-contrib-uglify": "~0.4.0",
"grunt-contrib-less": "~0.11.1",
"grunt-contrib-cssmin": "~0.9.0",
"grunt-contrib-watch": "~0.6.1"
}
}

View File

@@ -0,0 +1,108 @@
# Copyright (C) 2019 zetamatic
# This file is distributed under the same license as the Integration of Caldera Forms and Salesforce plugin.
msgid ""
msgstr ""
"Project-Id-Version: Integration of Caldera Forms and Salesforce 0.0.1\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/integrate-caldera-forms-salesforce\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"POT-Creation-Date: 2019-09-06T05:40:58+00:00\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"X-Generator: WP-CLI 2.2.0\n"
"X-Domain: integrate-caldera-forms-salesforce\n"
#. Plugin Name of the plugin
msgid "Integration of Caldera Forms and Salesforce"
msgstr ""
#. Plugin URI of the plugin
msgid "https://zetamatic.com"
msgstr ""
#. Description of the plugin
msgid "Caldera Forms Salesforce Integration is a Caldera Forms plugin/addon which allows you to push the data to Salesforce."
msgstr ""
#. Author of the plugin
msgid "zetamatic"
msgstr ""
#: inc/config.php:2
msgid "Environment"
msgstr ""
#: inc/config.php:5
msgid "Production"
msgstr ""
#: inc/config.php:6
msgid "Sandbox"
msgstr ""
#: inc/config.php:12
msgid "Salesforce Organisation Id"
msgstr ""
#: inc/config.php:16
msgid "Get your Production Organisation ID to <a href=\"https://help.salesforce.com/articleView?id=000325251&type=1&mode=1\">Click Here</a>"
msgstr ""
#: inc/config.php:18
msgid "Get your Sandbox Organisation ID to <a href=\"https://help.salesforce.com/articleView?id=data_sandbox_create.htm&type=5\">Click Here</a>"
msgstr ""
#: inc/config.php:24
msgid "Salesforce Debugging Email"
msgstr ""
#: inc/config.php:28
msgid "Provide a valid Email for debugging."
msgstr ""
#: inc/config.php:34
msgid "Salesforce Object"
msgstr ""
#: inc/config.php:37
msgid "Lead"
msgstr ""
#: inc/config.php:43
msgid "First Name"
msgstr ""
#: inc/config.php:50
msgid "Last Name"
msgstr ""
#: inc/config.php:57
msgid "Your Email"
msgstr ""
#: inc/config.php:64
msgid "Company Name"
msgstr ""
#: inc/config.php:71
msgid "Title"
msgstr ""
#: inc/config.php:78
msgid "Mobile No"
msgstr ""
#: inc/class-icfs.php:91
msgid "Salesforce Integration"
msgstr ""
#: inc/class-icfs.php:92
msgid "Send Caldera Forms submission data to Salesforce using Salesforce REST API."
msgstr ""
#. translators: %s: PHP version
#: integrate-caldera-forms-salesforce.php:57
msgid "Calder Forms Salesforce Integration requires PHP version %s+, plugin is currently NOT RUNNING."
msgstr ""

View File

@@ -0,0 +1,81 @@
# Copyright (C) 2019 Oberon Lai
# This file is distributed under the same license as the Media with FTP plugin.
msgid ""
msgstr ""
"Project-Id-Version: Media with FTP 1.0.0\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/media-with-ftp\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"POT-Creation-Date: 2019-08-02T09:57:38+00:00\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"X-Generator: WP-CLI 2.2.0\n"
"X-Domain: media-with-ftp\n"
#. Plugin Name of the plugin
#: admin/class-media-with-ftp-admin.php:115
#: admin/class-media-with-ftp-admin.php:118
msgid "Media with FTP"
msgstr ""
#. Plugin URI of the plugin
msgid "https://oberonlai.blog/media-with-ftp/"
msgstr ""
#. Description of the plugin
msgid "Let's you upload images to ftp-server and remove the uploads in the WordPress Media Library."
msgstr ""
#. Author of the plugin
msgid "Oberon Lai"
msgstr ""
#. Author URI of the plugin
msgid "https://oberonlai.blog"
msgstr ""
#: admin/class-media-with-ftp-admin.php:122
msgid "FTP Host Name"
msgstr ""
#: admin/class-media-with-ftp-admin.php:123
msgid "This is the FTP server hostname. It is usually used IP address or host URL."
msgstr ""
#: admin/class-media-with-ftp-admin.php:127
msgid "ex: 123.123.123.123 or domain.com"
msgstr ""
#: admin/class-media-with-ftp-admin.php:131
msgid "FTP Port"
msgstr ""
#: admin/class-media-with-ftp-admin.php:132
msgid "This is the port number of connection the FTP server. The default is 21. DO NOT change it if you have no idea about protocol port."
msgstr ""
#: admin/class-media-with-ftp-admin.php:143
msgid "FTP Username"
msgstr ""
#: admin/class-media-with-ftp-admin.php:144
msgid "This is the username of connecting the FTP Server."
msgstr ""
#: admin/class-media-with-ftp-admin.php:149
msgid "FTP Password"
msgstr ""
#: admin/class-media-with-ftp-admin.php:150
msgid "This is the password of connecting the FTP Server."
msgstr ""
#: admin/class-media-with-ftp-admin.php:158
msgid "FTP Image URL"
msgstr ""
#: admin/class-media-with-ftp-admin.php:159
msgid "This is the URL with folder structure of your FTP Server and also the path of your website's images."
msgstr ""

View File

@@ -0,0 +1,28 @@
msgid ""
msgstr ""
"Project-Id-Version: MWB Zendesk Woo Order Sync 1.0.0\n"
"POT-Creation-Date: 2019-09-03 16:57+0530\n"
"PO-Revision-Date: 2019-09-03 16:57+0530\n"
"Last-Translator: \n"
"Language-Team: makewebbetter\n"
"Language: en\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.0.6\n"
"X-Poedit-Basepath: ../../Documents/git plugin/Zendesk-Woocommerce-Order-"
"Sync\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Poedit-SourceCharset: UTF-8\n"
"X-Poedit-KeywordsList: __;_e;esc_html_e\n"
"X-Poedit-SearchPath-0: .\n"
#: Library/class-mwb-zendesk-manager.php:150
msgid "No orders found"
msgstr ""
#: mwb-zendesk-woo-order-sync.php:123
msgid ""
"Woocommerce is not activated, please activate woocommerce first to install "
"and use zendesk woocommerce plugin."
msgstr ""

View File

@@ -0,0 +1,248 @@
Version: 2.1.2 / 05/08/2019
-SQL code optimization
Version: 2.1.1 / 15/07/2019
-Code optimization
Version: 2.1.0 / 27/05/2019
- New front-end option in WP back-office:
- Stars colour customization.
- New Badges available for frontend.
- New design of category Stars.
- Number of reviews to display in product page.
Version: 2.0.3 / 25/04/2019
- fix ajax lang
Version: 2.0.2 / 23/04/2019
- Small bug corrections
Version: 2.0.1 / 18/04/2019
- Bug Correction in Front-end
Version: 2.0.0 / 15/04/2019
- Fix Back-office and template
- Additional Rich Snippets code (Review)
- Bug Correction in Back-office
Version: 1.9.5 / 18/03/2019
- Back-office user and translations fix
Version: 1.9.4 / 15/03/2019
- Important security update
Version: 1.9.3 / 22/02/2019
- Back Office user interface improvement
version: 1.9.2 / 19/02/2019
- fix notice in av_backoffice
- fix float widget function
version: 1.9.1 / 18/02/2019
- fix bug multiligual
- Add function flag order (API)
version: 1.9.0 / 07/02/2019
- Adaptation with WPML multiligual plugin
version : 1.8.5 / 04/12/2018
- change readme presentation
version: 1.8.4 / 28/11/2018
-including font straight in our module. (Avoiding external calls).
version: 1.8.3 / date 22/11/2018
- change wording nfservice
version: 1.8.2 / date 13/11/2018
- Fix count() warning for PHP 7.2
- Look through to all prefix queries.
- try catch in order to check if the product exist api_functions.php
- Compatibilities wordpress 5.0 and woocommerce 3.5.1
version : 1.8.1 / date 27/09/2018
- Remove widget fixe code
version : 1.8.0 / date 13/09/2018
- Remove rich snippet site and category
version : 1.7.11 / date 21/09/2018
- Fix specific hooks
version : 1.7.10 / date 21/09/2018
- Add specific hooks
version : 1.7.9 / date 16/07/2018
- Fixed reviews export notice
- Fixed various other notices
- Fixed various Rich Snippet parts
version : 1.7.8 / date 05/07/2018
- Ajax url fixed (removed /index.php)
version : 1.7.7 / date 25/06/2018
- Various fixes
version : 1.7.6 / date 20/06/2018
- API/Ajax call is now made via a dedicated endpoint
- Enhanced WooCommerce 3.0 compliance
- Fixed 'more helpful reviews' missing in reviews dropdown list
- Corrected Italian translations
version : 1.7.5 / date 07/05/2018
- Display media option is now set in Netreviews configuration page
- Minor CSS Fix
- Minor PHP fixes
version : 1.7.4 / date : 16/04/2018
- IE compatibility
- Fix js rate filter
version : 1.7.3 / date : 16/04/2018
- It's now possible to enable/disable media on product reviews
- AV BackOffice CSS adjustments
version : 1.7.2 / date : 11/04/2018
- Fixed Firefox's double click bug on helpful button
- Helpful option activated by default
- Clean code
version : 1.7.1 / date : 10/04/2018
- Updated images with font icons, better indentation, removed big css comments
version : 1.7.0 / date : 27/03/2018
- Add medias and slider
version : 1.6.0 / date : 27/03/2018
- Fix google shopping fields (sku / urls)
version : 1.5.8 / date : 09/03/2018
- Switch API from serialize to json_encode
version : 1.5.7 / date : 13/02/2018
- Clean JS code
- Clean CSS code
version : 1.5.6 / date : 12/02/2018
- Texte modifier
- Ajout de traduction
- More comment
version : 1.5.5 / date : 17/01/2018
- Correction translation
version : 1.5.4 / date : 07/12/2017
- add img missing
- modif css
version : 1.5.3 / date : 07/12/2017
- Fix display infobulle
version : 1.5.2 / date : 28/11/2017
- Fix load more reviews
- add function update version module
- add order date and display on the reviews
version : 1.5.1 / date : 22/11/2017
- Fix pagination
- Make the helpful feature optionnal
version : 1.5.0 / date : 27/10/2017
- Add helpful reviews feature
- Add indicators
- New reviews design
version : 1.4.9 / date : 04/10/2017
- Fix new tables
version : 1.4.8 / date : 02/10/2017
- New feature multisite managemenent (many request impacted)
- Rich snippet site modified
- Replace function file_get_content by file_get_contents_curl
version : 1.4.7 / date : 07/09/2017
- Remove set_time_limit function
version : 1.4.6 / date : 22/06/2017
- Fix is_admin error 500
version : 1.4.5 / date : /05/2017
- Fix update_version
version : 1.4.4 / date : /04/2017
- Fix bug ntav_snippet_category()
version : 1.4.3 / date : 18/04/2017
- Integration rich snippet category (microdata and json ld)
version : 1.4.2 / date : 18/04/2017
- fix bug get_id on null
version : 1.4.1 / date : 13/04/2017
- fix error display
version : 1.4.0 / date : 13/04/2017
- Integration rich snippet product with json ld (compatible woocommerce 3.0)
version : 1.3.16 / date : 01/03/2017
- Migration de paramètres de configuration du back-office Wordpress vers le back-office Avis-Vérifiés
version : 1.3.15 / date : 16/02/2017
- Ajout du choix de la couleur de fond
- Ajout d'un champ CSS spécifique
version : 1.3.14 / date : 10/02/2017
- Correction d'un bug sur l'inclusion du fichier CSS
version : 1.3.13 / date : 09/02/2017
- Nouveau design front office
version : 1.3.12 / date : 09/02/2017
- Correction d'un bug majeur sur l'automatisation
version : 1.3.11 / date : 08/02/2017
- Ajout du choix de couleur des étoiles
version : 1.3.10 / date : 08/02/2017
- Amélioration backoffice
- Correction du problème de l'API non joignable à cause du template.
version : 1.3.9 / date : 06/02/2017
- Correction du problème de l'API non joignable à cause du template.
version : 1.3.8 / date : 02/02/2017
- Correction de quelques messages d'erreur.
version : 1.3.7 / date : 01/02/2017
- Ajout de l'option d'activation des richsnippets produits
- Modification du module pour respecter les standards Wordpress
version : 1.3.6 / date : 25/01/2017
- Fiche produit, on n'affiche rien si il n'y a pas d'avis
- Modification du module pour respecter les standards Wordpress
version : 1.3.5 / date : 16/01/2017
- Refonte graphique de la configuration
version : 1.3.4 / date : 11/01/2017
- Modification du header
- Ajout de traductions
version : 1.3.3 / date : 09/01/2017
- Amélioration graphique de la page de configuration
version : 1.3.2 / date : 06/01/2017
- Amélioration graphique de la page de configuration
version : 1.3.1 / date : 05/01/2017
- fix function view_project_template in pagetemplater.php exception
version : 1.3 / date : 29/12/2016
- Ajout favicon
- Amélioration graphique de la page de configuration
- Ajout des configurations des rich snippet site
- Ajout du widget Avis Vérifiés
- Modification et fix sur la fonction netreviews_product_rating()

View File

@@ -0,0 +1,3 @@
== Changelog ==
= 0.1 =
* Initial version

View File

@@ -0,0 +1,246 @@
# Copyright (C) 2019 Picocodes
# This file is distributed under the GPL3+.
msgid ""
msgstr ""
"Project-Id-Version: Noptin - Simple Newsletter Subscription Forms 1.0.5\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/noptin\n"
"POT-Creation-Date: 2019-08-01 13:43:55+00:00\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"PO-Revision-Date: 2019-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: en\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Poedit-Country: United States\n"
"X-Poedit-SourceCharset: UTF-8\n"
"X-Poedit-KeywordsList: "
"__;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_"
"attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n"
"X-Poedit-Basepath: ../\n"
"X-Poedit-SearchPath-0: .\n"
"X-Poedit-Bookmarks: \n"
"X-Textdomain-Support: yes\n"
"X-Generator: grunt-wp-i18n 1.0.3\n"
#: includes/admin/admin.php:249
msgid "Newsletter opt-in forms"
msgstr ""
#: includes/admin/admin.php:250
msgid "Newsletter Forms"
msgstr ""
#: includes/admin/admin.php:259 includes/admin/admin.php:260
#: includes/admin/templates/forms-list.php:22
msgid "Add New Form"
msgstr ""
#: includes/admin/admin.php:269 includes/admin/admin.php:270
msgid "Subscribers"
msgstr ""
#: includes/admin/forms-editor-quick.php:239
#: includes/admin/forms-editor.php:819
msgid "Editing"
msgstr ""
#: includes/admin/forms-editor-quick.php:240
#: includes/admin/forms-editor.php:820
msgid "Save"
msgstr ""
#: includes/admin/forms-editor-quick.php:241
#: includes/admin/forms-editor.php:821
msgid "Saving..."
msgstr ""
#: includes/admin/forms-editor-quick.php:242
#: includes/admin/forms-editor.php:822
msgid "Save As Template"
msgstr ""
#: includes/admin/forms-editor-quick.php:243
#: includes/admin/forms-editor.php:823
msgid "Saving Template..."
msgstr ""
#: includes/admin/forms-editor-quick.php:244
#: includes/admin/forms-editor.php:824
msgid "There was an error saving your form."
msgstr ""
#: includes/admin/forms-editor-quick.php:245
#: includes/admin/forms-editor.php:825
msgid "Your changes have been saved successfuly"
msgstr ""
#: includes/admin/forms-editor-quick.php:246
#: includes/admin/forms-editor.php:826
msgid "There was an error saving your template."
msgstr ""
#: includes/admin/forms-editor-quick.php:247
#: includes/admin/forms-editor.php:827
msgid "Your template has been saved successfuly"
msgstr ""
#: includes/admin/forms-editor-quick.php:248
#: includes/admin/forms-editor.php:828
msgid "Preview"
msgstr ""
#: includes/admin/forms-editor.php:528
msgid "Hide Close Button"
msgstr ""
#: includes/admin/subscribers.php:7
msgid "Noptin"
msgstr ""
#: includes/admin/subscribers.php:8
msgid "View and download your email subscribers."
msgstr ""
#: includes/admin/subscribers.php:22 includes/admin/subscribers.php:47
msgid "Email Address"
msgstr ""
#: includes/admin/subscribers.php:23 includes/admin/subscribers.php:48
msgid "First Name"
msgstr ""
#: includes/admin/subscribers.php:24 includes/admin/subscribers.php:49
msgid "Last Name"
msgstr ""
#: includes/admin/subscribers.php:25 includes/admin/subscribers.php:50
msgid "Last Updated"
msgstr ""
#: includes/admin/templates/forms-empty.php:19
msgid "No email opt-in forms found. Why not create one?"
msgstr ""
#: includes/admin/templates/forms-empty.php:20
msgid "Create New Form"
msgstr ""
#: includes/admin/templates/forms-list.php:26
msgid "Search Forms"
msgstr ""
#: includes/admin/templates/forms-list.php:33
msgid "Name"
msgstr ""
#: includes/admin/templates/forms-list.php:34
msgid "Status"
msgstr ""
#: includes/admin/templates/forms-list.php:35
msgid "Date Created"
msgstr ""
#: includes/admin/templates/forms-list.php:41
msgid "Inactive"
msgstr ""
#: includes/admin/templates/forms-list.php:41
msgid "Active"
msgstr ""
#: includes/admin/templates/forms-list.php:48
msgid "Click To Edit Form "
msgstr ""
#: includes/admin/widget.php:167
msgid "FREE NEWSLETTER"
msgstr ""
#: includes/admin/widget.php:168
msgid ""
"Subscribe to our newsletter today and be the first to know when we publish "
"a new blog post."
msgstr ""
#: includes/admin/widget.php:169
msgid "SUBSCRIBE NOW"
msgstr ""
#: includes/admin/widget.php:179
msgid "Title:"
msgstr ""
#: includes/admin/widget.php:192
msgid "Description:"
msgstr ""
#: includes/admin/widget.php:205
msgid "Redirect:"
msgstr ""
#: includes/admin/widget.php:220
msgid "Background Color:"
msgstr ""
#: includes/admin/widget.php:235
msgid "Title Color:"
msgstr ""
#: includes/admin/widget.php:249
msgid "Text Color:"
msgstr ""
#: includes/admin/widget.php:262
msgid "Button Color:"
msgstr ""
#: includes/admin/widget.php:274
msgid "Submit Button Text:"
msgstr ""
#: includes/ajax.php:24
msgid "Error: Please reload the page and try again."
msgstr ""
#: includes/ajax.php:34
msgid "Error: Please provide a valid email address."
msgstr ""
#: includes/ajax.php:54
msgid "Success!"
msgstr ""
#: includes/class-noptin-form.php:145 includes/class-noptin-form.php:447
msgid "Untitled"
msgstr ""
#: includes/class-sidebar.php:124
msgid "Form:"
msgstr ""
#: includes/class-sidebar.php:132
msgid "Select form"
msgstr ""
#. Plugin Name of the plugin/theme
msgid "Noptin - Simple Newsletter Subscription Forms"
msgstr ""
#. Plugin URI of the plugin/theme
msgid "https://wordpress.org/plugins/noptin"
msgstr ""
#. Description of the plugin/theme
msgid "Easily add a newsletter optin box in any post, page or custom post type"
msgstr ""
#. Author of the plugin/theme
msgid "Picocodes"
msgstr ""
#. Author URI of the plugin/theme
msgid "https://github.com/picocodes"
msgstr ""

View File

@@ -0,0 +1,78 @@
msgid ""
msgstr ""
"Project-Id-Version: Oauth Gap Messenger v1.0.0\n"
"Report-Msgid-Bugs-To: Ehsan Sabet <ehsan.sabet@hotmail.com>\n"
"POT-Creation-Date: 2019-08-06 16:49+0430\n"
"PO-Revision-Date: \n"
"Last-Translator: Ehsan Sabet <ehsan.sabet@hotmail.com>\n"
"Language-Team: \n"
"Language: fa\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Textdomain-Support: yesX-Generator: Poedit 1.6.4\n"
"X-Poedit-SourceCharset: UTF-8\n"
"X-Poedit-KeywordsList: __;_e;esc_html_e;esc_html_x:1,2c;esc_html__;"
"esc_attr_e;esc_attr_x:1,2c;esc_attr__;_ex:1,2c;_nx:4c,1,2;"
"_nx_noop:4c,1,2;_x:1,2c;_n:1,2;_n_noop:1,2;__ngettext:1,2;"
"__ngettext_noop:1,2;_c,_nc:4c,1,2\n"
"X-Poedit-Basepath: ..\n"
"X-Generator: Poedit 1.8.7.1\n"
"X-Poedit-SearchPath-0: .\n"
"X-Poedit-SearchPath-1: inc\n"
#: inc/oauth-gap-messenger-admin.php:28
msgid "oauth Gap Messenger"
msgstr "ورود با گپ"
#: inc/oauth-gap-messenger-admin.php:29
msgid "Gap OAuth Setting"
msgstr "تنظیمات ورود با گپ"
#: inc/oauth-gap-messenger-admin.php:38
msgid "Basic Settings"
msgstr "تنظیمات"
#: inc/oauth-gap-messenger-admin.php:54
msgid "Client ID"
msgstr ""
#: inc/oauth-gap-messenger-admin.php:61
msgid "Client Secret (Token)"
msgstr ""
#: inc/oauth-gap-messenger-admin.php:68
msgid "Redirect link"
msgstr ""
#: inc/oauth-gap-messenger-admin.php:101
msgid "Copied to clipboard"
msgstr "کپی شد!"
#: inc/oauth-gap-messenger-admin.php:492
msgid "Choose File"
msgstr ""
#: oauth-gap-messenger.php:160
#, php-format
msgid "You have Login at %1$s"
msgstr "شما به وب سایت %1$s وارد شده‌اید."
#: oauth-gap-messenger.php:201
#, php-format
msgid "You have registered at %1$s"
msgstr "ثبت نام شما در وب سایت %1$s انجام شد."
#: oauth-gap-messenger.php:223
msgid "Please complete oauth Gap messenger settings!"
msgstr "لطفا تنظیمات پلاگین ورود با گپ را انجام دهید."
#~ msgid "oAuth"
#~ msgstr "ورود با گپ"
#~ msgid "oAuth Robot"
#~ msgstr "تنظیمات ربات"
#~ msgid "Save Changes"
#~ msgstr "ذخیره تغییرات"

View File

@@ -0,0 +1,95 @@
# Copyright (C) 2019 Pixelgrade
# This file is distributed under the same license as the Pixelgrade Assistant plugin.
msgid ""
msgstr ""
"Project-Id-Version: Pixelgrade Assistant 1.0.0\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/pixelgrade-assistant\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"POT-Creation-Date: 2019-08-06T09:42:24+03:00\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"X-Generator: WP-CLI 2.2.0\n"
"X-Domain: pixelgrade_assistant\n"
#. Plugin Name of the plugin
msgid "Pixelgrade Assistant"
msgstr ""
#. Plugin URI of the plugin
msgid "https://github.com/pixelgrade/pixelgrade-assistant"
msgstr ""
#. Description of the plugin
msgid "We care about giving you the best experience with your free Pixelgrade theme."
msgstr ""
#. Author of the plugin
msgid "Pixelgrade"
msgstr ""
#. Author URI of the plugin
msgid "https://pixelgrade.com"
msgstr ""
#. translators: 1: plugin name(s).
#: admin/required-plugins/class-tgm-plugin-activation.php:334
msgid "This theme requires the following plugin: %1$s."
msgid_plural "This theme requires the following plugins: %1$s."
msgstr[0] ""
msgstr[1] ""
#. translators: 1: plugin name(s).
#: admin/required-plugins/class-tgm-plugin-activation.php:340
msgid "This theme recommends the following plugin: %1$s."
msgid_plural "This theme recommends the following plugins: %1$s."
msgstr[0] ""
msgstr[1] ""
#. translators: 1: plugin name(s).
#: admin/required-plugins/class-tgm-plugin-activation.php:346
msgid "The following plugin needs to be updated to its latest version to ensure maximum compatibility with this theme: %1$s."
msgid_plural "The following plugins need to be updated to their latest version to ensure maximum compatibility with this theme: %1$s."
msgstr[0] ""
msgstr[1] ""
#. translators: 1: plugin name(s).
#: admin/required-plugins/class-tgm-plugin-activation.php:352
msgid "There is an update available for: %1$s."
msgid_plural "There are updates available for the following plugins: %1$s."
msgstr[0] ""
msgstr[1] ""
#. translators: 1: plugin name(s).
#: admin/required-plugins/class-tgm-plugin-activation.php:358
msgid "The following required plugin is currently inactive: %1$s."
msgid_plural "The following required plugins are currently inactive: %1$s."
msgstr[0] ""
msgstr[1] ""
#. translators: 1: plugin name(s).
#: admin/required-plugins/class-tgm-plugin-activation.php:364
msgid "The following recommended plugin is currently inactive: %1$s."
msgid_plural "The following recommended plugins are currently inactive: %1$s."
msgstr[0] ""
msgstr[1] ""
#: admin/required-plugins/class-tgm-plugin-activation.php:370
msgid "Begin installing plugin"
msgid_plural "Begin installing plugins"
msgstr[0] ""
msgstr[1] ""
#: admin/required-plugins/class-tgm-plugin-activation.php:375
msgid "Begin updating plugin"
msgid_plural "Begin updating plugins"
msgstr[0] ""
msgstr[1] ""
#: admin/required-plugins/class-tgm-plugin-activation.php:380
msgid "Begin activating plugin"
msgid_plural "Begin activating plugins"
msgstr[0] ""
msgstr[1] ""

View File

@@ -0,0 +1,23 @@
## Changelog
= 1.1.1 - Aug 09 2019 =
* Fix: Kirki admin notice issue fixed.
= 1.1 - Aug 09 2019 =
* New: Added Custom Sidebar which can helps to register custom widget area.
* Fix: Icon picker ajax call error.
* Update: 'admin.css' file moved from `assets/css/` to `core/assets/js/`.
* Update: Translation strings updated.
* Tweak: 'plugin_row_meta' hook removed in `core/class-admin-page.php/`
= 1.0 - Aug 08 2019 =
* Info: Initial Release.
= 0.2 - Aug 06 2019 =
* Fix: Sanitization improved.
* Update: Translaion string updated.
* Update: 'octagon_taxonomy_image_lists' filter updated.
* Update: 'wp-color-picker-alpha.js' file moved from `core/assets/js/` to `core/library/js/`.
= 0.1 - Aug 05 2019 =
* Info: Initial Public Beta Release

View File

@@ -0,0 +1,5 @@
# Changelog
All notable changes to the plugin will be documented in this file.
## 1.0.0 - 2019-08-22
### Initial release

View File

@@ -0,0 +1,119 @@
# Copyright (C) 2019 Matthias Günter
# This file is distributed under the same license as the WP Real Thumbnail Generator plugin.
msgid ""
msgstr ""
"Project-Id-Version: WP Real Thumbnail Generator 2.0.3\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/real-thumbnail-generator\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"POT-Creation-Date: 2019-07-29T10:48:01+02:00\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"X-Generator: WP-CLI 2.2.0\n"
#. Plugin Name of the plugin
msgid "WP Real Thumbnail Generator"
msgstr ""
#. Plugin URI of the plugin
msgid "https://codecanyon.net/item/wordpress-real-thumbnail-generator-bulk-regenerate-upload-folder/18937507"
msgstr ""
#. Description of the plugin
msgid "(Bulk) Regenerate thumbnails, delete unused and custom thumbnail folder/filename"
msgstr ""
#. Author of the plugin
msgid "Matthias Günter"
msgstr ""
#. Author URI of the plugin
msgid "https://matthias-web.com"
msgstr ""
#: inc/attachment/Regenerate.class.php:199
msgid "The thumbnails could not be generated."
msgstr ""
#: inc/attachment/Thumbnail.class.php:69
msgid "The given image was not found on server."
msgstr ""
#: inc/attachment/Thumbnail.class.php:75
msgid "You have not the permissions to regenerate the thumbnails."
msgstr ""
#: inc/attachment/Thumbnail.class.php:82
msgid "The given post ID is not an image."
msgstr ""
#: inc/attachment/Thumbnail.class.php:142
msgid "Not found"
msgstr ""
#: inc/attachment/Thumbnail.class.php:193
msgid "Not generated"
msgstr ""
#: inc/attachment/Thumbnail.class.php:199
msgid "Disrupted"
msgstr ""
#: inc/attachment/Thumbnail.class.php:206
msgid "Greater than original"
msgstr ""
#: inc/editor/Editor.class.php:134
msgid "The filename is not valid"
msgstr ""
#: inc/editor/Editor.class.php:137
msgid "The filename has no extension"
msgstr ""
#: inc/editor/Editor.class.php:141
msgid "The pattern is invalid"
msgstr ""
#: inc/general/Core.class.php:165
msgid "<strong>You have not yet entered the license key</strong>. To receive automatic updates, please enter the key in \"Enter license\"."
msgstr ""
#: inc/general/View.class.php:30
msgid "Thumbnails"
msgstr ""
#: inc/general/View.class.php:36
msgid "%1$d of %2$s registered"
msgstr ""
#: inc/general/View.class.php:44
msgid "More"
msgstr ""
#: inc/general/View.class.php:49
#: inc/general/View.class.php:71
msgid "Regenerate"
msgstr ""
#: inc/overrides/lite/attachment/Thumbnail.trait.php:16
msgid "This function is not available in Lite version."
msgstr ""
#: inc/overrides/pro/attachment/Thumbnail.trait.php:76
msgid "One or more thumbnail sizes could not be deleted, please check your server permissions."
msgstr ""
#: inc/overrides/pro/attachment/Thumbnail.trait.php:101
msgid "Something went wrong."
msgstr ""
#: inc/overrides/pro/editor/Adapter.trait.php:44
msgid "Image resize failed."
msgstr ""
#: inc/rest/Service.class.php:142
msgid "Forbidden"
msgstr ""

View File

@@ -0,0 +1,7 @@
Version 1.0
Created the free version for the WordPress Repository
Version 1.1
Moved from Curl to WordPress HTTP API

Some files were not shown because too many files have changed in this diff Show More