Upgarded to 4.17.4
This commit is contained in:
46
cloud/README.md
Normal file
46
cloud/README.md
Normal file
@ -0,0 +1,46 @@
|
||||
# Cloud
|
||||
|
||||
Divi Cloud Client Application
|
||||
|
||||
Cloud Application is the Browser for the Library items which allows to manage items and perform various actions with items. It supports local items and items stored on the Divi Cloud. Both can be loaded into a single list and user can move items between local and cloud libraries using the Cloud App interface.
|
||||
|
||||
This is a standalone application and is fully independant from the Divi, includes/builder and core repos.
|
||||
The only dependancy is the common repo.
|
||||
|
||||
It means Cloud Application can be mounted anywhere outside Divi and Visual Builder, for example on WP admin pages and can be extended to work with any type of items. It's not limited to work with Visual Builder layouts, items type is configurable.
|
||||
|
||||
To mount the Cloud app you have to create a container with id='et-cloud-app' and trigger `et_cloud_container_ready` event with set of preferences. Cloud Application will be mounted into `et-cloud-app` container.
|
||||
|
||||
Preferences format:
|
||||
```
|
||||
{
|
||||
context: string,
|
||||
initialTab: string,
|
||||
editableTabs: array,
|
||||
cloudTab: string,
|
||||
predefinedTab: string,
|
||||
globalSupport: boolean,
|
||||
animation: string,
|
||||
isProductTour: boolean,
|
||||
showLoadOptions: boolean,
|
||||
permanentFilter: object,
|
||||
}
|
||||
```
|
||||
|
||||
The page will have to listen for the Cloud App events to handle the actions like loading item from the Cloud, editing, updating, etc. The list of available Cloud App actions:
|
||||
et_cloud_page_changed,
|
||||
et_cloud_use_item,
|
||||
et_cloud_download_progress,
|
||||
et_cloud_account_status_error,
|
||||
et_cloud_help,
|
||||
et_cloud_item_action,
|
||||
et_cloud_filter_update,
|
||||
et_cloud_update_item,
|
||||
et_cloud_item_toggle_location,
|
||||
et_cloud_token_ready,
|
||||
et_cloud_token_removed,
|
||||
et_cloud_app_ready,
|
||||
|
||||
Cloud App also have API to send data from the page or trigger some events. See the `cloud/app/providers/bridge.js` for available actions.
|
||||
|
||||
All the tests located in `__tests__` directory and can be run form the /cloud repo using `yarn test` command.
|
75
cloud/build/et-cloud-app.bundle.js
Normal file
75
cloud/build/et-cloud-app.bundle.js
Normal file
File diff suppressed because one or more lines are too long
69
cloud/build/et-cloud-app.bundle.modals.css
Normal file
69
cloud/build/et-cloud-app.bundle.modals.css
Normal file
File diff suppressed because one or more lines are too long
312
cloud/cloud-app.php
Normal file
312
cloud/cloud-app.php
Normal file
@ -0,0 +1,312 @@
|
||||
<?php
|
||||
class ET_Cloud_App {
|
||||
/**
|
||||
* @var ET_Cloud_App
|
||||
*/
|
||||
private static $_instance;
|
||||
|
||||
/**
|
||||
* Get the class instance.
|
||||
*
|
||||
* @since 3.0.99
|
||||
*
|
||||
* @return ET_Builder_Library
|
||||
*/
|
||||
public static function instance() {
|
||||
if ( ! self::$_instance ) {
|
||||
self::$_instance = new self;
|
||||
}
|
||||
|
||||
add_action( 'wp_ajax_et_cloud_update_tokens', array( 'ET_Cloud_App', 'ajaxRefreshTokens' ) );
|
||||
add_action( 'wp_ajax_et_cloud_remove_tokens', array( 'ET_Cloud_App', 'removeTokens' ) );
|
||||
|
||||
add_filter( 'et_builder_load_requests', array( 'ET_Cloud_App', 'updateAjaxCallsList' ) );
|
||||
|
||||
return self::$_instance;
|
||||
}
|
||||
|
||||
public static function updateAjaxCallsList() {
|
||||
return array( 'action' => array( 'et_cloud_update_tokens' ) );
|
||||
}
|
||||
|
||||
public static function removeTokens() {
|
||||
$nonce = $_POST['et_cloud_token_nonce'];
|
||||
|
||||
if ( ! wp_verify_nonce( $nonce, 'et_cloud_remove_token' ) ) {
|
||||
die();
|
||||
}
|
||||
|
||||
$user_id = (string) get_current_user_id();
|
||||
$saved_tokens = get_option( 'et_cloud_refresh_token', array() );
|
||||
|
||||
$saved_tokens[ $user_id ] = array();
|
||||
|
||||
// Save empty refresh token for current user.
|
||||
update_option( 'et_cloud_refresh_token', $saved_tokens );
|
||||
|
||||
wp_send_json_success();
|
||||
}
|
||||
|
||||
public static function ajaxRefreshTokens() {
|
||||
$nonce = $_POST['et_cloud_token_nonce'];
|
||||
|
||||
if ( ! wp_verify_nonce( $nonce, 'et_cloud_refresh_token' ) ) {
|
||||
die();
|
||||
}
|
||||
|
||||
return ET_Cloud_App::refreshTokens();
|
||||
}
|
||||
|
||||
public static function refreshTokens() {
|
||||
// Clear options cache to make sure we're using the latest version of the token.
|
||||
wp_cache_delete( 'et_cloud_refresh_token', 'options' );
|
||||
|
||||
$user_id = (string) get_current_user_id();
|
||||
$saved_tokens = get_option( 'et_cloud_refresh_token', array() );
|
||||
$access_token = sanitize_text_field( $_POST['et_cloud_access_token'] );
|
||||
$save_session = wp_validate_boolean( sanitize_text_field( $_POST['et_cloud_save_session'] ) );
|
||||
$token_part = sanitize_text_field( $_POST['et_cloud_refresh_token_part'] );
|
||||
$user_token_data = isset( $saved_tokens[ $user_id ] ) ? $saved_tokens[ $user_id ] : array();
|
||||
$is_refresh = ! $access_token || '' === $access_token;
|
||||
$url = 'https://cloud.elegantthemes.com/wp/wp-json/cloud/v1/activate';
|
||||
|
||||
$refresh_token = '';
|
||||
|
||||
if ( $is_refresh && is_array( $user_token_data ) && !empty( $user_token_data ) ) {
|
||||
$refresh_token = $user_token_data['is_full_token'] ? $user_token_data['refresh_token'] : $user_token_data['refresh_token'] . $token_part;
|
||||
|
||||
$save_session = $is_refresh ? $user_token_data['is_full_token'] : $save_session;
|
||||
}
|
||||
|
||||
if ( $is_refresh ) {
|
||||
if ( ! $save_session && ( ! $token_part || '' === $token_part ) ) {
|
||||
wp_send_json_error( array(
|
||||
'error' => '401',
|
||||
'errorType' => 'silent',
|
||||
) );
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$is_updating_token = 'updating' === get_transient( 'et_cloud_access_token_update_status' );
|
||||
|
||||
// Previous request is not finished yet. Try again after 2 seconds.
|
||||
// Otherwise this request will fail with 401 error.
|
||||
if ( $is_updating_token ) {
|
||||
sleep(2);
|
||||
ET_Cloud_App::refreshTokens();
|
||||
}
|
||||
|
||||
// Set updating token flag with 5 seconds expiration.
|
||||
set_transient( 'et_cloud_access_token_update_status', 'updating', 5 );
|
||||
}
|
||||
|
||||
if ( ( ! $is_refresh && '' === $access_token ) || ( $is_refresh && '' === $refresh_token ) ) {
|
||||
wp_send_json_error( array(
|
||||
'error' => '401',
|
||||
) );
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if ( $is_refresh ) {
|
||||
$token_array = explode('.', $refresh_token);
|
||||
// Token is a json string of base64 encoded array. Decode it to access the data in token.
|
||||
$refresh_token_data = json_decode(base64_decode($token_array[1]));
|
||||
|
||||
if ( !empty( $refresh_token_data ) && is_object( $refresh_token_data ) && isset( $refresh_token_data->aud ) ) {
|
||||
$user_cloud_endpoint = $refresh_token_data->aud[1];
|
||||
} else {
|
||||
wp_send_json_error( array(
|
||||
'error' => '401',
|
||||
) );
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$url = sprintf('%1$s/wp-json/auth/v1/token', $user_cloud_endpoint);
|
||||
}
|
||||
|
||||
if ( ! $is_refresh ) {
|
||||
update_option( 'et_server_domain_token', $access_token );
|
||||
}
|
||||
|
||||
$request_body = array();
|
||||
|
||||
$auth_token = $is_refresh ? $refresh_token : $access_token;
|
||||
|
||||
$response = wp_remote_post( $url, array(
|
||||
'headers' => array(
|
||||
'Authorization' => 'Bearer ' . $auth_token,
|
||||
),
|
||||
'body' => $request_body,
|
||||
) );
|
||||
|
||||
if ( is_wp_error( $response ) ) {
|
||||
// Delete updating token flag.
|
||||
delete_transient( 'et_cloud_access_token_update_status' );
|
||||
|
||||
wp_send_json_error( array(
|
||||
'error' => 'Cloud Request Failed. Please Try Again Later',
|
||||
) );
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$response_code = wp_remote_retrieve_response_code( $response );
|
||||
$response_body = wp_remote_retrieve_body( $response );
|
||||
$decoded_body = json_decode( $response_body, TRUE );
|
||||
|
||||
// Valid response should contain 2 tokens.
|
||||
if ( !isset( $decoded_body['refresh_token'] ) || !isset( $decoded_body['access_token'] ) || 200 !== $response_code ) {
|
||||
// Authorization error. Need to reset all tokens and ask user to login again.
|
||||
if ( 401 === $response_code ) {
|
||||
$saved_tokens[ $user_id ] = array();
|
||||
|
||||
// Save empty refresh token for current user.
|
||||
update_option( 'et_cloud_refresh_token', $saved_tokens, false );
|
||||
|
||||
// Delete updating token flag.
|
||||
delete_transient( 'et_cloud_access_token_update_status' );
|
||||
|
||||
wp_send_json_error( array(
|
||||
'error' => '401',
|
||||
) );
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
wp_send_json_error( array(
|
||||
'error' => wp_remote_retrieve_response_message( $response ),
|
||||
) );
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$refresh_token = $decoded_body['refresh_token'];
|
||||
$access_token = $decoded_body['access_token'];
|
||||
$token_to_save = $refresh_token;
|
||||
$token_part = '';
|
||||
|
||||
// We shouldn't save the full token, so user cannot use this token in other browser.
|
||||
if ( ! $save_session ) {
|
||||
$token_parts = str_split( $refresh_token, 400 );
|
||||
$token_to_save = $token_parts[0];
|
||||
$token_part = $token_parts[1];
|
||||
}
|
||||
|
||||
$saved_tokens[ $user_id ] = array(
|
||||
'refresh_token' => sanitize_text_field( $token_to_save ),
|
||||
'is_full_token' => $save_session,
|
||||
);
|
||||
|
||||
// Save refresh token for current user.
|
||||
update_option( 'et_cloud_refresh_token', $saved_tokens, false );
|
||||
|
||||
// Delete updating token flag.
|
||||
delete_transient( 'et_cloud_access_token_update_status' );
|
||||
|
||||
// Save Access Token for 30 seconds so it can be quickly retrieved by the VB.
|
||||
set_transient( 'et_cloud_access_token', $access_token, 30);
|
||||
|
||||
wp_send_json_success( array(
|
||||
'accessToken' => $decoded_body['access_token'],
|
||||
'refreshTokenPart' => $token_part,
|
||||
'domainToken' => get_option( 'et_server_domain_token', '' ),
|
||||
) );
|
||||
}
|
||||
|
||||
public static function hasRefreshToken() {
|
||||
$user_id = (string) get_current_user_id();
|
||||
$saved_tokens = get_option( 'et_cloud_refresh_token', array() );
|
||||
$refresh_token = isset( $saved_tokens[ $user_id ] ) ? $saved_tokens[ $user_id ] : array();
|
||||
|
||||
return $refresh_token && ! empty( $refresh_token );
|
||||
}
|
||||
|
||||
public static function get_cloud_helpers() {
|
||||
if ( !defined( 'ET_CLOUD_PLUGIN_DIR' ) ) {
|
||||
define( 'ET_CLOUD_PLUGIN_DIR', get_template_directory() . '/cloud' );
|
||||
}
|
||||
|
||||
$home_url = wp_parse_url( get_site_url() );
|
||||
$etAccount = et_core_get_et_account();
|
||||
|
||||
return [
|
||||
'i18n' => require ET_CLOUD_PLUGIN_DIR . '/i18n/library.php',
|
||||
'nonces' => [
|
||||
'et_cloud_download_item' => wp_create_nonce( 'et_cloud_download_item' ),
|
||||
'et_cloud_refresh_token' => wp_create_nonce( 'et_cloud_refresh_token' ),
|
||||
'et_cloud_remove_token' => wp_create_nonce( 'et_cloud_remove_token' ),
|
||||
'et_builder_ajax_save_domain_token' => wp_create_nonce( 'et_builder_ajax_save_domain_token' ),
|
||||
'et_builder_marketplace_api_get_layouts' => wp_create_nonce( 'et_builder_marketplace_api_get_layouts' ),
|
||||
'et_builder_marketplace_api_get_layout_categories' => wp_create_nonce( 'et_builder_marketplace_api_get_layout_categories' ),
|
||||
],
|
||||
'ajaxurl' => is_ssl() ? admin_url( 'admin-ajax.php' ) : admin_url( 'admin-ajax.php', 'http' ),
|
||||
'home_url' => isset( $home_url['path'] ) ? untrailingslashit( $home_url['path'] ) : '/',
|
||||
'website_url' => $home_url['host'],
|
||||
'etAccount' => [
|
||||
'username' => $etAccount['et_username'],
|
||||
'apiKey' => $etAccount['et_api_key'],
|
||||
],
|
||||
'domainToken' => get_option( 'et_server_domain_token', '' ),
|
||||
'initialCloudStatus' => ET_Cloud_App::hasRefreshToken() ? 'on' : 'off',
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Load the Cloud App scripts.
|
||||
*
|
||||
* @since ??
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public static function load_js( $enqueue_prod_scripts = true, $skip_react_loading = false ) {
|
||||
if ( !defined( 'ET_CLOUD_PLUGIN_URI' ) ) {
|
||||
define( 'ET_CLOUD_PLUGIN_URI', get_template_directory_uri() . '/cloud' );
|
||||
}
|
||||
|
||||
if ( !defined( 'ET_CLOUD_PLUGIN_DIR' ) ) {
|
||||
define( 'ET_CLOUD_PLUGIN_DIR', get_template_directory() . '/cloud' );
|
||||
}
|
||||
|
||||
$CORE_VERSION = defined( 'ET_CORE_VERSION' ) ? ET_CORE_VERSION : '';
|
||||
$ET_DEBUG = defined( 'ET_DEBUG' ) && ET_DEBUG;
|
||||
$DEBUG = $ET_DEBUG;
|
||||
|
||||
$home_url = wp_parse_url( get_site_url() );
|
||||
$build_dir_uri = ET_CLOUD_PLUGIN_URI . '/build';
|
||||
$common_scripts = ET_COMMON_URL . '/scripts';
|
||||
$cache_buster = $DEBUG ? mt_rand() / mt_getrandmax() : $CORE_VERSION;
|
||||
$asset_path = ET_CLOUD_PLUGIN_DIR . '/build/et-cloud-app.bundle.js';
|
||||
|
||||
if ( file_exists( $asset_path ) ) {
|
||||
wp_enqueue_style( 'et-cloud-styles', "{$build_dir_uri}/et-cloud-app.bundle.modals.css", [], (string) $cache_buster );
|
||||
}
|
||||
|
||||
wp_enqueue_script( 'es6-promise', "{$common_scripts}/es6-promise.auto.min.js", [], '4.2.2', true );
|
||||
|
||||
$BUNDLE_DEPS = [
|
||||
'jquery',
|
||||
'react',
|
||||
'react-dom',
|
||||
'es6-promise',
|
||||
];
|
||||
|
||||
if ( $DEBUG || $enqueue_prod_scripts || file_exists( $asset_path ) ) {
|
||||
$BUNDLE_URI = ! file_exists( $asset_path ) ? "{$home_url['scheme']}://{$home_url['host']}:31495/et-cloud-app.bundle.js" : "{$build_dir_uri}/et-cloud-app.bundle.js";
|
||||
|
||||
// Skip the React loading if we already have React ( Gutenberg editor for example ) to avoid conflicts.
|
||||
if ( ! $skip_react_loading ) {
|
||||
if ( function_exists( 'et_fb_enqueue_react' ) ) {
|
||||
et_fb_enqueue_react();
|
||||
}
|
||||
}
|
||||
|
||||
wp_enqueue_script( 'et-cloud-app', $BUNDLE_URI, $BUNDLE_DEPS, (string) $cache_buster, true );
|
||||
wp_localize_script( 'et-cloud-app', 'et_cloud_data', ET_Cloud_App::get_cloud_helpers());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ET_Cloud_App::instance();
|
BIN
cloud/fonts/CloudApp.eot
Normal file
BIN
cloud/fonts/CloudApp.eot
Normal file
Binary file not shown.
27
cloud/fonts/CloudApp.svg
Normal file
27
cloud/fonts/CloudApp.svg
Normal file
@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<metadata>
|
||||
<json>
|
||||
<![CDATA[
|
||||
{
|
||||
"fontFamily": "CloudApp",
|
||||
"majorVersion": 1,
|
||||
"minorVersion": 0,
|
||||
"version": "Version 1.0",
|
||||
"fontId": "CloudApp",
|
||||
"psName": "CloudApp",
|
||||
"subFamily": "Regular",
|
||||
"fullName": "CloudApp",
|
||||
"description": "Font generated by IcoMoon."
|
||||
}
|
||||
]]>
|
||||
</json>
|
||||
</metadata>
|
||||
<defs>
|
||||
<font id="CloudApp" horiz-adv-x="1024">
|
||||
<font-face units-per-em="1024" ascent="960" descent="-64" />
|
||||
<missing-glyph horiz-adv-x="1024" />
|
||||
<glyph unicode=" " horiz-adv-x="512" d="" />
|
||||
<glyph unicode="" glyph-name="inline-cloud" data-tags="inline-cloud" d="M877.714 434.468v40.96c0 182.126-147.017 329.143-329.143 329.143-169.691 0-307.2-128.731-325.486-293.303-1.463 0.731-2.194 0.731-3.657 0.731-121.417 0-219.429-98.011-219.429-219.429s98.011-219.429 219.429-219.429c79.726 0 550.766 0 621.714 0 100.937 0 182.857 81.92 182.857 182.857 0 88.503-62.903 161.646-146.286 178.469z" />
|
||||
</font></defs></svg>
|
After Width: | Height: | Size: 1.1 KiB |
BIN
cloud/fonts/CloudApp.ttf
Normal file
BIN
cloud/fonts/CloudApp.ttf
Normal file
Binary file not shown.
BIN
cloud/fonts/CloudApp.woff
Normal file
BIN
cloud/fonts/CloudApp.woff
Normal file
Binary file not shown.
182
cloud/i18n/library.php
Normal file
182
cloud/i18n/library.php
Normal file
@ -0,0 +1,182 @@
|
||||
<?php
|
||||
|
||||
$sub_directory = dirname( __FILE__ ) . '/library';
|
||||
|
||||
return array(
|
||||
'%s Library' => sprintf( esc_html_x( '%s Library', 'Divi Library', 'et_builder' ), 'Divi' ),
|
||||
'%d Layout' => esc_html__( '%d Layout', 'et_builder' ),
|
||||
'%d Layouts' => esc_html__( '%d Layouts', 'et_builder' ),
|
||||
'%d Layout Pack' => esc_html__( '%d Layout Pack', 'et_builder' ),
|
||||
'%d Layout Packs' => esc_html__( '%d Layout Packs', 'et_builder' ),
|
||||
'%d Module' => esc_html__( '%d Module', 'et_builder' ),
|
||||
'%d Modules' => esc_html__( '%d Modules', 'et_builder' ),
|
||||
'%d Page' => esc_html__( '%d Page', 'et_builder' ),
|
||||
'%d Pages' => esc_html__( '%d Pages', 'et_builder' ),
|
||||
'%d Row' => esc_html__( '%d Row', 'et_builder' ),
|
||||
'%d Rows' => esc_html__( '%d Rows', 'et_builder' ),
|
||||
'%d Section' => esc_html__( '%d Section', 'et_builder' ),
|
||||
'%d Sections' => esc_html__( '%d Sections', 'et_builder' ),
|
||||
'%d Total Layouts' => esc_html__( '%d Total Layouts', 'et_builder' ),
|
||||
'Add New Category' => esc_html__( 'Add New Category', 'et_builder' ),
|
||||
'Add New Cloud Category' => esc_html__( 'Add New Cloud Category', 'et_builder' ),
|
||||
'Add New Layout' => esc_html__( 'Add New Layout', 'et_builder' ),
|
||||
'Add New Pack' => esc_html__( 'Add New Pack', 'et_builder' ),
|
||||
'Add New Tag' => esc_html__( 'Add New Tag', 'et_builder' ),
|
||||
'Add New Cloud Tag' => esc_html__( 'Add New Cloud Tag', 'et_builder' ),
|
||||
'Add To Categories' => esc_html__( 'Add To Categories', 'et_builder' ),
|
||||
'Add To Divi Cloud' => esc_html__( 'Add To Divi Cloud', 'et_builder' ),
|
||||
'All' => esc_html__( 'All', 'et_builder' ),
|
||||
'Move To Divi Cloud' => esc_html__( 'Move To Divi Cloud', 'et_builder' ),
|
||||
'Add To Favorites' => esc_html__( 'Add To Favorites', 'et_builder' ),
|
||||
'Add To Tags' => esc_html__( 'Add To Tags', 'et_builder' ),
|
||||
'API Key' => esc_html__( 'API Key', 'et_builder' ),
|
||||
'Save Changes' => esc_html__( 'Save Changes', 'et_builder' ),
|
||||
'Authentication Required' => esc_html__( 'Authentication Required', 'et_builder' ),
|
||||
'Cancel' => esc_html__( 'Cancel', 'et_builder' ),
|
||||
'Categories' => esc_html__( 'Categories', 'et_builder' ),
|
||||
'Category' => esc_html__( 'Category', 'et_builder' ),
|
||||
'Copy To Library' => esc_html__( 'Copy To Library', 'et_builder' ),
|
||||
'Copy To Divi Cloud' => esc_html__( 'Copy To Divi Cloud', 'et_builder' ),
|
||||
'Create New Category/Categories' => esc_html__( 'Create New Category/Categories', 'et_builder' ),
|
||||
'Create New Tag/Tags' => esc_html__( 'Create New Tag/Tags', 'et_builder' ),
|
||||
'Delete' => esc_html__( 'Delete', 'et_builder' ),
|
||||
'Demo' => esc_html__( 'Demo', 'et_builder' ),
|
||||
'Divi Cloud' => esc_html__( 'Divi Cloud', 'et_builder' ),
|
||||
'Your Divi Cloud Session Has Ended' => esc_html__( 'Your Divi Cloud Session Has Ended', 'et_builder' ),
|
||||
'Please Log In Again' => esc_html__( 'Please Log In Again', 'et_builder' ),
|
||||
'Delete Permanently' => esc_html__( 'Delete Permanently', 'et_builder' ),
|
||||
'Duplicate' => esc_html__( 'Duplicate', 'et_builder' ),
|
||||
'Edit' => esc_html__( 'Edit', 'et_builder' ),
|
||||
'Edit Tags And Categories' => esc_html__( 'Edit Tags And Categories', 'et_builder' ),
|
||||
'Edit With Divi' => esc_html__( 'Edit With Divi', 'et_builder' ),
|
||||
'Elegant Themes Account' => esc_html__( 'Elegant Themes Account', 'et_builder' ),
|
||||
'Empty Trash' => esc_html__( 'Empty Trash', 'et_builder' ),
|
||||
'Enable Divi Cloud' => esc_html__( 'Enable Divi Cloud', 'et_builder' ),
|
||||
'Error' => esc_html__( 'Error', 'et_builder' ),
|
||||
'Explore Other Modules With Tag' => esc_html__( 'Explore Other Modules With Tag', 'et_builder' ),
|
||||
'Explore Other Rows With Tag' => esc_html__( 'Explore Other Rows With Tag', 'et_builder' ),
|
||||
'Explore Other Sections With Tag' => esc_html__( 'Explore Other Sections With Tag', 'et_builder' ),
|
||||
'Export' => esc_html__( 'Export', 'et_builder' ),
|
||||
'Failed to load your existing layouts. Please try again later.' => esc_html__( 'Failed to load your existing layouts. Please try again later.', 'et_builder' ),
|
||||
'Favorites' => esc_html__( 'Favorites', 'et_builder' ),
|
||||
'Find A Layout' => esc_html__( 'Find A Layout', 'et_builder' ),
|
||||
'Find A Module' => esc_html__( 'Find A Module', 'et_builder' ),
|
||||
'Find A Page' => esc_html__( 'Find A Page', 'et_builder' ),
|
||||
'Find A Row' => esc_html__( 'Find A Row', 'et_builder' ),
|
||||
'Find A Section' => esc_html__( 'Find A Section', 'et_builder' ),
|
||||
'Filter' => esc_html__( 'Filter', 'et_builder' ),
|
||||
'Folder' => esc_html__( 'Folder', 'et_builder' ),
|
||||
'Get Unlimited Divi Cloud Storage' => esc_html__( 'Get Unlimited Divi Cloud Storage', 'et_builder' ),
|
||||
'Generating Screenshot' => esc_html__( 'Generating Screenshot', 'et_builder' ),
|
||||
'Global' => esc_html_x( 'Global', 'Divi Library Global Module', 'et_builder' ),
|
||||
'Global items' => esc_html__( 'Global items', 'et_builder' ),
|
||||
'Grid View' => esc_html_x( 'Grid View', 'Divi Library View Mode', 'et_builder' ),
|
||||
'Help' => esc_html__( 'Help', 'et_builder' ),
|
||||
'Layout' => esc_html_x( 'Layout', 'Divi Library Item Type', 'et_builder' ),
|
||||
'Layout Details' => esc_html_x( 'Layout Details', 'Divi Library Title', 'et_builder' ),
|
||||
'Layout Pack' => esc_html__( 'Layout Pack', 'et_builder' ),
|
||||
'Layout Name' => esc_html__( 'Layout Name', 'et_builder' ),
|
||||
'Layouts In This Pack' => esc_html_x( 'Layouts In This Pack', 'Layout Pack', 'et_builder' ),
|
||||
'Library' => esc_html__( 'Library', 'et_builder' ),
|
||||
'List View' => esc_html_x( 'List View', 'Divi Library View Mode', 'et_builder' ),
|
||||
'Live Preview' => esc_html__( 'Live Preview', 'et_builder' ),
|
||||
'Load From Library' => esc_html__( 'Load From Library', 'et_builder' ),
|
||||
'Locations' => esc_html__( 'Locations', 'et_builder' ),
|
||||
'Log In' => esc_html__( 'Log In', 'et_builder' ),
|
||||
'Log In To Divi Cloud' => esc_html__( 'Log In To Divi Cloud', 'et_builder' ),
|
||||
'Manage Categories' => esc_html_x( 'Manage Categories', 'Layout Categories', 'et_builder' ),
|
||||
'Manage Layouts' => esc_html__( 'Manage Layouts', 'et_builder' ),
|
||||
'Manage Packs' => esc_html_x( 'Manage Packs', 'Layout Packs', 'et_builder' ),
|
||||
'Manage Tags' => esc_html_x( 'Manage Tags', 'Layout Categories', 'et_builder' ),
|
||||
'Manage Your Elegant Themes Account' => esc_html__( 'Manage Your Elegant Themes Account', 'et_builder' ),
|
||||
'Module' => esc_html_x( 'Module', 'Divi Library Item Type', 'et_builder' ),
|
||||
'Module Name' => esc_html__( 'Module Name', 'et_builder' ),
|
||||
'Most Used' => esc_html__( 'Most Used', 'et_builder' ),
|
||||
'My Divi Cloud' => esc_html__( 'My Divi Cloud', 'et_builder' ),
|
||||
'Name' => esc_html__( 'Name', 'et_builder' ),
|
||||
'New To Old' => esc_html__( 'New To Old', 'et_builder' ),
|
||||
'No Results' => esc_html__( 'No Results', 'et_builder' ),
|
||||
'No Screenshot' => esc_html__( 'No Screenshot', 'et_builder' ),
|
||||
'On Divi Cloud' => esc_html__( 'On Divi Cloud', 'et_builder' ),
|
||||
'Old To New' => esc_html__( 'Old To New', 'et_builder' ),
|
||||
'Only Show' => esc_html__( 'Only Show', 'et_builder' ),
|
||||
'Pack View' => esc_html_x( 'Pack View', 'Divi Library View Mode (Layout Pack)', 'et_builder' ),
|
||||
'Password' => esc_html__( 'Password', 'et_builder' ),
|
||||
'Premade Layouts' => esc_html__( 'Premade Layouts', 'et_builder' ),
|
||||
'Published' => esc_html__( 'Published', 'et_builder' ),
|
||||
'Remove From Cloud' => esc_html__( 'Remove From Cloud', 'et_builder' ),
|
||||
'Remove From Favorites' => esc_html__( 'Remove From Favorites', 'et_builder' ),
|
||||
'Rename' => esc_html__( 'Rename', 'et_builder' ),
|
||||
'Replace Existing Content' => esc_html__( 'Replace Existing Content', 'et_builder' ),
|
||||
'Restore' => esc_html__( 'Restore', 'et_builder' ),
|
||||
'Row' => esc_html_x( 'Row', 'Divi Library Layout Type', 'et_builder' ),
|
||||
'Row Name' => esc_html__( 'Row Name', 'et_builder' ),
|
||||
'Save as Global' => esc_html__( 'Save as Global', 'et_builder' ),
|
||||
'Save To Divi Cloud' => esc_html__( 'Save To Divi Cloud', 'et_builder' ),
|
||||
'Search' => esc_html__( 'Search', 'et_builder' ),
|
||||
'Search Layout Categories' => esc_html__( 'Search For Categories', 'et_builder' ),
|
||||
'Search Layout Packs' => esc_html__( 'Search For Packs', 'et_builder' ),
|
||||
'Search Layouts' => esc_html__( 'Search For Layouts', 'et_builder' ),
|
||||
'Section' => esc_html_x( 'Section', 'Divi Library Layout Type', 'et_builder' ),
|
||||
'Section Name' => esc_html__( 'Section Name', 'et_builder' ),
|
||||
'Sign In To Divi Cloud' => esc_html__( 'Sign In To Divi Cloud', 'et_builder' ),
|
||||
'Sign Out Of Divi Cloud' => esc_html__( 'Sign Out Of Divi Cloud', 'et_builder' ),
|
||||
'Sort' => esc_html__( 'Sort', 'et_builder' ),
|
||||
'Status' => esc_html__( 'Status', 'et_builder' ),
|
||||
'Submit' => esc_html__( 'Submit', 'et_builder' ),
|
||||
'Tags' => esc_html__( 'Tags', 'et_builder' ),
|
||||
'Tag View' => esc_html_x( 'Tag View', 'Divi Library View Mode', 'et_builder' ),
|
||||
'This Website' => esc_html__( 'This Website', 'et_builder' ),
|
||||
'Title' => esc_html__( 'Title', 'et_builder' ),
|
||||
'Trash' => esc_html__( 'Trash', 'et_builder' ),
|
||||
'Free Divi Cloud Limit Reached' => esc_html__( 'Free Divi Cloud Limit Reached', 'et_builder' ),
|
||||
'Use This Layout' => esc_html_x( 'Use This Layout', 'Apply layout to the page', 'et_builder' ),
|
||||
'Use This Module' => esc_html_x( 'Use This Module', 'Insert Module from library', 'et_builder' ),
|
||||
'Use This Row' => esc_html_x( 'Use This Row', 'Insert Row from library', 'et_builder' ),
|
||||
'Use This Section' => esc_html_x( 'Use This Section', 'Insert Section from library', 'et_builder' ),
|
||||
'Username' => esc_html__( 'Username', 'et_builder' ),
|
||||
'Uh Oh!' => esc_html__( 'Uh Oh!', 'et_builder' ),
|
||||
'Untagged' => esc_html__( 'Untagged', 'et_builder' ),
|
||||
'Upgrade Your Divi Cloud' => esc_html__( 'Upgrade Your Divi Cloud', 'et_builder' ),
|
||||
'View Live Demo' => esc_html_x( 'View Live Demo', 'Page layout', 'et_builder' ),
|
||||
'View Mode' => esc_html_x( 'View Mode', 'Divi Library', 'et_builder' ),
|
||||
'Your Existing Pages' => esc_html__( 'Your Existing Pages', 'et_builder' ),
|
||||
'Your Saved Layouts' => esc_html__( 'Your Saved Layouts', 'et_builder' ),
|
||||
'Your Divi Cloud membership has expired' => esc_html__( 'Your Divi Cloud membership has expired', 'et_builder' ),
|
||||
'$apiKeyHelp' => et_get_safe_localization( sprintf( __( 'You can find your API Key <a href="%s" target="_blank">here</a>.', 'et_builder' ), 'https://www.elegantthemes.com/members-area/api/' ) ),
|
||||
'$expiredAccount' => et_get_safe_localization( sprintf( __( 'Your %s subscription has expired. In order to download Premade Layouts from the %s Library you must <a href="%s" target="_blank">renew your subscription</a>.', 'et_builder' ), 'Elegant Themes', 'Divi', 'https://www.elegantthemes.com/members-area' ) ),
|
||||
'$noAccount' => sprintf( esc_html__( 'Before you can download Premade Layouts from the %s Library you must authenticate your %s subscription.', 'et_builder' ), 'Divi', 'Elegant Themes' ),
|
||||
'$usernameHelp' => esc_html__( 'This is the username that you use to access the Members Area on elegantthemes.com.', 'et_builder' ),
|
||||
'$cloudLoginHelp' => esc_html__( 'To enable Divi Cloud on this website, log in to your Elegant Themes account', 'et_builder' ),
|
||||
'$cloudAuthError' => esc_html__( 'Your Divi Cloud session has ended. Please try logging in again. If you continue to experience authorization failures, try closing Library modal and opening it again so that your authorization token can be regenerated.', 'et_builder' ),
|
||||
'$cloudFreeLimitExceeded' => esc_html__( 'Unlock Unlimited Divi Cloud Storage', 'et_builder' ),
|
||||
'$cloudTrashConfirmation' => esc_html__( 'Are You Sure?', 'et_builder' ),
|
||||
'$cloudTrashWarning' => esc_html__( 'Do you want to permanently delete all the items in your trash? This action cannot be undone and the items cannot be recovered.', 'et_builder' ),
|
||||
'$cloudSaveGlobal' => esc_html__( 'Duplicate Global Item To Cloud', 'et_builder' ),
|
||||
'$cloudGlobalWarning' => esc_html__( 'Global items cannot be added to your Divi Cloud. Would you like to save a non-global version to your Divi Cloud? The version on this website will remain a global instance', 'et_builder' ),
|
||||
'$cloudPaidLimitExceeded' => esc_html__( 'Uh Oh! You have reached your Divi Cloud quota.', 'et_builder' ),
|
||||
'$cloudUpgradeMessage' => esc_html__( 'All Divi users can store up to %s items to their Divi Cloud for free. To save more items to your cloud and unlock unlimited storage, upgrade your Divi Cloud membership today. If you build Divi websites for a living, Divi Cloud is an awesome add-on and an amazing time saver. You are going to love it!', 'et_builder' ),
|
||||
'$cloudUpgradeMessage500' => esc_html__( 'You have hit your 500MB Limit. To continue to save items to your Divi Cloud, you must delete some of your existing items to free up space or upgrade your Divi Cloud storage.', 'et_builder' ),
|
||||
'$cloudLoginNotification' => esc_html__( 'Sign in to your Elegant Themes account using the pop-up to activate Divi Cloud.', 'et_builder' ),
|
||||
'$cloudBuyNotification' => esc_html__( 'Complete your purchase using the pop-up to upgrade Divi Cloud.', 'et_builder' ),
|
||||
'$cloudLoginForgotPass' => et_get_safe_localization( sprintf( __( 'Forgot your <a href="%1$s" target="_blank">Username</a> or <a href="%1$s" target="_blank">Password</a>?', 'et_builder' ), 'https://www.elegantthemes.com/members-area/' ) ),
|
||||
'$layoutSourceET' => esc_html__( 'By Elegant Themes', 'et_builder' ),
|
||||
'$layoutSourceETShort' => esc_html__( 'Elegant Themes', 'et_builder' ),
|
||||
'$layoutSourceCommunity' => esc_html__( 'By The Community', 'et_builder' ),
|
||||
'$layoutSourceCommunityShort' => esc_html__( 'Community', 'et_builder' ),
|
||||
'$marketplaceLayoutPurchase' => esc_html__( 'Buy', 'et_builder' ),
|
||||
'$marketplaceLayoutViewDetails' => esc_html__( 'View Details', 'et_builder' ),
|
||||
'$libraryErrorBoundary' => esc_html__( '%1$s could not be displayed.', 'et_builder' ),
|
||||
'$libraryHideError' => esc_html__( 'hide error message', 'et_builder' ),
|
||||
'$libraryShowError' => esc_html__( 'show error message', 'et_builder' ),
|
||||
'$marketplaceAuthor' => esc_html__( 'By %s', 'et_builder' ),
|
||||
'$marketplaceReviews' => esc_html__( '%d Reviews', 'et_builder' ),
|
||||
'$marketplaceSales' => esc_html__( '%d Sales', 'et_builder' ),
|
||||
'$marketplaceView' => esc_html__( 'View in Divi Marketplace', 'et_builder' ),
|
||||
'@categories' => require $sub_directory . '/categories.php',
|
||||
'@layoutsLong' => require $sub_directory . '/layouts-long.php',
|
||||
'@layoutsShort' => require $sub_directory . '/layouts-short.php',
|
||||
'@packs' => require $sub_directory . '/packs.php',
|
||||
'$trashStorageNotice' => et_get_safe_localization( sprintf( __( 'Trash storage for Divi Cloud is limited to 50 items for free accounts. Once your trash exceeds 50 items, the oldest items in your trashed will be permanently deleted to make room for new items. Purchase a <a href="%s" target="_blank">Divi Cloud Membership</a> for unlimited storage.', 'et_builder' ), 'https://www.elegantthemes.com/divi-cloud/' ) ),
|
||||
'$accountLimitNotice' => et_get_safe_localization( sprintf( __( 'Your Divi Cloud membership has expired. To access items stored on your cloud, please <a href="%s" target="_blank">renew your Divi Cloud membership</a>.', 'et_builder' ), 'https://www.elegantthemes.com/members-area/membership/' ) ),
|
||||
);
|
15
cloud/i18n/library/categories.php
Normal file
15
cloud/i18n/library/categories.php
Normal file
@ -0,0 +1,15 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
'Art & Design' => esc_html_x( 'Art & Design', 'Layout Category', 'et_builder' ),
|
||||
'Business' => esc_html_x( 'Business', 'Layout Category', 'et_builder' ),
|
||||
'Community & Non-Profit' => esc_html_x( 'Community & Non-Profit', 'Layout Category', 'et_builder' ),
|
||||
'Education' => esc_html_x( 'Education', 'Layout Category', 'et_builder' ),
|
||||
'Events' => esc_html_x( 'Events', 'Layout Category', 'et_builder' ),
|
||||
'Fashion & Beauty' => esc_html_x( 'Fashion & Beauty', 'Layout Category', 'et_builder' ),
|
||||
'Food & Drink' => esc_html_x( 'Food & Drink', 'Layout Category', 'et_builder' ),
|
||||
'Health & Fitness' => esc_html_x( 'Health & Fitness', 'Layout Category', 'et_builder' ),
|
||||
'Online Store' => esc_html_x( 'Online Store', 'Layout Category', 'et_builder' ),
|
||||
'Services' => esc_html_x( 'Services', 'Layout Category', 'et_builder' ),
|
||||
'Technology' => esc_html_x( 'Technology', 'Layout Category', 'et_builder' ),
|
||||
);
|
136
cloud/i18n/library/layouts-long.php
Normal file
136
cloud/i18n/library/layouts-long.php
Normal file
@ -0,0 +1,136 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
'Agency About Page' => esc_html__( 'Agency About Page', 'et_builder' ),
|
||||
'Agency Blog Page' => esc_html__( 'Agency Blog Page', 'et_builder' ),
|
||||
'Agency Contact Page' => esc_html__( 'Agency Contact Page', 'et_builder' ),
|
||||
'Agency Home Page' => esc_html__( 'Agency Home Page', 'et_builder' ),
|
||||
'Agency Landing Page' => esc_html__( 'Agency Landing Page', 'et_builder' ),
|
||||
'Agency Portfolio Page' => esc_html__( 'Agency Portfolio Page', 'et_builder' ),
|
||||
'Agency Pricing Page' => esc_html__( 'Agency Pricing Page', 'et_builder' ),
|
||||
'Coffee Shop About Page' => esc_html__( 'Coffee Shop About Page', 'et_builder' ),
|
||||
'Coffee Shop Blog Page' => esc_html__( 'Coffee Shop Blog Page', 'et_builder' ),
|
||||
'Coffee Shop Contact Page' => esc_html__( 'Coffee Shop Contact Page', 'et_builder' ),
|
||||
'Coffee Shop Footer Page' => esc_html__( 'Coffee Shop Footer Page', 'et_builder' ),
|
||||
'Coffee Shop Guide Page' => esc_html__( 'Coffee Shop Guide Page', 'et_builder' ),
|
||||
'Coffee Shop Home Page' => esc_html__( 'Coffee Shop Home Page', 'et_builder' ),
|
||||
'Coffee Shop Landing Page' => esc_html__( 'Coffee Shop Landing Page', 'et_builder' ),
|
||||
'Coffee Shop Menu Page' => esc_html__( 'Coffee Shop Menu Page', 'et_builder' ),
|
||||
'Coffee Shop Shop Page' => esc_html__( 'Coffee Shop Shop Page', 'et_builder' ),
|
||||
'Copywriter About Page' => esc_html__( 'Copywriter About Page', 'et_builder' ),
|
||||
'Copywriter Blog Page' => esc_html__( 'Copywriter Blog Page', 'et_builder' ),
|
||||
'Copywriter Contact Page' => esc_html__( 'Copywriter Contact Page', 'et_builder' ),
|
||||
'Copywriter FAQ Page' => esc_html__( 'Copywriter FAQ Page', 'et_builder' ),
|
||||
'Copywriter Home Page' => esc_html__( 'Copywriter Home Page', 'et_builder' ),
|
||||
'Copywriter Landing Page' => esc_html__( 'Copywriter Landing Page', 'et_builder' ),
|
||||
'Copywriter Portfolio Page' => esc_html__( 'Copywriter Portfolio Page', 'et_builder' ),
|
||||
'Copywriter Pricing Page' => esc_html__( 'Copywriter Pricing Page', 'et_builder' ),
|
||||
'Copywriter Services Page' => esc_html__( 'Copywriter Services Page', 'et_builder' ),
|
||||
'Design Agency About Page' => esc_html__( 'Design Agency About Page', 'et_builder' ),
|
||||
'Design Agency Blog Page' => esc_html__( 'Design Agency Blog Page', 'et_builder' ),
|
||||
'Design Agency Case Study Page' => esc_html__( 'Design Agency Case Study Page', 'et_builder' ),
|
||||
'Design Agency Contact Page' => esc_html__( 'Design Agency Contact Page', 'et_builder' ),
|
||||
'Design Agency Home Page' => esc_html__( 'Design Agency Home Page', 'et_builder' ),
|
||||
'Design Agency Landing Page' => esc_html__( 'Design Agency Landing Page', 'et_builder' ),
|
||||
'Design Agency Portfolio Page' => esc_html__( 'Design Agency Portfolio Page', 'et_builder' ),
|
||||
'Design Agency Project Page 1' => esc_html__( 'Design Agency Project Page 1', 'et_builder' ),
|
||||
'Design Agency Project Page 2' => esc_html__( 'Design Agency Project Page 2', 'et_builder' ),
|
||||
'Digital Payments About Page' => esc_html__( 'Digital Payments About Page', 'et_builder' ),
|
||||
'Digital Payments Blog Page' => esc_html__( 'Digital Payments Blog Page', 'et_builder' ),
|
||||
'Digital Payments Contact Page' => esc_html__( 'Digital Payments Contact Page', 'et_builder' ),
|
||||
'Digital Payments Features Page' => esc_html__( 'Digital Payments Features Page', 'et_builder' ),
|
||||
'Digital Payments Home Page' => esc_html__( 'Digital Payments Home Page', 'et_builder' ),
|
||||
'Digital Payments Landing Page' => esc_html__( 'Digital Payments Landing Page', 'et_builder' ),
|
||||
'Digital Payments Pricing Page' => esc_html__( 'Digital Payments Pricing Page', 'et_builder' ),
|
||||
'Digital Payments Sign-Up Page' => esc_html__( 'Digital Payments Sign-Up Page', 'et_builder' ),
|
||||
'Farmers Market About Page' => esc_html__( 'Farmers Market About Page', 'et_builder' ),
|
||||
'Farmers Market Blog Page' => esc_html__( 'Farmers Market Blog Page', 'et_builder' ),
|
||||
'Farmers Market Contact Page' => esc_html__( 'Farmers Market Contact Page', 'et_builder' ),
|
||||
'Farmers Market Donate Page' => esc_html__( 'Farmers Market Donate Page', 'et_builder' ),
|
||||
'Farmers Market Events Page' => esc_html__( 'Farmers Market Events Page', 'et_builder' ),
|
||||
'Farmers Market Home Page' => esc_html__( 'Farmers Market Home Page', 'et_builder' ),
|
||||
'Farmers Market Landing Page' => esc_html__( 'Farmers Market Landing Page', 'et_builder' ),
|
||||
'Farmers Market Market Page' => esc_html__( 'Farmers Market Market Page', 'et_builder' ),
|
||||
'Fashion About Page' => esc_html__( 'Fashion About Page', 'et_builder' ),
|
||||
'Fashion Blog Page' => esc_html__( 'Fashion Blog Page', 'et_builder' ),
|
||||
'Fashion Contact Page' => esc_html__( 'Fashion Contact Page', 'et_builder' ),
|
||||
'Fashion Designer Page' => esc_html__( 'Fashion Designer Page', 'et_builder' ),
|
||||
'Fashion Gallery Page' => esc_html__( 'Fashion Gallery Page', 'et_builder' ),
|
||||
'Fashion Home Page' => esc_html__( 'Fashion Home Page', 'et_builder' ),
|
||||
'Fashion Landing Page' => esc_html__( 'Fashion Landing Page', 'et_builder' ),
|
||||
'Fashion Shop Page' => esc_html__( 'Fashion Shop Page', 'et_builder' ),
|
||||
'Florist About Page' => esc_html__( 'Florist About Page', 'et_builder' ),
|
||||
'Florist Blog Page' => esc_html__( 'Florist Blog Page', 'et_builder' ),
|
||||
'Florist Contact Page' => esc_html__( 'Florist Contact Page', 'et_builder' ),
|
||||
'Florist Gallery Page' => esc_html__( 'Florist Gallery Page', 'et_builder' ),
|
||||
'Florist Home Page' => esc_html__( 'Florist Home Page', 'et_builder' ),
|
||||
'Florist Landing Page' => esc_html__( 'Florist Landing Page', 'et_builder' ),
|
||||
'Florist Shop Page' => esc_html__( 'Florist Shop Page', 'et_builder' ),
|
||||
'Interior Design Company About Page' => esc_html__( 'Interior Design Company About Page', 'et_builder' ),
|
||||
'Interior Design Company Blog Page' => esc_html__( 'Interior Design Company Blog Page', 'et_builder' ),
|
||||
'Interior Design Company Contact Page' => esc_html__( 'Interior Design Company Contact Page', 'et_builder' ),
|
||||
'Interior Design Company Home Page' => esc_html__( 'Interior Design Company Home Page', 'et_builder' ),
|
||||
'Interior Design Company Landing Page' => esc_html__( 'Interior Design Company Landing Page', 'et_builder' ),
|
||||
'Interior Design Company Portfolio Page' => esc_html__( 'Interior Design Company Portfolio Page', 'et_builder' ),
|
||||
'Interior Design Company Services Page' => esc_html__( 'Interior Design Company Services Page', 'et_builder' ),
|
||||
'Interior Design Company Shop Page' => esc_html__( 'Interior Design Company Shop Page', 'et_builder' ),
|
||||
'LMS About Page' => esc_html__( 'LMS About Page', 'et_builder' ),
|
||||
'LMS Blog Page' => esc_html__( 'LMS Blog Page', 'et_builder' ),
|
||||
'LMS Contact Page' => esc_html__( 'LMS Contact Page', 'et_builder' ),
|
||||
'LMS Course Page' => esc_html__( 'LMS Course Page', 'et_builder' ),
|
||||
'LMS Courses Page' => esc_html__( 'LMS Courses Page', 'et_builder' ),
|
||||
'LMS Home Page' => esc_html__( 'LMS Home Page', 'et_builder' ),
|
||||
'LMS Landing Page' => esc_html__( 'LMS Landing Page', 'et_builder' ),
|
||||
'LMS Marketing Page' => esc_html__( 'LMS Marketing Page', 'et_builder' ),
|
||||
'LMS Pricing Page' => esc_html__( 'LMS Pricing Page', 'et_builder' ),
|
||||
'Photo Marketplace About Page' => esc_html__( 'Photo Marketplace About Page', 'et_builder' ),
|
||||
'Photo Marketplace Categories Page' => esc_html__( 'Photo Marketplace Categories Page', 'et_builder' ),
|
||||
'Photo Marketplace Contact Page' => esc_html__( 'Photo Marketplace Contact Page', 'et_builder' ),
|
||||
'Photo Marketplace Home Page' => esc_html__( 'Photo Marketplace Home Page', 'et_builder' ),
|
||||
'Photo Marketplace Landing Page' => esc_html__( 'Photo Marketplace Landing Page', 'et_builder' ),
|
||||
'Photo Marketplace Pricing Page' => esc_html__( 'Photo Marketplace Pricing Page', 'et_builder' ),
|
||||
'Photo Marketplace Seller Page' => esc_html__( 'Photo Marketplace Seller Page', 'et_builder' ),
|
||||
'Restaurant About Page' => esc_html__( 'Restaurant About Page', 'et_builder' ),
|
||||
'Restaurant Blog Page' => esc_html__( 'Restaurant Blog Page', 'et_builder' ),
|
||||
'Restaurant Contact Page' => esc_html__( 'Restaurant Contact Page', 'et_builder' ),
|
||||
'Restaurant Gallery Page' => esc_html__( 'Restaurant Gallery Page', 'et_builder' ),
|
||||
'Restaurant Home Page' => esc_html__( 'Restaurant Home Page', 'et_builder' ),
|
||||
'Restaurant Landing Page' => esc_html__( 'Restaurant Landing Page', 'et_builder' ),
|
||||
'Restaurant Shop Page' => esc_html__( 'Restaurant Shop Page', 'et_builder' ),
|
||||
'Restaurant Team Page' => esc_html__( 'Restaurant Team Page', 'et_builder' ),
|
||||
'SaaS Company About Page' => esc_html__( 'SaaS Company About Page', 'et_builder' ),
|
||||
'SaaS Company Careers Page' => esc_html__( 'SaaS Company Careers Page', 'et_builder' ),
|
||||
'SaaS Company Contact Page' => esc_html__( 'SaaS Company Contact Page', 'et_builder' ),
|
||||
'SaaS Company Documentation Page' => esc_html__( 'SaaS Company Documentation Page', 'et_builder' ),
|
||||
'SaaS Company Features Page' => esc_html__( 'SaaS Company Features Page', 'et_builder' ),
|
||||
'SaaS Company Landing Page' => esc_html__( 'SaaS Company Landing Page', 'et_builder' ),
|
||||
'SaaS Company Pricing Page' => esc_html__( 'SaaS Company Pricing Page', 'et_builder' ),
|
||||
'Travel Agency About Page' => esc_html__( 'Travel Agency About Page', 'et_builder' ),
|
||||
'Travel Agency Blog Page' => esc_html__( 'Travel Agency Blog Page', 'et_builder' ),
|
||||
'Travel Agency Contact Page' => esc_html__( 'Travel Agency Contact Page', 'et_builder' ),
|
||||
'Travel Agency Home Page' => esc_html__( 'Travel Agency Home Page', 'et_builder' ),
|
||||
'Travel Agency Landing Page' => esc_html__( 'Travel Agency Landing Page', 'et_builder' ),
|
||||
'Travel Agency Packages Page' => esc_html__( 'Travel Agency Packages Page', 'et_builder' ),
|
||||
'Travel Agency Shop Page' => esc_html__( 'Travel Agency Shop Page', 'et_builder' ),
|
||||
'Travel Agency Team Page' => esc_html__( 'Travel Agency Team Page', 'et_builder' ),
|
||||
'Web Agency Careers Page' => esc_html__( 'Web Agency Careers Page', 'et_builder' ),
|
||||
'Web Agency Contact Page' => esc_html__( 'Web Agency Contact Page', 'et_builder' ),
|
||||
'Web Agency Home Page' => esc_html__( 'Web Agency Home Page', 'et_builder' ),
|
||||
'Web Agency Landing Page' => esc_html__( 'Web Agency Landing Page', 'et_builder' ),
|
||||
'Web Agency Portfolio Page' => esc_html__( 'Web Agency Portfolio Page', 'et_builder' ),
|
||||
'Web Agency Pricing Page' => esc_html__( 'Web Agency Pricing Page', 'et_builder' ),
|
||||
'Web Agency Services Page' => esc_html__( 'Web Agency Services Page', 'et_builder' ),
|
||||
'Wedding About Page' => esc_html__( 'Wedding About Page', 'et_builder' ),
|
||||
'Wedding Blog Page' => esc_html__( 'Wedding Blog Page', 'et_builder' ),
|
||||
'Wedding Contact Page' => esc_html__( 'Wedding Contact Page', 'et_builder' ),
|
||||
'Wedding Details Page' => esc_html__( 'Wedding Details Page', 'et_builder' ),
|
||||
'Wedding Gallery Page' => esc_html__( 'Wedding Gallery Page', 'et_builder' ),
|
||||
'Wedding Home Page' => esc_html__( 'Wedding Home Page', 'et_builder' ),
|
||||
'Yoga Studio About Page' => esc_html__( 'Yoga Studio About Page', 'et_builder' ),
|
||||
'Yoga Studio Blog Page' => esc_html__( 'Yoga Studio Blog Page', 'et_builder' ),
|
||||
'Yoga Studio Classes Page' => esc_html__( 'Yoga Studio Classes Page', 'et_builder' ),
|
||||
'Yoga Studio Contact Page' => esc_html__( 'Yoga Studio Contact Page', 'et_builder' ),
|
||||
'Yoga Studio Home Page' => esc_html__( 'Yoga Studio Home Page', 'et_builder' ),
|
||||
'Yoga Studio Landing Page' => esc_html__( 'Yoga Studio Landing Page', 'et_builder' ),
|
||||
'Yoga Studio Team Page' => esc_html__( 'Yoga Studio Team Page', 'et_builder' ),
|
||||
);
|
40
cloud/i18n/library/layouts-short.php
Normal file
40
cloud/i18n/library/layouts-short.php
Normal file
@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
'About' => esc_html_x( 'About', 'Page', 'et_builder' ),
|
||||
'Blog' => esc_html_x( 'Blog', 'Page', 'et_builder' ),
|
||||
'Contact' => esc_html_x( 'Contact', 'Page', 'et_builder' ),
|
||||
'Careers' => esc_html_x( 'Careers', 'Page', 'et_builder' ),
|
||||
'Case Study' => esc_html_x( 'Case Study', 'Page', 'et_builder' ),
|
||||
'Categories' => esc_html_x( 'Categories', 'Page', 'et_builder' ),
|
||||
'Classes' => esc_html_x( 'Classes', 'Classes Page (Fitness, Training, etc)', 'et_builder' ),
|
||||
'Course' => esc_html_x( 'Course', 'LMS Page', 'et_builder' ),
|
||||
'Courses' => esc_html_x( 'Courses', 'LMS Page', 'et_builder' ),
|
||||
'Designer' => esc_html_x( 'Designer', 'Page', 'et_builder' ),
|
||||
'Details' => esc_html_x( 'Details', 'Event Details Page', 'et_builder' ),
|
||||
'Documentation' => esc_html_x( 'Documentation', 'Documentation Page', 'et_builder' ),
|
||||
'Donate' => esc_html_x( 'Donate', 'Page', 'et_builder' ),
|
||||
'Events' => esc_html_x( 'Events', 'Page', 'et_builder' ),
|
||||
'FAQ' => esc_html_x( 'FAQ', 'Page', 'et_builder' ),
|
||||
'Features' => esc_html_x( 'Features', 'Page', 'et_builder' ),
|
||||
'Gallery 1' => esc_html_x( 'Gallery 1', 'Page', 'et_builder' ),
|
||||
'Gallery 2' => esc_html_x( 'Gallery 2', 'Page', 'et_builder' ),
|
||||
'Gallery 3' => esc_html_x( 'Gallery 3', 'Page', 'et_builder' ),
|
||||
'Gallery' => esc_html_x( 'Gallery', 'Page', 'et_builder' ),
|
||||
'Guide' => esc_html_x( 'Guide', 'Page', 'et_builder' ),
|
||||
'Home' => esc_html_x( 'Home', 'Page', 'et_builder' ),
|
||||
'Landing' => esc_html_x( 'Landing', 'Page', 'et_builder' ),
|
||||
'Market' => esc_html_x( 'Market', 'Page', 'et_builder' ),
|
||||
'Marketing' => esc_html_x( 'Marketing', 'Page', 'et_builder' ),
|
||||
'Menu' => esc_html_x( 'Menu', 'Restaurant Page', 'et_builder' ),
|
||||
'Packages' => esc_html_x( 'Packages', 'Services/Plans Page', 'et_builder' ),
|
||||
'Portfolio' => esc_html_x( 'Portfolio', 'Page', 'et_builder' ),
|
||||
'Pricing' => esc_html_x( 'Pricing', 'Page', 'et_builder' ),
|
||||
'Project 1' => esc_html_x( 'Project 1', 'Page', 'et_builder' ),
|
||||
'Project 2' => esc_html_x( 'Project 2', 'Page', 'et_builder' ),
|
||||
'Seller' => esc_html_x( 'Seller', 'Marketplace Page', 'et_builder' ),
|
||||
'Services' => esc_html_x( 'Services', 'Page', 'et_builder' ),
|
||||
'Shop' => esc_html_x( 'Shop', 'Page', 'et_builder' ),
|
||||
'Sign-Up' => esc_html_x( 'Shop', 'Page', 'et_builder' ),
|
||||
'Team' => esc_html_x( 'Team', 'Page', 'et_builder' ),
|
||||
);
|
25
cloud/i18n/library/packs.php
Normal file
25
cloud/i18n/library/packs.php
Normal file
@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
'Agency' => esc_html_x( 'Agency', 'Business', 'et_builder' ),
|
||||
'Author' => esc_html__( 'Author', 'et_builder' ),
|
||||
'Coffee Shop' => esc_html__( 'Coffee Shop', 'et_builder' ),
|
||||
'Consultant' => esc_html_x( 'Consultant', 'Business', 'et_builder' ),
|
||||
'Copywriter' => esc_html__( 'Copywriter', 'et_builder' ),
|
||||
'Design Agency' => esc_html__( 'Design Agency', 'et_builder' ),
|
||||
'Digital Payments' => esc_html__( 'Digital Payments', 'et_builder' ),
|
||||
'Farmers Market' => esc_html__( 'Farmers Market', 'et_builder' ),
|
||||
'Fashion' => esc_html_x( 'Fashion', 'Layout Pack', 'et_builder' ),
|
||||
'Florist' => esc_html__( 'Florist', 'et_builder' ),
|
||||
'Freelancer' => esc_html__( 'Freelancer', 'et_builder' ),
|
||||
'Interior Design Company' => esc_html__( 'Interior Design Company', 'et_builder' ),
|
||||
'LMS' => esc_html_x( 'LMS', 'Learning Management System', 'et_builder' ),
|
||||
'Photographer' => esc_html__( 'Photographer', 'et_builder' ),
|
||||
'Photo Marketplace' => esc_html__( 'Photo Marketplace', 'et_builder' ),
|
||||
'Restaurant' => esc_html__( 'Restaurant', 'et_builder' ),
|
||||
'SaaS Company' => esc_html__( 'SaaS Company', 'et_builder' ),
|
||||
'Travel Agency' => esc_html__( 'Travel Agency', 'et_builder' ),
|
||||
'Web Agency' => esc_html__( 'Web Agency', 'et_builder' ),
|
||||
'Wedding' => esc_html__( 'Wedding', 'et_builder' ),
|
||||
'Yoga Studio' => esc_html__( 'Yoga Studio', 'et_builder' ),
|
||||
);
|
3
cloud/images/layout.svg
Normal file
3
cloud/images/layout.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
|
||||
<path d="M1 24h6a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1zM25 0h6a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1h-6a1 1 0 0 1-1-1V1a1 1 0 0 1 1-1zM1 12h30a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1zm12 12h18a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1H13a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1zM1 0h18a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1V1a1 1 0 0 1 1-1z" fill="#e7eef5"/>
|
||||
</svg>
|
After Width: | Height: | Size: 455 B |
Reference in New Issue
Block a user