My app has been localized to multiple languages and is to be distributed worldwide. I'm having trouble understanding how to insert metadata and keywords that would be appropriate for each language of the many stores that it will appear in. What am I missing?
It seems that I will run out of number of allowed characters if I try to insert metadata and keywords for multiple languages all into the one field that I see for each. Is there another way to accomplish this?
I understand that keywords can't be changed once the app has been submitted/uploaded. What can I do to work around that if I want to localize my keywords?
you can edit your Metadata any time you want. logon to itunesconnect-> manage application -> select your application-> click on view details. In app details page you have a "Metadata and Uploads" section. next to the section title there is an edit button, it allow you to edit some details in metadata.
And also you can add metadata in different languages. For that first you have to choose your language from the drop down menu on the right hand side. here it will list the languages that your app supports. this value is taking from your app's info.plist (means what are the languages you add in localisation). Select any language from the drop down and then press edit button. Here you can add metadata for that language and it will displayed on the particular store
Related
I am writing an iOS app that requires several pieces of information to be entered. I am trying to do this is the most iOS idiomatic way.
The user must:
Select faulty PC from list
Select fault type from list
Enter fault detail text
Enter shipping details
AC Adapter? - boolean
Shipping address - text view
Contact No - text box
Cost Centre - text box
My gut instinct was for a wizard with each major item on a separate view, with the shipping details as a form on a single view. However, I don't see any wizard data entry like that in Apple Apps.
What do people consider best? Multiple views as described, or a single table view with disclosure buttons for each major item to navigate to selection/entry screens. In that scenario, should the shipping details be a single table cell on the main page or multiple elements?
A good "wizard data entry" example from Apple is the one you have to use every time iOs is updated. However it is inconvenient to fill any kind of a form this way, using a table view instead is a good way to show relatively simple forms.
If the order of filling in the form doesn't matter, use Calendar app Add event style, if it is important, add/remove sections as user enters/removes the data (similar to Settings > Wi-Fi).
I'm in the early stages of trying to learn Orchard, and I'm still seem to be struggling with the basics on how to build a page containing a multitude of various content that can be easily managed by non-technical users.
Ideally, what I'm trying to do is the following, I just can't figure out how to fit it into the Orchard architecture using Content Types, Parts, Fields, Widgets, Zones, etc. Also, since I'm still learning, I'm also trying to avoid any custom modules, or hard-coding content into the site (though I'm open to the idea, if that's the best way to get it done!).
Goal: Create a "home page" layout containing a Menu, Image slideshow, and several feature descriptions. For each image in the slideshow, I need a title, sub-title, description, and an image. To make this easy for non-technical users to manage, I would like to define the HTML template (custom Content Type, Part, or whatever), and allow authors to specify just those well-defined properties. I tried using Content Parts for this, but unfortunately, I can only have one Content Part of a particular type on a piece of Content. I also saw recommendations to create multiple Content Parts with the same set of properties, but I don't know how many images will be displayed (and I don't want to assign an arbitrary number).
I need to do something similar for feature descriptions, allowing authors to specify an image, title, description, and a page to link to. I'm running into the same problem as above, I'm not sure how to allow authors to specify a finite list of content, but have each content item be well-defined.
So far, the best option appears to be creating some sort of custom widget to "host" the content, but for some reason, my gut tells me that creating a custom layer for a single page just to specify which content to display is abusing the purpose of layers, which is begin able to customize a particular layout based on some criteria (whether or not the user is authenticated, for example).
I hope that made sense, and I apologize that it took so many words to explain my issue, I've just really reached my peak of frustration, and although I think that the Orchard guys definitely have it figured out in terms of architecture, I just can't get past these seemingly simple problems to build a simple website.
I greatly appreciate any tips, suggestions, advice this community has to offer!
TIA, -Jeremy
What you defined in Orchard terms is a Content Type named Feature.
Go to Contents -> Content Type, and click Create.
Select those parts by default:
Title, because you want your authors to provide a nice title/name for the features
Autoroute, which will create a SEO friendly url based on the Title (can be customized)
Click Save
Add specific Fields
SubTitle, of type TextField. Configure it to Default, Required.
Description, of type TextField. Configure it to TextArea, Required.
Image, of type Media Picker. Configure it to Required.
You can add some Hints to each fields, which will be displayed in the Feature editor to describe what to enter in each field. Very useful for authors.
Now you can create Features by clicking on the link in the top left part of the Dashboard.
Next step is to put those features on the homepage. What I suggest is to create a Projection which will be set as the homepage. A Projection is just a Page with an Url, which will display the result of a query as its content. The Query in your case will be "Give me all Features ordered by Creation Date".
In the dashboard, click on Queries
Click on "Create a new Query"
Enter "All Features"
Click on "Add a new Filter"
Select Content Type, then select Feature, Save
Click on "Add a sort Criterium"
Select "Creation Date", then Descending, Save
At this point, you can already preview the result of the query by clicking on Preview. But what we want is a front-end page.
Create a new Projection by clicking on Projection in the "New" section of the dashboard (top left again)
- Give it a title, and don't forget to check "Set as Home page" to make it the home page
- Select the only available query, named "All Featrues"
- Save
On the home page you should see all the features, ordered by date. But what you want is a slider. At that point you need two more steps:
- Integrate a slider jQuery plugin
- Render the HTML compatible with your jQuery plugin
By default, when you render a Projection it will use the standard "Summary" layout. But using projections you can decide exactly what layout you want to apply, and exactly what html tags and classes.
Edit the query named "All Features"
Add a new Layout
Select Html List
Select "Properties" and Save
Click Add Properties
Select Display Text, Save
Do the same for
Feature:SubTitle
Feature:Description
Feature:Image
Save your query
Edit the home page projection and select this specific Layout instead of the default one.
You will see that each property is rendered in an html container.
By editing each property you can decide which class to apply, and which html tag to use. By changing them you can render exactly what you want, and customize your CSS/HTML to render the slider nicely. This is purely your HTML know have to apply here, or find some articles about that.
For your editors, they just have to go to the dashboard and add/update some feature content items, it will be reflected on the website.
Optionally there is a Slider module on the Orchard Gallery. You can try this one too. But if you want to handle exactly what happens the technique I described is better.
I've just gone through this exact scenario myself. I think that what you want can be accomplished using Orchard Lists. The UX is not exactly intuitive for the end user, but it seems like it's the most straightforward way to accomplish this goal without installing/developing a custom module.
First, make sure you're using Orchard 1.4 because you'll need the built-in support for generating alternates for Container Widgets for each zone. Enable the Shape tracing, Url alternates and Widget alternates modules.
Now, create a list of items as described in the documentation (see http://docs.orchardproject.net/Documentation/Creating-lists). Translate "book review" into "slide" and "book reviews" into "slides" and you get the idea. You can add custom fields to represent your subtitle, description, etc. I'd just keep the image as part of the content itself instead of creating a custom field for it.
If you've followed the steps in the documentation, you should now be seeing a list of your slides rendered as ul/li's. Now you'll want to customize how things are rendered so you can show your custom fields and generally customize the tags. Use the shape tracer and create alternates for the list as you see fit. Now you're free to control all the rendering. See http://weblogs.asp.net/bleroy/archive/2011/03/27/taking-over-list-rendering-in-orchard.aspx and http://weblogs.asp.net/bleroy/archive/2011/05/23/orchard-list-customization-first-item-template.aspx for ideas.
Managing this list from your end-user's perspective is actually quite easy, but I don't really feel that it's very intuitive.
It took me three days of digging through blogs and docs to figure this out for myself.
I'd also recommend this wonderful module called Featured Item Slider. It has all the basic functionalities of a slideshow, including all mentioned in the question, plus some fantastic additional capabilities, such as different animations. You can also fine tune the layout and styling by providing additional css. Get the source here. And here is the slideshow in action. If a module already exists providing the functionality you're looking for, then it's best to use that rather than reinvent the wheel, unless you do it for learning purposes.
I'm working on a home automation project. Here's what I want to do:
The app starts and it'll have a button to load an XML file.
The XML will have information about the rooms in the house like "Living Room, Dining Room, Kitchen etc.". It'll also have information about the equipment, like "Home Theater, TV, Blu-Ray Player, etc. in this case with a relation with the room that they belong" and so on with IR, RS-232 cmds, etc.
I'll install this app in different houses, so I intend just to change the XML file as the house changes.
I intend to generate the UI from the information contained in the XML file. E.g. The house has only "Living Room and Dining Room". The tab bar will show only those two tabs.
So, my questions:
Will Apple reject my app?
Can my customers just download the app from the App Store, and change and load the XML file? I mean, there's a package in the .app file, is it possible to open it and change the .xml file inside it?
Is it possible to change the UI as the XML information changes?
EDIT: more questions:
#competent_tech is saying that dynamic generation of code isn't allowed, but I'll change the code within the .storyboard or .xib .nib files, isn't it?
About the Contacts: I think is a little bit different idea, because in the contacts app, e.g.: there are 10 fields to fill out, like first name, last name, e-mail, phone number, etc. As a user, if I don't fill out the e-mail field, it'll still be there anyway. My plan is kind of different:
The house has 2 equipments to control: - Tab bar with item 1 and item 2.
The house has 3 equipments to control: - Tab bar with item 1 and item 2 and item 3.
Do you still think this is possible?
Can you recommend a book about this? I couldn't find anything useful myself.
Unfortunately, only apple can answer the rejection question.
However, from what you have described, there shouldn't be an issue since this is configuration-based changes instead of code changes. Apple specifically prohibits download of code and dynamic generation of code.
You can liken it to Contacts: iOS doesn't come configured with contacts, they allow you add them and configure different things about them. This sounds very much like what you are doing.
You should be able to download an XML file from a website or web service and use that to configure the app. We use a web service to retrieve data into the local Sqlite database to configure nomenclature and UI component visibility based on the current user and it works quite nicely.
With generating code they mean executable code, not the generating of views or viewcontrollers. If that is forbidden too, you could distribute your app via addhoc, but you need one developer program per 99 clients.
I have several Text Field items in the Root.plist of my Settings.bundle. I need all of them for my app, but I want one of them to be either hidden or un-editable by the user. E.g. When the user goes on his iPhone to Settings-->MyApp, I want one of the fields to not be visible there, or disabled for editing. Is this possible?
Sure you can. Just change the item type to title.
You still can save and read it's value from code. but, it will not appear in the app. settings.
After further research I have found the answer to my question, and the answer to the problem I am trying to solve.
Question: Can you hide/disable fields in Settings.bundle/Root.plist?
Answer: No.
Problem: How do I securely store authentication information for my app?
Answer: Built in Keychain services.
Source: Keychain Services Tasks for iOS
Short answer, you can't. Long answer: I presume you are using the Root.plist somewhere else inside your app, is that right? If so, what I'd recommend in this case, if you really need it to work the way you described, is to create two plist files, and merge them at runtime.
In other words, create Root.plist with only the fields you want the user to change in the iOS settings page (e.g, without the field you are currently trying to hide), and another .plist file with the rest of the fields you want to handle inside your app.
Then, at runtime, you first load Root.plist, and then merge the contents of the another .plist file in the data structure you'll be using.
Not very slick, but could possible work.
Setting the type in the plist from "Text Field" to "Title" works in that you get a field that is no longer editable by the user but can be read by the app.
It doesn't look quite right in as far as UI consistency goes, so this may not be the ideal solution to disable a preferences item.
I have imported some other languages to my shop. When I change the language, all the fields are changed (items, categories, etc...) but products (name, description) and categories are in English.
I understand these language will not change but I also want those languages to be changed. How can I do that?
you need to change them manually
when you create new language, you'll see its flag next to the input fields, just click it and you can enter the text in that language you select
Prestashop (1.4) comes in 5 languages, and you can get language packs for many other languages (some more complete than others), that were contributed by members.
However, Prestashop will not automatically translate anything that you manually added to your shop (IE Categories, Products, CMS pages, Modules, etc..), you can either manually enter the translations, or you can use a module to automatically translate those using google translate.
You can see an example of a module that does automatic translation at http://www.presto-changeo.com/en/prestashop-modules/19-website-translator.html
Yes, you have to translate them manually. The packs are only available for default products.
You also can install a module to translate it automatically (probably utilizing Google Translate). But if you are selling, I don't think you should do that. As the automatic translation sometimes sounds funny. IT HURTS YOUR PROSPECT CUSTOMERS and you are loosing sale.