| Index: chrome/browser/autofill/autofill_regex_constants.cc.utf8
|
| diff --git a/chrome/browser/autofill/autofill_regex_constants.cc.utf8 b/chrome/browser/autofill/autofill_regex_constants.cc.utf8
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..cba240a135dfc96ae3ac944a4a033ae0abd592a7
|
| --- /dev/null
|
| +++ b/chrome/browser/autofill/autofill_regex_constants.cc.utf8
|
| @@ -0,0 +1,297 @@
|
| +// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +// This file contains UTF8 strings that we want as char arrays. To avoid
|
| +// different compilers, we use a script to convert the UTF8 strings into
|
| +// numeric literals (\x##).
|
| +
|
| +#include "chrome/browser/autofill/autofill_regex_constants.h"
|
| +
|
| +namespace autofill {
|
| +
|
| +/////////////////////////////////////////////////////////////////////////////
|
| +// address_field.cc
|
| +/////////////////////////////////////////////////////////////////////////////
|
| +const char kAttentionIgnoredRe[] = "attention|attn";
|
| +const char kRegionIgnoredRe[] =
|
| + "province|region|other"
|
| + "|provincia" // es
|
| + "|bairro|suburb"; // pt-BR, pt-PT
|
| +const char kCompanyRe[] =
|
| + "company|business|organization|organisation"
|
| + "|firma|firmenname" // de-DE
|
| + "|empresa" // es
|
| + "|societe|société" // fr-FR
|
| + "|ragione.?sociale" // it-IT
|
| + "|会社" // ja-JP
|
| + "|название.?компании" // ru
|
| + "|单位|公司" // zh-CN
|
| + "|회사|직장"; // ko-KR
|
| +const char kAddressLine1Re[] =
|
| + "address.*line|address1|addr1|street"
|
| + "|strasse|straße|hausnummer|housenumber" // de-DE
|
| + "|house.?name" // en-GB
|
| + "|direccion|dirección" // es
|
| + "|adresse" // fr-FR
|
| + "|indirizzo" // it-IT
|
| + "|住所1" // ja-JP
|
| + "|morada|endereço" // pt-BR, pt-PT
|
| + "|Адрес" // ru
|
| + "|地址" // zh-CN
|
| + "|주소.?1"; // ko-KR
|
| +const char kAddressLine1LabelRe[] =
|
| + "address"
|
| + "|adresse" // fr-FR
|
| + "|indirizzo" // it-IT
|
| + "|住所" // ja-JP
|
| + "|地址" // zh-CN
|
| + "|주소"; // ko-KR
|
| +const char kAddressLine2Re[] =
|
| + "address.*line2|address2|addr2|street|suite|unit"
|
| + "|adresszusatz|ergänzende.?angaben" // de-DE
|
| + "|direccion2|colonia|adicional" // es
|
| + "|addresssuppl|complementnom|appartement" // fr-FR
|
| + "|indirizzo2" // it-IT
|
| + "|住所2" // ja-JP
|
| + "|complemento|addrcomplement" // pt-BR, pt-PT
|
| + "|Улица" // ru
|
| + "|地址2" // zh-CN
|
| + "|주소.?2"; // ko-KR
|
| +const char kAddressLine2LabelRe[] =
|
| + "address"
|
| + "|adresse" // fr-FR
|
| + "|indirizzo" // it-IT
|
| + "|地址" // zh-CN
|
| + "|주소"; // ko-KR
|
| +const char kAddressLine3Re[] =
|
| + "address.*line3|address3|addr3|street|line3"
|
| + "|municipio" // es
|
| + "|batiment|residence" // fr-FR
|
| + "|indirizzo3"; // it-IT
|
| +const char kCountryRe[] =
|
| + "country|countries|location"
|
| + "|país|pais" // es
|
| + "|国" // ja-JP
|
| + "|国家" // zh-CN
|
| + "|국가|나라"; // ko-KR
|
| +const char kZipCodeRe[] =
|
| + "zip|postal|post.*code|pcode|^1z$"
|
| + "|postleitzahl" // de-DE
|
| + "|\\bcp\\b" // es
|
| + "|\\bcdp\\b" // fr-FR
|
| + "|\\bcap\\b" // it-IT
|
| + "|郵便番号" // ja-JP
|
| + "|codigo|codpos|\\bcep\\b" // pt-BR, pt-PT
|
| + "|Почтовый.?Индекс" // ru
|
| + "|邮政编码|邮编" // zh-CN
|
| + "|郵遞區號" // zh-TW
|
| + "|우편.?번호"; // ko-KR
|
| +const char kZip4Re[] =
|
| + "zip|^-$|post2"
|
| + "|codpos2"; // pt-BR, pt-PT
|
| +const char kCityRe[] =
|
| + "city|town"
|
| + "|\\bort\\b|stadt" // de-DE
|
| + "|suburb" // en-AU
|
| + "|ciudad|provincia|localidad|poblacion" // es
|
| + "|ville|commune" // fr-FR
|
| + "|localita" // it-IT
|
| + "|市区町村" // ja-JP
|
| + "|cidade" // pt-BR, pt-PT
|
| + "|Город" // ru
|
| + "|市" // zh-CN
|
| + "|分區" // zh-TW
|
| + "|^시[^도·・]|시[·・]?군[·・]?구"; // ko-KR
|
| +const char kStateRe[] =
|
| + "(?<!united )state|county|region|province"
|
| + "|land" // de-DE
|
| + "|county|principality" // en-UK
|
| + "|都道府県" // ja-JP
|
| + "|estado|provincia" // pt-BR, pt-PT
|
| + "|область" // ru
|
| + "|省" // zh-CN
|
| + "|地區" // zh-TW
|
| + "|^시[·・]?도"; // ko-KR
|
| +const char kAddressTypeSameAsRe[] = "same as";
|
| +const char kAddressTypeUseMyRe[] = "use my";
|
| +const char kBillingDesignatorRe[] = "bill";
|
| +const char kShippingDesignatorRe[] = "ship";
|
| +
|
| +/////////////////////////////////////////////////////////////////////////////
|
| +// credit_card_field.cc
|
| +/////////////////////////////////////////////////////////////////////////////
|
| +const char kNameOnCardRe[] =
|
| + "card.?holder|name.?on.?card|ccname|ccfullname|owner"
|
| + "|karteninhaber" // de-DE
|
| + "|nombre.*tarjeta" // es
|
| + "|nom.*carte" // fr-FR
|
| + "|nome.*cart" // it-IT
|
| + "|名前" // ja-JP
|
| + "|Имя.*карты" // ru
|
| + "|信用卡开户名|开户名|持卡人姓名" // zh-CN
|
| + "|持卡人姓名"; // zh-TW
|
| +const char kNameOnCardContextualRe[] =
|
| + "name";
|
| +const char kCardNumberRe[] =
|
| + "card.?number|card.?#|card.?no|ccnum|acctnum"
|
| + "|nummer" // de-DE
|
| + "|credito|numero|número" // es
|
| + "|numéro" // fr-FR
|
| + "|カード番号" // ja-JP
|
| + "|Номер.*карты" // ru
|
| + "|信用卡号|信用卡号码" // zh-CN
|
| + "|信用卡卡號" // zh-TW
|
| + "|카드"; // ko-KR
|
| +const char kCardCvcRe[] =
|
| + "verification|card identification|security code|cvn|cvv|cvc|csc";
|
| +
|
| +// "Expiration date" is the most common label here, but some pages have
|
| +// "Expires", "exp. date" or "exp. month" and "exp. year". We also look
|
| +// for the field names ccmonth and ccyear, which appear on at least 4 of
|
| +// our test pages.
|
| +
|
| +// On at least one page (The China Shop2.html) we find only the labels
|
| +// "month" and "year". So for now we match these words directly; we'll
|
| +// see if this turns out to be too general.
|
| +
|
| +// Toolbar Bug 51451: indeed, simply matching "month" is too general for
|
| +// https://rps.fidelity.com/ftgw/rps/RtlCust/CreatePIN/Init.
|
| +// Instead, we match only words beginning with "month".
|
| +const char kExpirationMonthRe[] =
|
| + "expir|exp.*mo|exp.*date|ccmonth"
|
| + "|gueltig|gültig|monat" // de-DE
|
| + "|fecha" // es
|
| + "|date.*exp" // fr-FR
|
| + "|scadenza" // it-IT
|
| + "|有効期限" // ja-JP
|
| + "|validade" // pt-BR, pt-PT
|
| + "|Срок действия карты" // ru
|
| + "|月"; // zh-CN
|
| +const char kExpirationYearRe[] =
|
| + "exp|^/|year"
|
| + "|ablaufdatum|gueltig|gültig|yahr" // de-DE
|
| + "|fecha" // es
|
| + "|scadenza" // it-IT
|
| + "|有効期限" // ja-JP
|
| + "|validade" // pt-BR, pt-PT
|
| + "|Срок действия карты" // ru
|
| + "|年|有效期"; // zh-CN
|
| +
|
| +// This regex is a little bit nasty, but it is simply requiring exactly two
|
| +// adjacent y's.
|
| +const char kExpirationDate2DigitYearRe[] =
|
| + "exp.*date.*[^y]yy([^y]|$)";
|
| +const char kExpirationDateRe[] =
|
| + "expir|exp.*date"
|
| + "|gueltig|gültig" // de-DE
|
| + "|fecha" // es
|
| + "|date.*exp" // fr-FR
|
| + "|scadenza" // it-IT
|
| + "|有効期限" // ja-JP
|
| + "|validade" // pt-BR, pt-PT
|
| + "|Срок действия карты"; // ru
|
| +const char kCardIgnoredRe[] =
|
| + "^card";
|
| +
|
| +
|
| +/////////////////////////////////////////////////////////////////////////////
|
| +// email_field.cc
|
| +/////////////////////////////////////////////////////////////////////////////
|
| +const char kEmailRe[] =
|
| + "e.?mail"
|
| + "|メールアドレス" // ja-JP
|
| + "|Электронной.?Почты" // ru
|
| + "|邮件|邮箱" // zh-CN
|
| + "|電郵地址" // zh-TW
|
| + "|(이메일|전자.?우편|[Ee]-?mail)(.?주소)?"; // ko-KR
|
| +
|
| +
|
| +/////////////////////////////////////////////////////////////////////////////
|
| +// name_field.cc
|
| +/////////////////////////////////////////////////////////////////////////////
|
| +const char kNameIgnoredRe[] =
|
| + "user.?name|user.?id|nickname|maiden name|title|prefix|suffix"
|
| + "|vollständiger.?name" // de-DE
|
| + "|用户名" // zh-CN
|
| + "|(사용자.?)?아이디|사용자.?ID"; // ko-KR
|
| +const char kNameRe[] =
|
| + "^name|full.?name|your.?name|customer.?name|firstandlastname|bill.?name"
|
| + "|ship.?name"
|
| + "|nombre.*y.*apellidos" // es
|
| + "|^nom" // fr-FR
|
| + "|お名前|氏名" // ja-JP
|
| + "|^nome" // pt-BR, pt-PT
|
| + "|姓名" // zh-CN
|
| + "|성명"; // ko-KR
|
| +const char kNameSpecificRe[] =
|
| + "^name"
|
| + "|^nom" // fr-FR
|
| + "|^nome"; // pt-BR, pt-PT
|
| +const char kFirstNameRe[] =
|
| + "first.*name|initials|fname|first$"
|
| + "|vorname" // de-DE
|
| + "|nombre" // es
|
| + "|forename|prénom|prenom" // fr-FR
|
| + "|名" // ja-JP
|
| + "|nome" // pt-BR, pt-PT
|
| + "|Имя" // ru
|
| + "|이름"; // ko-KR
|
| +const char kMiddleInitialRe[] = "middle.*initial|m\\.i\\.|mi$|\\bmi\\b";
|
| +const char kMiddleNameRe[] =
|
| + "middle.*name|mname|middle$"
|
| + "|apellido.?materno|lastlastname"; // es
|
| +const char kLastNameRe[] =
|
| + "last.*name|lname|surname|last$|secondname"
|
| + "|nachname" // de-DE
|
| + "|apellido" // es
|
| + "|famille|^nom" // fr-FR
|
| + "|cognome" // it-IT
|
| + "|姓" // ja-JP
|
| + "|morada|apelidos|surename|sobrenome" // pt-BR, pt-PT
|
| + "|Фамилия" // ru
|
| + "|성[^명]?"; // ko-KR
|
| +
|
| +/////////////////////////////////////////////////////////////////////////////
|
| +// phone_field.cc
|
| +/////////////////////////////////////////////////////////////////////////////
|
| +const char kPhoneRe[] =
|
| + "phone|mobile"
|
| + "|telefonnummer" // de-DE
|
| + "|telefono|teléfono" // es
|
| + "|telfixe" // fr-FR
|
| + "|電話" // ja-JP
|
| + "|telefone|telemovel" // pt-BR, pt-PT
|
| + "|телефон" // ru
|
| + "|电话" // zh-CN
|
| + "|(전화|핸드폰|휴대폰|휴대전화)(.?번호)?"; // ko-KR
|
| +const char kCountryCodeRe[] =
|
| + "country.*code|ccode|_cc";
|
| +const char kAreaCodeNotextRe[] =
|
| + "^\\($";
|
| +const char kAreaCodeRe[] =
|
| + "area.*code|acode|area"
|
| + "|지역.?번호"; // ko-KR
|
| +const char kFaxRe[] =
|
| + "fax"
|
| + "|télécopie|telecopie" // fr-FR
|
| + "|ファックス" // ja-JP
|
| + "|факс" // ru
|
| + "|传真" // zh-CN
|
| + "|傳真" // zh-TW
|
| + "|팩스(.?번호)?"; // ko-KR
|
| +const char kPhonePrefixSeparatorRe[] =
|
| + "^-$|^\\)$";
|
| +const char kPhoneSuffixSeparatorRe[] =
|
| + "^-$";
|
| +const char kPhonePrefixRe[] =
|
| + "prefix|exchange"
|
| + "|preselection" // fr-FR
|
| + "|ddd"; // pt-BR, pt-PT
|
| +const char kPhoneSuffixRe[] =
|
| + "suffix";
|
| +const char kPhoneExtensionRe[] =
|
| + "\\bext|ext\\b|extension"
|
| + "|ramal"; // pt-BR, pt-PT
|
| +
|
| +} // namespace autofill
|
|
|