I created a dutch contactform a few months ago but now the clients wants a multi language site. Dutch and English. I use Falang to translate the site and I used the multi Language event in Chronofom to translate my form but that doesn't work.
I've changed the labels of my elements in #naam#, #email# etc....
Than I added 2 multi language events in the on load where I put the text #naam#=name: etc
Than I save everything but when I open my website I can see the form but not the translations.
My labels are now #naam#, #email# etc, and no translations.
It is driving me crazy. I searched for the problem 2 days now. What am I doing wrong?
[attachment=0]Doc1.pdf[/attachment]
Your settings look good to me. I don't know anything about Falang; maybe it isn't setting the Joomla! language tag that ChronoForms looks at. Try putting this code into a Custom Code action in the On Load event just to check:
<?php
$lang =& JFactory::getLanguage();
$tag = $lang->getTag();
echo'<div>$tag: '.print_r($tag, true).'</div>';
?>
Bob
I put your code in a custom code and I get the same form except with pages of codes. I give a little example but that is only 1/4 of the code.
$lang: JLanguage Object ( [debug:protected] => 0 [default:protected] => en-GB [orphans:protected] => Array ( ) [metadata:protected] => Array ( [name] => English (United Kingdom) [tag] => en-GB [rtl] => 0 [locale] => en_GB.utf8, en_GB.UTF-8, en_GB, eng_GB, en, english, english-uk, uk, gbr, britain, england, great britain, uk, united kingdom, united-kingdom [firstDay] => 0 ) [locale:protected] => [lang:protected] => en-GB [paths:protected] => Array ( [joomla] => Array ( [/home/hild/domains/hildesbakeaway.nl/public_html/language/en-GB/en-GB.ini] => 1 ) [plg_system_easycalccheckplus] => Array ( [/home/hild/domains/hildesbakeaway.nl/public_html/administrator/language/en-GB/en-GB.plg_system_easycalccheckplus.ini] => 1 ) [plg_system_falangdriver] => Array ( [/home/hild/domains/hildesbakeaway.nl/public_html/administrator/language/en-GB/en-GB.plg_system_falangdriver.ini] => [/home/hild/domains/hildesbakeaway.nl/public_html/plugins/system/falangdriver/language/en-GB/en-GB.plg_system_falangdriver.ini] => 1 ) [plg_system_logout] => Array ( [/home/hild/domains/hildesbakeaway.nl/public_html/administrator/language/en-GB/en-GB.plg_system_logout.ini] => 1 ) [lib_joomla] => Array ( [/home/hild/domains/hildesbakeaway.nl/public_html/language/en-GB/en-GB.lib_joomla.ini] => 1 ) [plg_system_modalizer] => Array ( [/home/hild/domains/hildesbakeaway.nl/public_html/administrator/language/en-GB/en-GB.plg_system_modalizer.ini] => 1 ) [tpl_template_hba] => Array ( [/home/hild/domains/hildesbakeaway.nl/public_html/language/en-GB/en-GB.tpl_template_hba.ini] => [/home/hild/domains/hildesbakeaway.nl/public_html/templates/template_hba/language/en-GB/en-GB.tpl_template_hba.ini] => ) [com_chronoforms] => Array ( [/home/hild/domains/hildesbakeaway.nl/public_html/language/en-GB/en-GB.com_chronoforms.ini] => [/home/hild/domains/hildesbakeaway.nl/public_html/components/com_chronoforms/language/en-GB/en-GB.com_chronoforms.ini] => ) ) [errorfiles:protected] => Array ( ) [strings:protected] => Array ( [JERROR_PARSING_LANGUAGE_FILE] => : error(s) in line(s) %s [ERROR] => Error [MESSAGE] => Message [NOTICE] => Notice [WARNING] => Warning [J1] => 1 [J2] => 2 [J3] => 3 [J4] => 4 [J5] => 5 [J10] => 10 [J15] => 15 [J20] => 20 [J25] => 25 [J30] => 30 [J50] => 50 [J100] => 100 [JACTION_ADMIN] => Configure [JACTION_ADMIN_GLOBAL] => Super Admin [JACTION_COMPONENT_SETTINGS] => Component Settings [JACTION_CREATE] => Create [JACTION_DELETE] => Delete [JACTION_EDIT] => Edit [JACTION_EDITOWN] => Edit Own [JACTION_EDITSTATE] => Edit State [JACTION_LOGIN_ADMIN] => Admin Login [JACTION_LOGIN_SITE] => Site Login [JACTION_MANAGE] => Access Component [JADMINISTRATOR] => Administrator [JALL] => All [JALL_LANGUAGE] => All [JARCHIVED] => Archived [JAUTHOR] => Author [JCANCEL] => Cancel [JCATEGORY] => Category [JDATE] => Date [JDEFAULT] => Default [JDETAILS] => Details [JDISABLED] => Disabled [JEDITOR] => Editor [JENABLED] => Enabled [JFALSE] => False [JFEATURED] => Featured [JHIDE] => Hide [JINVALID_TOKEN] => Invalid Token [JLOGIN] => Log in [JLOGOUT] => Log out [JNEW] => New [JNEXT] => Next [JNO] => no [JNONE] => None [JNOTICE] => Notice [JOFF] => Off [JOFFLINE_MESSAGE] => This site is down for maintenance.
Please check back again soon. [JON] => On [JOPTIONS] => Options [JPAGETITLE] => %1$s - %2$s [JPREV] => Prev [JPREVIOUS] => Previous [JPUBLISHED] => Published [JREGISTER] => Register [JREQUIRED] => Required [JSAVE] => Save [JSHOW] => Show [JSITE] => Site [JSTATUS] => Status [JSUBMIT] => Submit [JTRASH] => Trash [JTRASHED] => Trashed [JTRUE] => True [JUNPUBLISHED] => Unpublished [JYEAR] => Year [JYES] => yes [JBROWSERTARGET_MODAL] => Modal [JBROWSERTARGET_NEW] => Open in new window [JBROWSERTARGET_PARENT] => Open in parent window [JBROWSERTARGET_POPUP] => Open in popup [JERROR_ALERTNOAUTHOR] => You are not authorised to view this resource. [JERROR_ALERTNOTEMPLATE] => The template for this display is not available. Please contact a Site administrator. [JERROR_AN_ERROR_HAS_OCCURRED] => An error has occurred. [JERROR_ERROR] => Error [JERROR_LAYOUT_AN_OUT_OF_DATE_BOOKMARK_FAVOURITE] => an out-of-date bookmark/favourite [JERROR_LAYOUT_ERROR_HAS_OCCURRED_WHILE_PROCESSING_YOUR_REQUEST] => An error has occurred while processing your request. [JERROR_LAYOUT_GO_TO_THE_HOME_PAGE] => Go to the Home Page [JERROR_LAYOUT_HOME_PAGE] => Home Page [JERROR_LAYOUT_SEARCH_PAGE] => Search this site [JERROR_LAYOUT_MIS_TYPED_ADDRESS] => a mistyped address [JERROR_LAYOUT_NOT_ABLE_TO_VISIT] => You may not be able to visit this page because of: [JERROR_LAYOUT_PAGE_NOT_FOUND] => The requested page cannot be found. [JERROR_LAYOUT_PLEASE_CONTACT_THE_SYSTEM_ADMINISTRATOR] => If difficulties persist, please contact the System Administrator of this site and report the error below. [JERROR_LAYOUT_PLEASE_TRY_ONE_OF_THE_FOLLOWING_PAGES] => Please try one of the following pages: [JERROR_LAYOUT_REQUESTED_RESOURCE_WAS_NOT_FOUND] => The requested resource was not found. [JERROR_LAYOUT_SEARCH] => You may wish to search the site or visit the home page. [JERROR_LAYOUT_SEARCH_ENGINE_OUT_OF_DATE_LISTING] => a search engine that has an out-of-date listing for this site [JERROR_LAYOUT_YOU_HAVE_NO_ACCESS_TO_THIS_PAGE] => you have no access to this page [JERROR_LOGIN_DENIED] => You cannot access the private section of this site. [JERROR_NOLOGIN_BLOCKED] => Login denied! Your account has either been blocked or you have not activated it yet. [JERROR_TABLE_BIND_FAILED] => hmm %s ... [JERROR_USERS_PROFILE_NOT_FOUND] => User profile not found [JFIELD_ACCESS_DESC] => Access level for this content [JFIELD_ACCESS_LABEL] => Access [JFIELD_ALIAS_DESC] => The Alias will be used in the SEF URL. Leave this blank and Joomla! will fill in a default value from the title. This value will depend on the SEO settings (Global Configuration->Site).
Using Unicode will produce UTF8 aliases. You may also enter manually any utf8 character. Spaces and some forbidden characters will be changed to hyphens.
When using default transliteration it will produce an alias in lower case and with dashes instead of spaces. You may enter the Alias manually. Use lowercase letters and hyphens (-). No spaces or underscores are allowed. Default value will be a date and time if the title is typed in non-latin letters . [JFIELD_ALIAS_LABEL] => Alias [JFIELD_CATEGORY_DESC] => Category [JFIELD_LANGUAGE_DESC] => Assign a language to this article. [JFIELD_LANGUAGE_LABEL] => Language [JFIELD_META_DESCRIPTION_DESC] => Meta data description [JFIELD_META_DESCRIPTION_LABEL] => Meta Description [JFIELD_META_KEYWORDS_DESC] => Keywords describing the content [JFIELD_META_KEYWORDS_LABEL] => Keywords [JFIELD_META_RIGHTS_DESC] => Describe what rights others have to use this content. [JFIELD_META_RIGHTS_LABEL] => Rights for content [JFIELD_ORDERING_DESC] => Ordering of the article within the category [JFIELD_ORDERING_LABEL] => Ordering [JFIELD_PUBLISHED_DESC] => Set publication status [JFIELD_TITLE_DESC] => Title for the article [JGLOBAL_ARTICLE_MUST_HAVE_TEXT] => Article must have some text [JGLOBAL_ARTICLES] => Articles [JGLOBAL_AUTH_ACCESS_DENIED] => Access Denied [JGLOBAL_AUTH_ACCESS_GRANTED] => Access Granted [JGLOBAL_AUTH_BIND_FAILED] => Failed binding to LDAP server [JGLOBAL_AUTH_CANCEL] => Authentication cancelled [JGLOBAL_AUTH_EMPTY_PASS_NOT_ALLOWED] => Empty password not allowed [JGLOBAL_AUTH_FAIL] => Authentication failed [JGLOBAL_AUTH_FAILED] => Failed to authenticate: %s [JGLOBAL_AUTH_INCORRECT] => Incorrect username/password [JGLOBAL_AUTH_INVALID_PASS] => Invalid password [JGLOBAL_AUTH_NO_BIND] => Unable to bind to LDAP [JGLOBAL_AUTH_NO_CONNECT] => Unable to connect to LDAP server [JGLOBAL_AUTH_NO_REDIRECT] => Could not redirect to server: %s [JGLOBAL_AUTH_NO_USER] => User does not exist [JGLOBAL_AUTH_NOT_CREATE_DIR] => Could not create the FileStore directory %s. Please check the effective permissions. [JGLOBAL_AUTH_PASS_BLANK] => LDAP can not have blank password [JGLOBAL_AUTH_UNKNOWN_ACCESS_DENIED] => Result Unknown. Access Denied [JGLOBAL_AUTH_USER_BLACKLISTED] => User is blacklisted [JGLOBAL_AUTH_USER_NOT_FOUND] => Unable to find user [JGLOBAL_AUTO] => Auto [JGLOBAL_CATEGORY_NOT_FOUND] => Category not found [JGLOBAL_CLICK_TO_SORT_THIS_COLUMN] => Click to sort by this column [JGLOBAL_CREATED_DATE_ON] => Created on %s [JGLOBAL_DESCRIPTION] => Description [JGLOBAL_DISPLAY_NUM] => Display # [JGLOBAL_EDIT] => Edit [JGLOBAL_EMAIL] => Email [JGLOBAL_FIELD_CREATED_BY_ALIAS_DESC] => Uses another name than the author's for display [JGLOBAL_FIELD_CREATED_BY_ALIAS_LABEL] => Author's Alias [JGLOBAL_FIELD_FEATURED_DESC] => Assign the article to the featured blog layout [JGLOBAL_FIELD_FEATURED_LABEL] => Featured [JGLOBAL_FIELD_PUBLISH_DOWN_DESC] => An optional date to Stop Publishing [JGLOBAL_FIELD_PUBLISH_DOWN_LABEL] => Finish Publishing [JGLOBAL_FIELD_PUBLISH_UP_DESC] => An optional date to Start Publishing [JGLOBAL_FIELD_PUBLISH_UP_LABEL] => Start Publishing [JGLOBAL_FILTER_BUTTON] => Filter [JGLOBAL_FILTER_LABEL] => Filter [JGLOBAL_FULL_TEXT] => Full Text [JGLOBAL_GT] => > [JGLOBAL_HITS] => Hits [JGLOBAL_ICON_SEP] => | [JGLOBAL_INHERIT] => Inherit [JGLOBAL_INTRO_TEXT] => Intro Text [JGLOBAL_LEFT] => Left [JGLOBAL_LT] => < [JGLOBAL_NEWITEMSLAST_DESC] => New items default to the last position. Ordering can be changed after this item has been saved. [JGLOBAL_NUM] => # [JGLOBAL_PASSWORD] => Password [JGLOBAL_PRINT] => Print [JGLOBAL_RECORD_NUMBER] => Record ID: %d [JGLOBAL_REMEMBER_ME] => Remember me [JGLOBAL_RESOURCE_NOT_FOUND] => Resource not found [JGLOBAL_RIGHT] => Right [JGLOBAL_SUBCATEGORIES] => Subcategories [JGLOBAL_TITLE] => Title [JGLOBAL_USE_GLOBAL] => Use Global [JGLOBAL_USERNAME] => User Name [JGLOBAL_VALIDATION_FORM_FAILED] => Invalid form [JGLOBAL_YOU_MUST_LOGIN_FIRST] => Please login first [JGRID_HEADING_ACCESS] => Access [JGRID_HEADING_ID] => ID [JGRID_HEADING_LANGUAGE] => Language [JLIB_DATABASE_ERROR_ADAPTER_MYSQL] => The MySQL adapter 'mysql' is not available. [JLIB_DATABASE_ERROR_ADAPTER_MYSQLI] => The MySQL adapter 'mysqli' is not available. [JLIB_DATABASE_ERROR_CONNECT_DATABASE] => Unable to connect to the Database: %s [JLIB_DATABASE_ERROR_CONNECT_MYSQL] => Could not connect to MySQL. [JLIB_DATABASE_ERROR_DATABASE_CONNECT] => Could not connect to database [JLIB_DATABASE_ERROR_LOAD_DATABASE_DRIVER] => Unable to load Database Driver: %s [JLIB_ERROR_INFINITE_LOOP] => Infinite loop detected in JError [JOPTION_SELECT_ACCESS] => - Select Access - [JOPTION_SELECT_CATEGORY] => - Select Category - [JOPTION_SELECT_LANGUAGE] => - Select Language - [JOPTION_SELECT_PUBLISHED] => - Select Status - [JOPTION_USE_DEFAULT] => - Use Default - [JSEARCH_FILTER_CLEAR] => Clear [JSEARCH_FILTER_LABEL] => Filter [JSEARCH_FILTER_SUBMIT] => Search [DATE_FORMAT_LC] => l, d F Y [DATE_FORMAT_LC1] => l, d F Y [DATE_FORMAT_LC2] => l, d F Y H:i [DATE_FORMAT_LC3] => d F Y [DATE_FORMAT_LC4] => Y-m-d [DATE_FORMAT_JS1] => y-m-d [JANUARY_SHORT] => Jan [JANUARY] => January [FEBRUARY_SHORT] => Feb [FEBRUARY] => February [MARCH_SHORT] => Mar [MARCH] => March [APRIL_SHORT] => Apr [APRIL] => April [MAY_SHORT] => May [MAY] => May [JUNE_SHORT] => Jun [JUNE] => June [JULY_SHORT] => Jul [JULY] => July [AUGUST_SHORT] => Aug [AUGUST] => August [SEPTEMBER_SHORT] => Sep [SEPTEMBER] => September [OCTOBER_SHORT] => Oct [OCTOBER] => October [NOVEMBER_SHORT] => Nov [NOVEMBER] => November [DECEMBER_SHORT] => Dec [DECEMBER] => December [SAT] => Sat [SATURDAY] => Saturday [SUN] => Sun [SUNDAY] => Sunday [MON] => Mon [MONDAY] => Monday [TUE] => Tue [TUESDAY] => Tuesday [WED] => Wed [WEDNESDAY] => Wednesday [THU] => Thu [THURSDAY] => Thursday [FRI] => Fri [FRIDAY] => Friday [UTC__12_00__INTERNATIONAL_DATE_LINE_WEST] => (UTC -12:00) International Date Line West [UTC__11_00__MIDWAY_ISLAND__SAMOA] => (UTC -11:00) Midway Island, Samoa [UTC__10_00__HAWAII] => (UTC -10:00) Hawaii [UTC__09_30__TAIOHAE__MARQUESAS_ISLANDS] => (UTC -09:30) Taiohae, Marquesas Islands [UTC__09_00__ALASKA] => (UTC -09:00) Alaska [UTC__08_00__PACIFIC_TIME__US__AMP__CANADA_] => (UTC -08:00) Pacific Time (US & Canada) [UTC__07_00__MOUNTAIN_TIME__US__AMP__CANADA_] => (UTC -07:00) Mountain Time (US & Canada) [UTC__06_00__CENTRAL_TIME__US__AMP__CANADA___MEXICO_CITY] => (UTC -06:00) Central Time (US & Canada), Mexico City [UTC__05_00__EASTERN_TIME__US__AMP__CANADA___BOGOTA__LIMA] => (UTC -05:00) Eastern Time (US & Canada), Bogota, Lima [UTC__04_30__VENEZUELA] => (UTC -04:30) Venezuela [UTC__04_00__ATLANTIC_TIME__CANADA___CARACAS__LA_PAZ] => (UTC -04:00) Atlantic Time (Canada), Caracas, La Paz [UTC__03_30__ST__JOHN_S__NEWFOUNDLAND__LABRADOR] => (UTC -03:30) St. John's, Newfoundland, Labrador [UTC__03_00__BRAZIL__BUENOS_AIRES__GEORGETOWN] => (UTC -03:00) Brazil, Buenos Aires, Georgetown [UTC__02_00__MID_ATLANTIC] => (UTC -02:00) Mid-Atlantic [UTC__01_00__AZORES__CAPE_VERDE_ISLANDS] => (UTC -01:00) Azores, Cape Verde Islands [UTC_00_00__WESTERN_EUROPE_TIME__LONDON__LISBON__CASABLANCA] => (UTC 00:00) Western Europe Time, London, Lisbon, Casablanca [UTC__01_00__AMSTERDAM__BERLIN__BRUSSELS__COPENHAGEN__MADRID__PARIS] => (UTC +01:00) Amsterdam, Berlin, Brussels, Copenhagen, Madrid, Paris [UTC__02_00__ISTANBUL__JERUSALEM__KALININGRAD__SOUTH_AFRICA] => (UTC +02:00) Istanbul, Jerusalem, Kaliningrad, South Africa [UTC__03_00__BAGHDAD__RIYADH__MOSCOW__ST__PETERSBURG] => (UTC +03:00) Baghdad, Riyadh, Moscow, St. Petersburg [UTC__03_30__TEHRAN] => (UTC +03:30) Tehran [UTC__04_00__ABU_DHABI__MUSCAT__BAKU__TBILISI] => (UTC +04:00) Abu Dhabi, Muscat, Baku, Tbilisi [UTC__04_30__KABUL] => (UTC +04:30) Kabul [UTC__05_00__EKATERINBURG__ISLAMABAD__KARACHI__TASHKENT] => (UTC +05:00) Ekaterinburg, Islamabad, Karachi, Tashkent [UTC__05_30__BOMBAY__CALCUTTA__MADRAS__NEW_DELHI__COLOMBO] => (UTC +05:30) Mumbai, Calcutta, Madras, New Delhi, Colombo [UTC__05_45__KATHMANDU] => (UTC +05:45) Kathmandu [UTC__06_00__ALMATY__DHAKA] => (UTC +06:00) Almaty, Dhaka [UTC__06_30__YAGOON] => (UTC +06:30) Yagoon [UTC__07_00__BANGKOK__HANOI__JAKARTA__PHNOM_PENH] => (UTC +07:00) Bangkok, Hanoi, Jakarta, Phnom Penh [UTC__08_00__BEIJING__PERTH__SINGAPORE__HONG_KONG] => (UTC +08:00) Beijing, Perth, Singapore, Hong Kong [UTC__08_00__WESTERN_AUSTRALIA] => (UTC +08:00) Western Australia [UTC__09_00__TOKYO__SEOUL__OSAKA__SAPPORO__YAKUTSK] => (UTC +09:00) Tokyo, Seoul, Osaka, Sapporo, Yakutsk [UTC__09_30__ADELAIDE__DARWIN__YAKUTSK] => (UTC +09:30) Adelaide, Darwin, Yakutsk [UTC__10_00__EASTERN_AUSTRALIA__GUAM__VLADIVOSTOK] => (UTC +10:00) Eastern Australia, Guam, Vladivostok [UTC__10_30__LORD_HOWE_ISLAND__AUSTRALIA_] => (UTC +10:30) Lord Howe Island (Australia) [UTC__11_00__MAGADAN__SOLOMON_ISLANDS__NEW_CALEDONIA] => (UTC +11:00) Magadan, Solomon Islands, New Caledonia [UTC__11_30__NORFOLK_ISLAND] => (UTC +11:30) Norfolk Island [UTC__12_00__AUCKLAND__WELLINGTON__FIJI__KAMCHATKA] => (UTC +12:00) Auckland, Wellington, Fiji, Kamchatka [UTC__12_45__CHATHAM_ISLAND] => (UTC +12:45) Chatham Island [UTC__13_00__TONGA] => (UTC +13:00) Tonga [UTC__14_00__KIRIBATI] => (UTC +14:00) Kiribati [PHPMAILER_PROVIDE_ADDRESS] => You must provide at least one recipient email address. [PHPMAILER_MAILER_IS_NOT_SUPPORTED] => Mailer is not supported. [PHPMAILER_EXECUTE] => Could not execute: [PHPMAILER_INSTANTIATE] => Could not instantiate mail function. [PHPMAILER_AUTHENTICATE] => SMTP Error! Could not authenticate. [PHPMAILER_FROM_FAILED] => The following from address failed: [PHPMAILER_RECIPIENTS_FAILED] => SMTP Error! The following recipients failed: [PHPMAILER_DATA_NOT_ACCEPTED] => SMTP Error! Data not accepted. [PHPMAILER_CONNECT_HOST] => SMTP Error! Could not connect to SMTP host. [PHPMAILER_FILE_ACCESS] => Could not access file: [PHPMAILER_FILE_OPEN] => File Error: Could not open file: [PHPMAILER_ENCODING] => Unknown encoding: [PHPMAILER_SIGNING_ERROR] => Signing error: [PHPMAILER_SMTP_ERROR] => SMTP server error: [PHPMAILER_EMPTY_MESSAGE] => Empty message body [PHPMAILER_INVALID_ADDRESS] => Invalid address [PHPMAILER_VARIABLE_SET] => Cannot set or reset variable: [PHPMAILER_SMTP_CONNECT_FAILED] => SMTP connect failed [PHPMAILER_TLS] => Could not start TLS [PLG_ECC_XML_DESCRIPTION] => Protects Joomla! core forms and 3rd party extensions through the integration of anti-spam (reCaptcha, Akismet, Honeypot Project, StopForumSpam, Mollom, Bot-Trap, Botscout) services and adds an arithmetic problem, a hidden field and a time lock.
Supported 3rd party extensions: Community Builder, DFContact, Easybook Reloaded, FoxContact, FlexiContact, Kunena Forum and Phoca Guestbook
The plugin can also protect the backend with a token.
Sorry about that - it's just this bit that I wanted: [tag] => en-GB. Do you have a Multi-Language action for en-GB?
Bob
PS I've updated the previous snippet to just show the tag
I have for both the dutch as the enlish language een event.
I put an example of my english one wit this post.
But both languages doesn't work.
By all means email or PM me the site URL and a SuperAdmin login and I'll take a quick look.
Bob
I don't see anything here - could you have sent it to Max instead of to me??
Bob
I have send it again.....
Fixed. I moved the Show HTML action up so that the Multi-Language actions are the last ones in the On Load event.
Bob
It keeps saying, I entered the wrong code but the code I entered are correct. I tried it a few different times. What can I do about that.
Also fixed, the Captcha element had the wrong name, I replaced it with a new Captcha element.
Bob
One quick and hopefully last question. If I want to translate the confirmation mail people are getting, does that work the same way as translating the form? do I put the translations before of after the email events? I will try to finish the form tommorrow morning.