2012-11-01 26 views
3

目前,我在PHP頁面上有一個註冊表單,它允許用戶輸入他們的姓名和電子郵件地址。可能通過MailChimp API提供訂戶的語言?

當按下時,它將觸發一個AJAX POST到服務器,並且接收postdata的PHP腳本將接收它並使用MailChimp PHP API爲用戶註冊(通過listSubscribe())。

這是一個多語種網站,與此問題是MailChimp不知道用戶的語言是什麼時候通過API調用執行註冊。這意味着用戶無論他們的實際語言偏好如何,都會收到他們的MailChimp確認電子郵件(即「您是否確實註冊了此等」)。

我目前的工作方式是爲每種語言創建單獨的列表,根據用戶查看網站的語言將用戶訂閱到相應的列表。這意味着您可以設置MailChimp將默認語言形成爲列表的語言。

這對我來說很不好聽,有沒有更好的方法?這樣做意味着必須爲每種語言設置廣告系列等。

回答

3

不幸的是,它在文檔中沒有很好地闡述。形式自動翻譯的工作方式是通過detecing瀏覽器的語言:

http://kb.mailchimp.com/article/can-you-translate-my-signup-forms-response-emails#auto

這意味着當您訂閱使用他們的表單提交,他們檢測瀏覽器語言,然後發送正確的確認電子郵件,爲例。他們不使用可設置爲表單選項或api的「語言」字段。我通過技術支持在幾次對話中驗證了這一點。

那麼如何在通過api訂閱時設置語言?同樣,在api調用的http頭中設置瀏覽器語言。這對我來說就像一個冠軍。不能說你如何在你的php應用程序中做到這一點,但是在使用Gibbon gem的Rails中,你可以通過'headers'選項將值設置在api調用的http標題中:

gibbon_api.lists.subscribe(headers: {'Accept-Language' => request.env['HTTP_ACCEPT_LANGUAGE']}, all_other_params...) 

至少這種方法對我有用。希望這有助於...

+0

所以沒有辦法通過'mailchimp.lists.batch_subscribe'來完成;我對麼? – Jim

+1

如果您使用V2 Mailchimp API,那麼我認爲如上所述設置「Accept-Language」應該可行,即使批量訂閱也是如此。我只注意到現在有一​​個V3 API,我沒有使用過。他們現在可能會尊重'語言'參數,但您必須對其進行測試。 – Brett

+0

@Brett API V3僅支持'language'參數,因爲它將其設置給訂閱者,但確認郵件仍以列表的默認語言發送。設置「Accept-Language」頭文件顯然是可行的:https://github.com/drewm/mailchimp-api/issues/148 – benface

3

MailChimp中有一個「語言」字段,但我沒有看到通過合併標籤訪問這個字段的方法。通過我的一個列表,我認識每個用戶,MailChimp的語言工具看起來並不可靠。

我會在MailChimp中創建一個表單字段或組,然後添加一個字段,允許用戶通過下拉列表指定他們的首選語言(或根據他們正在查看的內容自動填充),並使用此以合併標籤在您的確認電子郵件中發送定製內容。看到這裏customizing the confirmation process

舉例來說,如果你這樣做使用組發送電子郵件英語,法語,德語或使用INTERESTED合併標籤,其中英語是默認語言西班牙語:

*|INTERESTED:Language:FR,DE,ES|* 
*|INTERESTED:Language:FR|* 
    French content here 
*|END:INTERESTED|* 
*|INTERESTED:Language:DE|* 
    German content here 
*|END:INTERESTED|* 
*|INTERESTED:Language:ES|* 
    Spanish content here 
*|END:INTERESTED|* 
*|ELSE|* 
    English content here for everyone else, even those with an undefined language. 
*|END:INTERESTED|* 
+0

我不知道,你可以使用這樣的表述合併標籤。這似乎是一個很好的答案,謝謝! – benwh

+0

該語言現在有一個合併標籤:'MC_LANGUAGE' – benface

0

對於ChimpKit3(v3)(iOS - objective-c回購)我添加了訂閱者語言以支持MailChimp中回覆郵件的自動翻譯選項。

所以這只是一個將「Accept-Language」字段添加到請求標題的問題。

https://github.com/mailchimp/ChimpKit3/pull/22

Objective-C的例子:

NSDictionary *mailChimpParams = @{@"id": MAILCHIMP_LIST_ID, 
            @"email": @{@"email": [NSString stringWithFormat:@"%@",emailAddress]}, 
            @"language": @"en", 
            @"merge_vars": mergeVars}; 

[[ChimpKit sharedKit] callApiMethod:@"lists/subscribe" 
         withParams:mailChimpParams 
       andCompletionHandler:^(NSURLResponse *response, NSData *data, NSError *error) { ...